NvBlastExtAuthoringMesh.h
Go to the documentation of this file.
1 // This code contains NVIDIA Confidential Information and is disclosed to you
2 // under a form of NVIDIA software license agreement provided separately to you.
3 //
4 // Notice
5 // NVIDIA Corporation and its licensors retain all intellectual property and
6 // proprietary rights in and to this software and related documentation and
7 // any modifications thereto. Any use, reproduction, disclosure, or
8 // distribution of this software and related documentation without an express
9 // license agreement from NVIDIA Corporation is strictly prohibited.
10 //
11 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
12 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
13 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
14 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
15 //
16 // Information and code furnished is believed to be accurate and reliable.
17 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
18 // information or for any infringement of patents or other rights of third parties that may
19 // result from its use. No license is granted by implication or otherwise under any patent
20 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
21 // This code supersedes and replaces all information previously supplied.
22 // NVIDIA Corporation products are not authorized for use as critical
23 // components in life support devices or systems without express written approval of
24 // NVIDIA Corporation.
25 //
26 // Copyright (c) 2016-2020 NVIDIA Corporation. All rights reserved.
27 
28 
29 #ifndef NVBLASTAUTHORINGMESH_H
30 #define NVBLASTAUTHORINGMESH_H
31 
33 
34 namespace Nv
35 {
36 namespace Blast
37 {
38 
42 class Mesh
43 {
44 public:
45 
46  virtual ~Mesh() {}
47 
51  virtual void release() = 0;
52 
56  virtual bool isValid() const = 0;
57 
61  virtual Vertex* getVerticesWritable() = 0;
62 
66  virtual const Vertex* getVertices() const = 0;
67 
68 
72  virtual Edge* getEdgesWritable() = 0;
73 
77  virtual const Edge* getEdges() const = 0;
78 
82  virtual Facet* getFacetsBufferWritable() = 0;
83 
87  virtual const Facet* getFacetsBuffer() const = 0;
88 
92  virtual Facet* getFacetWritable(int32_t facet) = 0;
96  virtual const Facet* getFacet(int32_t facet) const = 0;
97 
101  virtual uint32_t getEdgesCount() const = 0;
102 
106  virtual uint32_t getVerticesCount() const = 0;
107 
111  virtual uint32_t getFacetCount() const = 0;
112 
116  virtual const NvcBounds3& getBoundingBox() const = 0;
117 
121  virtual NvcBounds3& getBoundingBoxWritable() = 0;
122 
123 
127  virtual void setMaterialId(const int32_t* materialIds) = 0;
128 
132  virtual void replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) = 0;
133 
137  virtual void setSmoothingGroup(const int32_t* smoothingGroups) = 0;
138 
142  virtual void recalculateBoundingBox() = 0;
143 
148  virtual float getMeshVolume() = 0;
149 
150 
154  virtual void calcPerFacetBounds() = 0;
155 
159  virtual const NvcBounds3* getFacetBound(uint32_t index) const = 0;
160 
161 };
162 
163 } // namespace Blast
164 } // namespace Nv
165 
166 
167 #endif // ifndef NVBLASTAUTHORINGMESH_H
virtual Edge * getEdgesWritable()=0
virtual Facet * getFacetWritable(int32_t facet)=0
virtual void setSmoothingGroup(const int32_t *smoothingGroups)=0
virtual Facet * getFacetsBufferWritable()=0
Definition: NvBlastExtAuthoringMesh.h:42
virtual void release()=0
Definition: NvBlastExtAuthoringTypes.h:106
virtual void setMaterialId(const int32_t *materialIds)=0
virtual Vertex * getVerticesWritable()=0
virtual uint32_t getEdgesCount() const =0
virtual NvcBounds3 & getBoundingBoxWritable()=0
virtual ~Mesh()
Definition: NvBlastExtAuthoringMesh.h:46
virtual void recalculateBoundingBox()=0
virtual uint32_t getVerticesCount() const =0
virtual const Edge * getEdges() const =0
virtual uint32_t getFacetCount() const =0
virtual const NvcBounds3 * getFacetBound(uint32_t index) const =0
Definition: NvCTypes.h:92
virtual float getMeshVolume()=0
virtual bool isValid() const =0
virtual const Facet * getFacetsBuffer() const =0
virtual void replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId)=0
Definition: NvBlastExtAuthoringTypes.h:57
virtual const Vertex * getVertices() const =0
virtual const Facet * getFacet(int32_t facet) const =0
Definition: NvBlastExtAuthoringTypes.h:67
virtual void calcPerFacetBounds()=0
Definition: NvBlastExtAuthoring.h:34
virtual const NvcBounds3 & getBoundingBox() const =0