30 #ifndef __HDK_GEO_PrimTetra__
31 #define __HDK_GEO_PrimTetra__
41 namespace HDK_Sample {
75 bool dry_run=
false)
override;
77 bool dry_run=
false)
override;
91 unsigned du=0,
unsigned dv=0)
const override
104 void stashed(
bool beingstashed,
132 for (
GA_Size i = 0; i < 4; i++)
144 for (
GA_Size i = 0; i < 4; i++)
168 {
return *theDefinition; }
196 const int *tetpointnumbers);
202 float tmax = 1E17F,
float tol = 1E-12F,
205 float *u = 0,
float *v = 0,
206 int ignoretrim = 1)
const override;
217 : myPrimitiveList(detail->getPrimitiveList())
218 , myStartPrim(startprim)
219 , myStartVtx(startvtx)
227 GA_Offset vtxoff = myStartVtx + 4*r.begin();
228 for (
GA_Size i = r.begin(); i != r.end(); ++i)
static void registerMyself(GA_PrimitiveFactory *factory)
GA_Size findPoint(GA_Offset ptoff) const
bool saveVertexArray(UT_JSONWriter &w, const GA_SaveMap &map) const
GEO_Primitive * convert(GEO_ConvertParms &parms, GA_PointGroup *usedpts=0) override
void stashed(bool beingstashed, GA_Offset offset=GA_INVALID_OFFSET) override
SYS_FORCE_INLINE GA_Offset getPointOffset(GA_Size i) const
void createVertices() const
Declare methods for implementing intrinsic attributes.
UT_Vector3D computeNormalD() const override
static GEO_PrimTetra * build(GA_Detail *gdp, bool appendpts=true)
Optional build function.
Used to pass options and map offset values during saving.
bool evaluatePointRefMap(GA_Offset result_vtx, GA_AttributeRefMap &hlist, fpreal u, fpreal v, uint du, uint dv) const override
Evalaute a point given a u,v coordinate (with derivatives)
UT_Vector3 computeNormal() const override
int64 getMemoryUsage() const override
Report approximate memory usage.
void setTrivial(ToType startvalue, GA_Size size)
Makes the list a trivial list with the specified start value and size.
int detachPoints(GA_PointGroup &grp) override
JSON reader class which handles parsing of JSON or bJSON files.
#define GA_DECLARE_INTRINSICS(OVERRIDE)
Class which writes ASCII or binary JSON streams.
GA_DereferenceStatus dereferencePoint(GA_Offset point, bool dry_run=false) override
Abstract base class for a range membership query object.
void normal(NormalComp &output) const override
bool loadOrder(const UT_JSONValue &p)
Load the order from a JSON value.
bool getBBox(UT_BoundingBox *bbox) const override
exint GA_Size
Defines the bit width for index and offset types in GA.
void copySubclassData(const GA_Primitive *source) override
#define GA_INVALID_OFFSET
GA_OffsetList myVertexList
int opInterrupt(int percent=-1)
static GA_Offset buildBlock(GA_Detail *detail, const GA_Offset startpt, const GA_Size npoints, const GA_Size ntets, const int *tetpointnumbers)
NormalCompT< float > NormalComp
const GA_PrimitiveJSON * getJSON() const override
fpreal calcPerimeter() const override
GLsizei GLsizei GLchar * source
GEO_PrimTetra(GA_Detail &d, GA_Offset offset)
void copyPrimitive(const GEO_Primitive *src) override
Provide a JSON interface to a primitive.
bool evaluatePoint(GA_Offset result_vtx, GA_AttributeRefMap &map, fpreal u, fpreal v=0, uint du=0, uint dv=0) const
A handle to simplify manipulation of multiple attributes.
geo_SetVertexListsParallel(GA_Detail *detail, const GA_Offset startprim, const GA_Offset startvtx)
static const GA_PrimitiveTypeId & theTypeId()
Allows you to find out what this primitive type was named.
const GA_PrimitiveDefinition & getTypeDef() const override
void countMemory(UT_MemoryCounter &counter) const override
int evaluatePointV4(UT_Vector4 &pos, float u, float v=0, unsigned du=0, unsigned dv=0) const override
Evalaute position given a u,v coordinate (with derivatives)
fpreal calcArea() const override
SYS_FORCE_INLINE const GA_PrimitiveTypeId & getId() const
The unique ID assigned by the GA_PrimitiveFactory.
SYS_FORCE_INLINE const GA_Primitive * get(GA_Offset off) const
void operator()(const UT_BlockedRange< GA_Size > &r) const
int intersectRay(const UT_Vector3 &o, const UT_Vector3 &d, float tmax=1E17F, float tol=1E-12F, float *distance=0, UT_Vector3 *pos=0, UT_Vector3 *nml=0, int accurate=0, float *u=0, float *v=0, int ignoretrim=1) const override
GEO_Primitive * convertNew(GEO_ConvertParms &parms) override
UT_API UT_Interrupt * UTgetInterrupt()
Obtain global UT_Interrupt singleton.
~GEO_PrimTetra() override
GA_DereferenceStatus dereferencePoints(const GA_RangeMemberQuery &pt_q, bool dry_run=false) override
SYS_FORCE_INLINE GA_Offset getVertexOffset(GA_Size primvertexnum) const
Class to store JSON objects as C++ objects.
Container class for all geometry.
GLubyte GLubyte GLubyte GLubyte w
Definition of a geometric primitive.
bool loadVertexArray(UT_JSONParser &p, const GA_LoadMap &map)
SIM_API const UT_StringHolder distance
NormalCompT< double > NormalCompD
bool isDegenerate() const override
UT_Vector3 baryCenter() const override
GA_Size findVertex(GA_Offset vtxoff) const
GEO_Primitive * copy(int preserve_shared_pts=0) const override
fpreal calcVolume(const UT_Vector3 &refpt) const override