私は私が持っているシーングラフを持っています:
class Node
{
public:
struct
{
COLLISION_TYPE collisionType;
void* boundingVolume;
}collisionData;
struct
{
XMFLOAT3 position;
XMFLOAT3 rotation;
}leafData;
Node(Model* representModel, Node* parentNode)
{
this->parentNode = parentNode;
this->representModel = representModel;
this->collisionData.collisionType = representModel->collisionDataDefault.collisionType;
this->collisionData.boundingVolume = &representModel->collisionDataDefault.boundingVolumeDefault;
};
~Node()
{
};
std::vector< std::vector<XMFLOAT3*> > GetChildTransformStream()
{
};
void Transform(XMMATRIX *world)
{
};
Model* representModel;
Node* parentNode;
std::vector<Node*> childNodes;
};
したがって、Transformメソッドでは、ノードとそのすべての子の座標を変換したいので、最初にGetChildTransformStreamを使用してすべての子のリストを取得する必要がありますが、トラバースする方法がわかりません。子ノードはいくつでもあり、子ノードもいくつでも持つことができます。通常、これをどのように処理しますか?