CMeshObject

class Lib3MF::CMeshObject : public CObject
Lib3MF_uint32 GetVertexCount()

Returns the vertex count of a mesh object.

Returns:

filled with the vertex count.

Lib3MF_uint32 GetTriangleCount()

Returns the triangle count of a mesh object.

Returns:

filled with the triangle count.

sPosition GetVertex(const Lib3MF_uint32 nIndex)

Returns the vertex count of a mesh object.

Parameters:

nIndex – Index of the vertex (0 to vertexcount - 1)

Returns:

filled with the vertex coordinates.

void SetVertex(const Lib3MF_uint32 nIndex, const sPosition &Coordinates)

Sets the coordinates of a single vertex of a mesh object

Parameters:
  • nIndex – Index of the vertex (0 to vertexcount - 1)

  • Coordinates – contains the vertex coordinates.

Lib3MF_uint32 AddVertex(const sPosition &Coordinates)

Adds a single vertex to a mesh object

Parameters:

Coordinates – contains the vertex coordinates.

Returns:

Index of the new vertex

void GetVertices(std::vector<sPosition> &VerticesBuffer)

Obtains all vertex positions of a mesh object

Parameters:

VerticesBuffer – contains the vertex coordinates.

sTriangle GetTriangle(const Lib3MF_uint32 nIndex)

Returns indices of a single triangle of a mesh object.

Parameters:

nIndex – Index of the triangle (0 to trianglecount - 1)

Returns:

filled with the triangle indices.

void SetTriangle(const Lib3MF_uint32 nIndex, const sTriangle &Indices)

Sets the indices of a single triangle of a mesh object.

Parameters:
  • nIndex – Index of the triangle (0 to trianglecount - 1)

  • Indices – contains the triangle indices.

Lib3MF_uint32 AddTriangle(const sTriangle &Indices)

Adds a single triangle to a mesh object

Parameters:

Indices – contains the triangle indices.

Returns:

Index of the new triangle

void GetTriangleIndices(std::vector<sTriangle> &IndicesBuffer)

Get all triangles of a mesh object

Parameters:

IndicesBuffer – contains the triangle indices.

void SetObjectLevelProperty(const Lib3MF_uint32 nUniqueResourceID, const Lib3MF_uint32 nPropertyID)

Sets the property at the object-level of the mesh object.

Parameters:
  • nUniqueResourceID – the object-level Property UniqueResourceID.

  • nPropertyID – the object-level PropertyID.

bool GetObjectLevelProperty(Lib3MF_uint32 &nUniqueResourceID, Lib3MF_uint32 &nPropertyID)

Gets the property at the object-level of the mesh object.

Parameters:
  • nUniqueResourceID – the object-level Property UniqueResourceID.

  • nPropertyID – the object-level PropertyID.

Returns:

Has an object-level property been specified?

void SetTriangleProperties(const Lib3MF_uint32 nIndex, const sTriangleProperties &Properties)

Sets the properties of a single triangle of a mesh object.

Parameters:
  • nIndex – Index of the triangle (0 to trianglecount - 1)

  • Properties – contains the triangle properties.

void GetTriangleProperties(const Lib3MF_uint32 nIndex, sTriangleProperties &Property)

Gets the properties of a single triangle of a mesh object.

Parameters:
  • nIndex – Index of the triangle (0 to trianglecount - 1)

  • Property – returns the triangle properties.

void SetAllTriangleProperties(const CInputVector<sTriangleProperties> &PropertiesArrayBuffer)

Sets the properties of all triangles of a mesh object. Sets the object level property to the first entry of the passed triangle properties, if not yet specified.

Parameters:

PropertiesArrayBuffer – contains the triangle properties array. Must have trianglecount elements.

void GetAllTriangleProperties(std::vector<sTriangleProperties> &PropertiesArrayBuffer)

Gets the properties of all triangles of a mesh object.

Parameters:

PropertiesArrayBuffer – returns the triangle properties array. Must have trianglecount elements.

void ClearAllProperties()

Clears all properties of this mesh object (triangle and object-level).

void SetGeometry(const CInputVector<sPosition> &VerticesBuffer, const CInputVector<sTriangle> &IndicesBuffer)

Set all triangles of a mesh object

Parameters:
  • VerticesBuffer – contains the positions.

  • IndicesBuffer – contains the triangle indices.

bool IsManifoldAndOriented()

Retrieves, if an object describes a topologically oriented and manifold mesh, according to the core spec.

Returns:

returns, if the object is oriented and manifold.

PBeamLattice BeamLattice()

Retrieves the BeamLattice within this MeshObject.

Returns:

the BeamLattice within this MeshObject

PVolumeData GetVolumeData()

Retrieves the VolumeData of this MeshObject.

Returns:

the VolumeData of this MeshObject

void SetVolumeData(classParam<CVolumeData> pTheVolumeData)

Sets the VolumeData of this MeshObject.

Parameters:

pTheVolumeData – the VolumeData of this MeshObject

PTriangleSet AddTriangleSet(const std::string &sIdentifier, const std::string &sName)

Adds a new triangle set.

Parameters:
  • sIdentifier – the new identifier. MUST be unique within the mesh. MUST NOT be an empty string

  • sName – the human readable name. MUST NOT be an empty string

Returns:

the new Triangle Set Instance.

bool HasTriangleSet(const std::string &sIdentifier)

Checks if a triangle set exists.

Parameters:

sIdentifier – the identifier to be found.

Returns:

flag if the triangles set exists.

PTriangleSet FindTriangleSet(const std::string &sIdentifier)

Finds a new triangle set by identifier. Fails if not existing.

Parameters:

sIdentifier – the identifier to be found.

Returns:

the triangle Set Instance.

Lib3MF_uint32 GetTriangleSetCount()

Returns number of triangle sets.

Returns:

the number of triangle sets of this mesh.

PTriangleSet GetTriangleSet(const Lib3MF_uint32 nIndex)

Returns a specific triangle set by index.

Parameters:

nIndex – the index of the triangle set.

Returns:

the triangle Set Instance.

typedef std::shared_ptr<CMeshObject> Lib3MF::PMeshObject

Shared pointer to CMeshObject to easily allow reference counting.