11 #ifndef __GT_PrimPolygon__
12 #define __GT_PrimPolygon__
32 init(vertex, uniform);
35 : myVertex(src.myVertex),
36 myUniform(src.myUniform),
42 const char *
className()
const override {
return "GT_PrimPolygon"; }
82 int nsegment)
const override;
92 int seg)
const override;
106 return computeNormal(N, vertexlist,
SIM_API const UT_StringHolder vertex
virtual int getMotionSegments() const =0
virtual int getPrimitiveType() const
virtual fpreal computePerimeter(int seg=0) const
virtual fpreal computeVolume(const UT_Vector3 &ref_P, int seg=0) const
bool save(UT_JSONWriter &w) const override
Class which writes ASCII or binary JSON streams.
const GT_AttributeListHandle & getUniformAttributes() const override
bool init(const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform)
const char * className() const override
const GT_AttributeListHandle & getVertex() const
Get the varying data array. There is one entry for each vertex.
GT_PrimPolygon(const GT_AttributeListHandle &vertex, const GT_AttributeListHandle &uniform)
const GT_AttributeListHandle & getVertexAttributes() const override
Abstract data class for an array of float, int or string data.
virtual fpreal computeSurfaceArea(int seg=0) const
static void computeNormal(UT_Vector3F &N, const GT_DataArray &vertexlist, const GT_DataArray &P)
const GT_AttributeListHandle & getUniform() const
Get the unfirom data. There should be one entry in the array.
The base class for all GT primitive types.
virtual GT_PrimitiveHandle doHarden() const
virtual int64 getMemoryUsage() const =0
virtual GT_Size entries() const =0
Number of entries in the array.
GT_PrimPolygon(const GT_PrimPolygon &src)
bool saveAttributeLists(UT_JSONWriter &w) const
GA_API const UT_StringHolder N
GLubyte GLubyte GLubyte GLubyte w
GT_PrimitiveHandle doSoftCopy() const override
virtual GT_PrimitiveHandle doAttributeMerge(const GT_Primitive &src, const UT_StringMMPattern *vertex, const UT_StringMMPattern *point, const UT_StringMMPattern *uniform, const UT_StringMMPattern *detail) const
The virtual implementation of attribute merging.
virtual void enlargeBounds(UT_BoundingBox boxes[], int nsegments) const =0