Mesh

Types

uint32_t

Bits

Fields

None

ClockwiseWinding

CounterClockwiseWinding

TwoSided

FaceNormals

FaceUVs

FaceRGBA32s

LineNormals

LineUVs

LineRGBA32s

PointNormals

PointUVs

PointRGBA32s

Manifold

RandomizedPoints

Default

std::vector< MeshElement >

face_elements

std::vector< MeshElement >

polyline_elements

std::vector< MeshElement >

point_elements

std::vector< uint8_t >

face_elements_bits

std::vector< uint8_t >

polyline_elements_bits

std::vector< uint8_t >

point_elements_bits

MaterialKey

mesh_face_material

MaterialKey

mesh_line_material

MaterialKey

mesh_point_material

MaterialMapKey

mesh_face_element_material_map

MaterialMapKey

mesh_line_element_material_map

MaterialMapKey

mesh_point_element_material_map

Bits

flags

Functions

~Mesh

Mesh

Mesh

Mesh &

operator=

Mesh

Mesh &

operator=

bool

operator==

bool

operator!=

Detailed Description

class Mesh : public SC::Store::BaseMesh

The Mesh class is used to define a MeshKey.

It contains any number of face elements, polyline elements, and point elements.

It may specify a MaterialKey for its faces, polylines and points. These MaterialKeys are the default material used for an instance that does not provide specific instance-level materials.

A mesh element index may be given an optional MaterialKey by providing a MaterialMapKey. This MaterialMapKey is the default for any instance of this mesh.

A Mesh is movable but not copyable.

Public Types

enum Bits

Values:

enumerator None
enumerator ClockwiseWinding

Set a winding if known.

enumerator CounterClockwiseWinding
enumerator TwoSided

If set, the mesh will not be back-face culled.

enumerator FaceNormals

Set if normals are present in the BaseMesh.

enumerator FaceUVs

Set if UVs are present in the BaseMesh.

enumerator FaceRGBA32s

Set if RGBA32s are present in the BaseMesh.

enumerator LineNormals

Set if normals are present in the BaseMesh.

enumerator LineUVs

Set if UVs are present in the BaseMesh.

enumerator LineRGBA32s

Set if RGBA32s are present in the BaseMesh.

enumerator PointNormals

Set if normals are present in the BaseMesh.

enumerator PointUVs

Set if UVs are present in the BaseMesh.

enumerator PointRGBA32s

Set if PointRGBA32s are present in the BaseMesh.

enumerator Manifold

Set if mesh faces define a manifold body. This allows cutting plane capping for the mesh.

enumerator RandomizedPoints

Set if mesh points are randomized. This allows vertex decimation for the mesh.

enumerator Default

Public Functions

~Mesh() = default
Mesh() = default
Mesh(const Mesh &other) = delete
Mesh &operator=(const Mesh &other) = delete
Mesh(Mesh &&other) = default
Mesh &operator=(Mesh &&other) = default
inline bool operator==(Mesh const &that) const
inline bool operator!=(Mesh const &that) const

Public Members

std::vector<MeshElement> face_elements

These define the mesh’s faces.

std::vector<MeshElement> polyline_elements

These define the mesh’s lines.

std::vector<MeshElement> point_elements

These define the mesh’s points.

std::vector<uint8_t> face_elements_bits

Optional bits for filtering selections on the mesh element.

The default bit value is 0. The provided values will cycle for all mesh elements. If the vector of bits is length 1, then the single value will apply for all mesh elements of the type. If more bits are provided than mesh elements it will throw an exception.

std::vector<uint8_t> polyline_elements_bits

Optional bits for filtering selections on the mesh element.

std::vector<uint8_t> point_elements_bits

Optional bits for filtering selections on the mesh element.

MaterialKey mesh_face_material

Optional material that applies to the Mesh faces.

MaterialKey mesh_line_material

Optional material that applies to the Mesh lines.

MaterialKey mesh_point_material

Optional material that applies to the Mesh points.

MaterialMapKey mesh_face_element_material_map

Optional material map that applies to faces in the MeshElement at the matching indices.

MaterialMapKey mesh_line_element_material_map

Optional material map that applies to lines in the MeshElement at the matching indices.

MaterialMapKey mesh_point_element_material_map

Optional material map that applies to points in the MeshElement at the matching indices.

Bits flags = Bits::Default

Bits that specify this mesh’s details.