HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GT_PrimTetMesh.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: GT_PrimTetMesh.h ( GT Library, C++)
7  *
8  * COMMENTS:
9  */
10 #ifndef GT_PrimTetMesh_h
11 #define GT_PrimTetMesh_h
12 
13 #include "GT_API.h"
14 #include "GT_Primitive.h"
15 #include "GT_GEOPrimCollect.h"
16 #include "GT_AttributeList.h"
17 
19 {
20 public:
21  GT_PrimTetMesh(const GT_DataArrayHandle &vertex_list,
22  const GT_AttributeListHandle &vert_attribs,
23  const GT_AttributeListHandle &point_attribs,
24  const GT_AttributeListHandle &prim_attribs,
25  const GT_AttributeListHandle &dtl_attribs,
26  const GT_DataArrayHandle &face_verts);
27 
28  GT_PrimTetMesh(const GT_PrimTetMesh &pmesh,
29  const GT_AttributeListHandle &vert_attribs,
30  const GT_AttributeListHandle &point_attribs,
31  const GT_AttributeListHandle &prim_attribs,
32  const GT_AttributeListHandle &dtl_attribs);
33 
34  GT_PrimTetMesh(const GT_PrimTetMesh &tetmesh);
35  ~GT_PrimTetMesh() override;
36 
37  int getPrimitiveType() const override { return GT_PRIM_TET_MESH; }
38  const char *className() const override { return "GT_PrimTetMesh"; }
39 
40  int getTetCount() const
41  { return myUniformAttribs ? myUniformAttribs->get(0)->entries() : 0; }
42 
44  { return myVertexAttribs; }
46  { return myPointAttribs; }
48  { return myUniformAttribs; }
50  { return myDetailAttribs; }
51 
52  // point connectivity.
53  const GT_DataArrayHandle &getVertexList() const override
54  { return myVertexList; }
55 
56  void enlargeBounds(UT_BoundingBox boxes[],
57  int nsegments) const override;
58  bool refine(GT_Refine &refiner,
59  const GT_RefineParms *parms) const override;
60 
61  int getMotionSegments() const override;
62  int64 getMemoryUsage() const override;
63  GT_PrimitiveHandle doSoftCopy() const override;
64 
65  GT_PrimitiveHandle curveMesh() const;
66 private:
67  GT_DataArrayHandle myVertexList;
68  GT_DataArrayHandle myFaceVerts;
69 
70  GT_AttributeListHandle myVertexAttribs;
71  GT_AttributeListHandle myPointAttribs;
72  GT_AttributeListHandle myUniformAttribs;
73  GT_AttributeListHandle myDetailAttribs;
74 };
75 
76 #endif
virtual int getMotionSegments() const =0
virtual bool refine(GT_Refine &refiner, const GT_RefineParms *parms=NULL) const
const GT_AttributeListHandle & getVertexAttributes() const override
#define GT_API
Definition: GT_API.h:13
int getTetCount() const
const GT_AttributeListHandle & getUniformAttributes() const override
virtual GT_PrimitiveHandle doSoftCopy() const =0
const char * className() const override
long long int64
Definition: SYS_Types.h:116
const GT_AttributeListHandle & getDetailAttributes() const override
The base class for all GT primitive types.
Definition: GT_Primitive.h:43
virtual int64 getMemoryUsage() const =0
Processes primitives generated by refinement process.
Definition: GT_Refine.h:20
const GT_DataArrayHandle & getVertexList() const override
int getPrimitiveType() const override
const GT_AttributeListHandle & getPointAttributes() const override
virtual void enlargeBounds(UT_BoundingBox boxes[], int nsegments) const =0