11 #ifndef __GT_PrimCollect__
12 #define __GT_PrimCollect__
23 typedef UT_ConcurrentVector<GT_PrimitiveHandle>
ListType;
28 virtual const char *
className()
const {
return "GT_PrimCollect"; }
39 const char *attribute_name)
const;
55 { myList.push_back(pr); }
63 template <
typename Compare>
66 std::sort(myList.begin(), myList.end(),
cmp);
70 void hardenContents();
virtual int getMotionSegments() const =0
virtual bool refine(GT_Refine &refiner, const GT_RefineParms *parms=NULL) const
virtual int getPrimitiveType() const
UT_ConcurrentVector< GT_PrimitiveHandle > ListType
virtual void getVelocityRange(UT_Vector3 &min, UT_Vector3 &max, const char *attribute_name="v") const
Class which writes ASCII or binary JSON streams.
void appendPrimitive(const GT_PrimitiveHandle &pr)
Add a primitive to the list. This method is thread-safe.
virtual void enlargeRenderBounds(UT_BoundingBox boxes[], int nsegments) const
virtual GT_PrimitiveHandle doSoftCopy() const
GLboolean GLboolean GLboolean b
The base class for all GT primitive types.
void reserve(exint size)
Reserve space for a total of N primitives.
virtual GT_PrimitiveHandle doHarden() const
virtual int64 getMemoryUsage() const =0
Processes primitives generated by refinement process.
void sortList(Compare &cmp)
Sort the list.
virtual bool save(UT_JSONWriter &w) const
exint entries() const
Return the number of primitives in the collection.
GLubyte GLubyte GLubyte GLubyte w
virtual const char * className() const
virtual void enlargeBounds(UT_BoundingBox boxes[], int nsegments) const =0