vector3 クラスがあります。
class vector3
{
float x, y, z;
}
node["x"] = vector3.x;
node["y"] = vector3.y;
node["z"] = vector3.z;
結果は
x: 0
y: 0
z: 0
結果を次のようにしたい:
{x: 0, y: 0, z: 0}
古い API を使用する場合はYAML::Flow
、スタイルを設定するために使用できます。
YAML::Emitter emitter;
out << YAML::Flow << YAML::BeginMap << YAML::Key << "x" << YAML::Value << x << YAML::EndMap
新しい API を使用して、どのようにスタイルを設定できますか?
yaml-cpp プロジェクトの問題ページで次の質問をしました。
https://code.google.com/p/yaml-cpp/issues/detail?id=186
私は答えを得ました:
引き続きエミッターを使用して、フロー スタイルを設定できます。
YAML::Emitter emitter; emitter << YAML::Flow << node;
しかし、それvector3
はオブジェクトの一部です。YAML::convert<>
私はテンプレートクラスを専門としています
template<>
struct convert<vector3>
{
static Node encode(const vector3 & rhs)
{
Node node = YAML::Load("{}");
node["x"] = rhs.x;
node["y"] = rhs.y;
node["z"] = rhs.z;
return node;
}
}
ノードを返す必要がありますが、エミッターはノードに変換できません。
私はそのようなオブジェクトが必要です:
GameObject:
m_Layer: 0
m_Pos: {x: 0.500000, y: 0.500000, z: 0.500000}
これどうやってするの?