fereria
1/2/2021 - 1:07 PM

Tfの使い方

/*
C++の基本勉強用

dataImpl内のSdfAbstractDataでデータ部分を取得したり存在するかの判定をするときに
TfHashMap TfMapLookupPtrを利用していたので、動作をテストしてみる

https://graphics.pixar.com/usd/docs/api/stl_8h.html
*/

#include <iostream>
#include <string>

#include "pxr/base/tf/stl.h"
#include "pxr/base/tf/hash.h"
#include "pxr/base/tf/hashmap.h"

using namespace std;
using namespace pxr;

struct SampleData
{
    string name;
    int value;
    
    void print()
    {
        cout << name << endl;
        cout << value << endl;
    }
};

void main()
{
    // mapを試す
    TfHashMap<string, SampleData, TfHash> mapTest;
    // mapに値をセットする
    SampleData a;
    a.name = "hoge";
    a.value = 100;
     mapTest["abc"] = a;
    
    // mapに入れたstructの値を取得
    mapTest["abc"].print();

    // 指定のmapが存在する場合Pointerを取得
    SampleData *val = TfMapLookupPtr(mapTest, "abc");
    val->name = "change hoge";
    val->value = 300;
    val->print();
}