21 #include "prtx/prtx.h" 22 #include "prtx/Types.h" 23 #include "prtx/Material.h" 24 #include "prtx/OpaquePtr.h" 30 # pragma warning(push) 31 # pragma warning (disable : 4231 4251 4275) 43 typedef std::shared_ptr<Mesh>
MeshPtr;
86 const std::wstring& getName()
const;
118 const DoubleVector& getTextureRegions(uint32_t uvSet)
const;
122 uint32_t getUVSetsCount()
const;
131 uint32_t getFaceCount()
const;
142 uint32_t getFaceVertexCount(uint32_t faceId)
const;
149 const uint32_t* getFaceVertexIndices(uint32_t faceId)
const;
154 uint32_t getHolesCount()
const;
163 uint32_t getFaceHolesCount(uint32_t faceId)
const;
168 const uint32_t* getFaceHolesIndices(uint32_t faceId)
const;
179 uint32_t getFaceMaterialIndex(uint32_t faceId)
const;
187 const IndexVector& getFaceVertexNormalCounts()
const;
194 uint32_t getFaceVertexNormalCount(uint32_t faceId)
const;
201 const uint32_t* getFaceVertexNormalIndices(uint32_t faceId)
const;
210 const IndexVector& getFaceUVCounts(uint32_t uvSet)
const;
219 uint32_t getFaceUVCount(uint32_t faceId, uint32_t uvSet)
const;
228 const uint32_t* getFaceUVIndices(uint32_t faceId, uint32_t uvSet)
const;
237 const IndexVector& getFaceTextureRegionIndices(uint32_t uvSet)
const;
247 uint32_t getFaceTextureRegionIndex(uint32_t faceId, uint32_t uvSet)
const;
254 int32_t getFaceEncirclingFace(uint32_t faceId)
const;
259 size_t getUsedMem()
const;
263 Mesh(Payload
const* p);
264 const Payload* mPayload;
307 virtual MeshPtr createShared(std::wstring* warnings = 0)
const;
308 virtual MeshPtr createSharedAndReset(std::wstring* warnings = 0);
318 void resetMaterials();
322 void resetVertexCoords();
326 void resetNormalCoords();
330 void resetUVCoords();
340 void setName(
const std::wstring& name);
359 uint32_t addVertexCoords(
const double coords[3]);
365 void addVertexCoords(
const double* coords,
size_t count);
377 uint32_t addNormalCoords(
const double coords[3]);
383 void addNormalCoords(
const double* coords,
size_t count);
396 uint32_t addUVCoords(uint32_t uvSet,
const double coords[2]);
403 void addUVCoords(uint32_t uvSet,
const double* coords,
size_t count);
409 void addUVCoords(uint32_t uvSet,
const DoubleVector& coords);
419 uint32_t addTextureRegionCoords(uint32_t uvSet,
const double coords[4]);
428 void addTextureRegionCoords(uint32_t uvSet,
const double* coords,
size_t count);
436 void addTextureRegionCoords(uint32_t uvSet,
const DoubleVector& coords);
448 uint32_t materialIndex,
const IndexVector& normalIndices,
const std::vector<IndexVector>& uvIndices);
465 const uint32_t* vertexIndices,
size_t vertexIndicesCount,
466 const uint32_t* holeFaceIndices,
size_t holeFacesIndicesCount,
467 uint32_t materialIndex,
468 const uint32_t* normalIndices,
size_t normalIndicesCount,
469 const std::vector<const uint32_t*>& uvIndices,
const std::vector<size_t>& uvIndicesCounts);
481 void addFaceVertexIndex(uint32_t faceId, uint32_t index);
487 void addFaceHoleIndex(uint32_t faceId, uint32_t index);
493 void addFaceNormalIndex(uint32_t faceId, uint32_t index);
500 void addFaceUVIndex(uint32_t faceId, uint32_t uvSet, uint32_t i);
507 void setFaceVertexIndices(uint32_t faceId,
const IndexVector& indices);
513 void setFaceNormalIndices(uint32_t faceId,
const IndexVector& indices);
520 void setFaceUVIndices(uint32_t faceId, uint32_t uvSet,
const IndexVector& indices);
527 void setFaceMaterialIndex(uint32_t faceId, uint32_t index);
534 void setFaceTextureRegionIndex(uint32_t faceId, uint32_t uvSet, uint32_t index);
543 void setFacesVertexIndices(
const uint32_t* indices,
size_t indicesCount,
const uint32_t* faceCounts,
size_t faceCount);
551 void setFacesNormalIndices(
const uint32_t* indices,
size_t indicesCount,
const uint32_t* faceCounts,
size_t faceCount);
560 void setFacesUVIndices(uint32_t uvSet,
const uint32_t* indices,
size_t indicesCount,
const uint32_t* faceCounts,
size_t faceCount);
566 void setFacesMaterialIndices(
const uint32_t* indices,
size_t faceCount);
574 void setFacesHoleIndices(
const uint32_t* indices,
size_t indicesCount,
const uint32_t* faceCounts,
size_t faceCount);
579 bool isEmpty()
const;
std::vector< uint32_t > IndexVector
vector of indices
Definition: Mesh.h:38
Definition: BoundingBox.h:38
std::vector< double > DoubleVector
vector of double
Definition: Types.h:32
std::shared_ptr< Material > MaterialPtr
shared Material pointer
Definition: DataBackend.h:45
The Procedural Runtime eXtension namespace. The prtx namespace contains the tools to extend the Proce...
Definition: AnnotationBuilder.h:35
std::vector< MeshPtr > MeshPtrVector
vector of shared Mesh pointers
Definition: DataBackend.h:42
std::vector< MaterialPtr > MaterialPtrVector
vector of shared Material pointers
Definition: DataBackend.h:46
std::shared_ptr< Mesh > MeshPtr
shared Mesh pointer
Definition: DataBackend.h:41