11 #ifndef __GU_HIERARCHY_H_INCLUDED__
12 #define __GU_HIERARCHY_H_INCLUDED__
33 namespace GU_Hierarchy
96 bool rebuild(
const GU_Detail *gdp,
bool &topo_changed);
98 bool worldTransformDirty(
const GU_Detail *gdp);
99 bool localTransformDirty(
const GU_Detail *gdp);
100 void initTransformData(
const GU_Detail *gdp);
101 void updateLocalTransformCache(
const GU_Detail *gdp);
102 void updateTransformCache(
const GU_Detail *gdp,
bool update_names=
true);
103 void updateTransformDataIds(
const GU_Detail *gdp);
105 int lookUpPointIndex(
GA_Index ptidx);
113 void updateSubHier();
115 void computeSubHierLocalTransform(
const GU_Detail *gdp);
116 void computeSubHierWorldTransform(
const GU_Detail *gdp);
117 void computeSubHierWorldTransform(
const GU_Detail *gdp,
146 bool copy_transform=
true,
147 bool copy_localtransform=
true);
188 template <
int HAS_GRP>
193 template <
int HAS_GRP>
198 template <
int HAS_GRP>
205 #endif // __GU_HIERARCHY_H_INCLUDED__
UT_Matrix4DArray myEffectiveLocal
GU_API void getParents(const GU_Detail *gdp, const GA_Offset &node, GA_OffsetArray &children)
UT_Matrix3DArray myTransform
GA_DataId myTransformDataId
GU_API void computeWorldTransform(const GU_Detail *gdp, const GA_OffsetArray &nodes, const GA_OffsetArray &parents, UT_Vector3DArray &P, UT_Matrix3DArray &transform, const UT_Matrix4DArray &local, UT_Matrix4DArray &effective_local, const UT_IntArray &model, const GA_PointGroup *constrain_grp, const UT_Array< int > *flags, bool constrain_all)
GA_DataId myTopologyDataId
GU_Hierarchy::ComputeHierarchyResult myTraverseResult
**But if you need a result
GU_API GA_Offset getParent(const GU_Detail *gdp, const GA_Offset &node)
UT_StringArray myNameNames
GU_API const UT_StringHolder & getComputeHierarchyMessage(ComputeHierarchyResult result)
Returns a descriptive message for the ComputeHierarchyResult.
GU_API void computeLocalTransform(const GU_Detail *gdp, const GA_OffsetArray &nodes, const GA_OffsetArray &parents, const UT_Vector3DArray &P, const UT_Matrix3DArray &transform, UT_Matrix4DArray &local, UT_Matrix4DArray &effective_local, const UT_IntArray &model)
GU_API GA_OffsetArray getChildren(const GU_Detail *gdp, const GA_Offset &node, bool recurse=false)
UT_StringArray myIndexNames
GA_Size GA_Index
Define the strictness of GA_Offset/GA_Index.
GA_API const UT_StringHolder transform
GU_API GA_Offset getParentVertex(const GU_Detail *gdp, const GA_Offset &node)
UT_Array< UT_StringArray > myNamesArray
GLubyte GLubyte GLubyte GLubyte w
GU_API ComputeHierarchyResult traverse(const GU_Detail *gdp, GA_OffsetArray &roots, GA_OffsetArray &nodes, GA_OffsetArray &parents, UT_Map< GA_Offset, GA_OffsetArray > *children=nullptr)
GU_API bool findRoots(const GU_Detail *gdp, GA_OffsetArray &roots)
UT_StringHolder myNamesFormat
GA_API const UT_StringHolder rest
UT_Array< GU_AgentXformD > myAgentXformsLocals