Defines

MNMesh Flags

The following flags can be set on a MNMesh. More...

Defines

#define  MN_MESH_NONTRI   (1<<0)
  At least 2 triangles have been joined.
#define  MN_MESH_FILLED_IN   (1<<1)
  If set, all topological links, such as the list of edges, are complete.
#define  MN_MESH_RATSNEST   (1<<2)
  Some regular Meshes have more than two faces referencing the same edge, or more than one referencing it in the same direction.
#define  MN_MESH_NO_BAD_VERTS   (1<<3)
  This indicates that the mesh has had its vertices checked and "bad" ones eliminated by EliminateBadVerts.
#define  MN_MESH_VERTS_ORDERED   (1<<4)
  Set if face and edge tables in each vertex are ordered by the methods MNMesh::OrderVerts().
#define  MN_MESH_FACE_NORMALS_INVALID   (1<<6)
  Set if any of the face normals (fnorm) have become invalid.
#define  MN_MESH_HAS_VOLUME   (1<<7)
  This mesh has at least one connected component which contains volume, i.e.
#define  MN_MESH_HITTEST_REQUIRE_ALL   (1<<8)
#define  MN_MESH_PARTIALCACHEINVALID   (1<<16)
  Indicates that the MNMesh has only set some of the vertices as invalid and not to reprocess the entire mesh just the vertices that changed.
#define  MN_MESH_CACHE_FLAGS   (MN_MESH_FILLED_IN|MN_MESH_NO_BAD_VERTS|MN_MESH_VERTS_ORDERED)

Detailed Description

The following flags can be set on a MNMesh.


Define Documentation

#define MN_MESH_NONTRI   (1<<0)

At least 2 triangles have been joined.

In other words at least one face has more than three sides.

#define MN_MESH_FILLED_IN   (1<<1)

If set, all topological links, such as the list of edges, are complete.

#define MN_MESH_RATSNEST   (1<<2)

Some regular Meshes have more than two faces referencing the same edge, or more than one referencing it in the same direction.

These are termed "rats' nest meshes". Since our edge structure only permits 1 or 2 faces (one in each direction), these meshes are unacceptable. Upon conversion, certain vertices & edges are replicated (increasing the vertex count) to separate these into regular, non-rats'-nest parts. If this happens, this flag is set to let you know this change has occurred. In particular, converting this MNMesh back into a regular Mesh will produce a Mesh with more vertices than you started with.

#define MN_MESH_NO_BAD_VERTS   (1<<3)

This indicates that the mesh has had its vertices checked and "bad" ones eliminated by EliminateBadVerts.

In other words it is established that each vertexe has exactly one connected component of faces and edges.

#define MN_MESH_VERTS_ORDERED   (1<<4)

Set if face and edge tables in each vertex are ordered by the methods MNMesh::OrderVerts().

#define MN_MESH_FACE_NORMALS_INVALID   (1<<6)

Set if any of the face normals (fnorm) have become invalid.

#define MN_MESH_HAS_VOLUME   (1<<7)

This mesh has at least one connected component which contains volume, i.e.

represents a solid object with no gaps or holes. The flag is set by the MNMesh::FindOpenRegions() method.

#define MN_MESH_HITTEST_REQUIRE_ALL   (1<<8)

Forces faces to be hit only if all triangles are hit.

#define MN_MESH_PARTIALCACHEINVALID   (1<<16)

Indicates that the MNMesh has only set some of the vertices as invalid and not to reprocess the entire mesh just the vertices that changed.

#define MN_MESH_CACHE_FLAGS   (MN_MESH_FILLED_IN|MN_MESH_NO_BAD_VERTS|MN_MESH_VERTS_ORDERED)