我有一个场景图:
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获取所有子节点的列表,但我不知道如何遍历它,因为它可以有任意数量的子节点,它们可以有任意数量的子节点等等。你通常如何处理这个?