# 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.

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your Docs generative AI assistant. Ask me anything about HOOPS Visualize Web or choose a sample question below to start a conversation:

What is HOOPS Visualize Web?
What are the latest release notes for HOOPS Visualize Web?
How do I start evaluating HOOPS Visualize Web?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...