10 #ifndef GT_PrimAgentShape_h
11 #define GT_PrimAgentShape_h
55 exint getNumMatGroups()
const;
56 exint getMatGroupNumInstances(
exint grp_idx)
const;
57 int getMatGroupMaterialID(
exint grp_idx)
const;
63 int getNumTransformsPerInstance()
const;
64 int getNumBlendWeightsPerInstance()
const;
67 int getNumPoints()
const;
70 bool hasBlendShapeNormalOffsets()
const;
76 bool packed_xform_only)
const;
79 void fetchMatGroupTransforms(
int idx,
81 bool packed_xform_only)
const;
85 void fetchMatGroupRigTransforms(
int idx,
fpreal32 *
buf)
const;
91 bool fetchMatGroupBlendWeights(
93 int max_blend_shape_lod_level,
96 std::pair<int32, fpreal32> *active_targets,
100 void fetchMatGroupColors(
int idx,
uint8 *
buf)
const;
107 int getVisibleInstances(
int grp_idx,
110 fpreal lod_bias = 1.0)
const;
116 void addShapeInstance(
int xform_index,
125 {
return "GT_PrimAgentShape"; }
129 int nsegments)
const override
130 { doEnlargeBounds(boxes, nsegments,
false); }
132 int nsegments)
const override
133 { doEnlargeBounds(boxes, nsegments,
true); }
159 int getNumUnstyledGroups()
const;
160 ShapeInstance &getShapeInstancesForUnstyledGroup(
int mat_group);
161 void resetStyledMatGroups();
174 bool myUseStyledMatGroups;
191 {
return myGeometry; }
196 return myUseStyledMatGroups ? myStyledMatGroup.entries()
197 : myMatGroup.entries();
203 const ShapeInstance &inst = myUseStyledMatGroups ? *myStyledMatGroup(i)
211 const ShapeInstance &inst = myUseStyledMatGroups ? *myStyledMatGroup(i)
219 const ShapeInstance &inst = myUseStyledMatGroups ? *myStyledMatGroup(i)
227 const ShapeInstance &inst = myUseStyledMatGroups ? *myStyledMatGroup(i)
235 return myMatGroup.entries();
241 return myMatGroup(mat_group);
247 for(
auto grp : myStyledMatGroup)
249 myStyledMatGroup.entries(0);
250 myUseStyledMatGroups =
false;
256 myUseStyledMatGroups =
true;
258 myStyledMatGroup.last()->myMaterialID = mat_id;
259 return myStyledMatGroup.last();
268 {
return myLODLevel; }
272 {
return myLODGroup; }
GLenum GLuint GLenum GLsizei const GLchar * buf
virtual bool refine(GT_Refine &refiner, const GT_RefineParms *parms=NULL) const
GT_DataArrayHandle getMatRemapAttrib() const
virtual bool getTopologyVersion(int64 &version) const
Returns the topology version for the primitive.
ShapeInstance & getShapeInstancesForUnstyledGroup(int mat_group)
int getNumUnstyledGroups() const
GT_PrimitiveHandle doSoftCopy() const override
ShapeInstance * addStyledMatGroup(int mat_id)
int getMatGroupMaterialID(exint grp_idx) const
UT_Array< GT_AgentShapeBindingID > myBindings
IFDmantra you can see code vm_image_mplay_direction endcode When SOHO starts a render
const UT_IntArray & getMatGroupAgentPointIDs(exint grp_idx) const
int getMotionSegments() const override
Abstract data class for an array of float, int or string data.
virtual GT_PrimitiveHandle doSoftCopy() const =0
const char * className() const override
void resetStyledMatGroups()
void enlargeBounds(UT_BoundingBox boxes[], int nsegments) const override
int lodLevel() const
Which LOD level this shape represents: 0=primary, 1+ lower resolutions.
GA_Size GA_Index
Define the strictness of GA_Offset/GA_Index.
The base class for all GT primitive types.
GU_ConstDetailHandle & detail() const
virtual int64 getMemoryUsage() const =0
exint getNumMatGroups() const
one set of transforms per material.
GT_API const UT_StringHolder version
Processes primitives generated by refinement process.
exint entries() const
Alias of size(). size() is preferred.
void enlargeRenderBounds(UT_BoundingBox boxes[], int nsegments) const override
GA_API const UT_StringHolder parms
const GT_ShapeLODGroupHandle & shapeGroup() const
Access to the shared data between LOD levels of the same agent shape.
const GT_PrimitiveHandle & geometry() const
shape geometry.
A shape belonging to agents, instanced with material assignments.
const UT_IntArray & getMatGroupAgentPrimIDs(exint grp_idx) const
int getPrimitiveType() const override
Index of a shape binding in one of the agent's current layers.
GT_PrimitiveHandle doHarden() const override
exint getMatGroupNumInstances(exint grp_idx) const