General MNMesh Component Flags | |
For MNVerts, MNEdges, and MNFaces, bits 0-7 are used for common characteristics of all components. Bits 8-15 are used for component-specific flags. Bits 16-23 are reserved for temporary use in MNMesh algorithms. Bits 24-31 are reserved for MNMath.lib users. | |
#define | MN_SEL (1<<0) |
Indicates that a component is selected. More... | |
#define | MN_DEAD (1<<1) |
Indicates that a component is not used and should be ignored. More... | |
#define | MN_TARG (1<<2) |
Indicates that a component is targeted. More... | |
#define | MN_BACKFACING (1<<3) |
Indicates that the vertex faces "backwards" in the current viewport. More... | |
#define | MN_HIDDEN (1<<4) |
#define | MN_CACHEINVALID (1<<5) |
#define | MN_INFOREGROUND (1<<7) |
Tags a face as not renderable but can be hit-test. More... | |
#define | MN_WHATEVER (1<<16) |
#define | MN_LOCAL_SEL (1<<17) |
Alternate selections (not passed up the pipe). More... | |
#define | MN_HITTEST_CULLED (1<<18) |
Used to indicate culled components (neither selected nor not selected) in window-region hit testing. More... | |
#define | MN_USER (1<<24) |
Any value above this can be used by applications. More... | |
Vertex Flags | |
#define | MN_VERT_DONE (1<<8) |
Set in algorithms that may accidentally revisit the same vertex (MNVertext twice, to keep them from processing it the second time. More... | |
#define | MN_VERT_WELDED (1<<9) |
Used by MNMesh::WeldBorderVerts() More... | |
#define | MN_VERT_SUBDIVISION_CORNER (1<<10) |
Track which vertices are direct "descendants" of the original cage vertices in subdivision. More... | |
Edge flags | |
#define | MN_EDGE_INVIS (1<<8) |
Both faces using this edge consider it invisible. More... | |
#define | MN_EDGE_NOCROSS (1<<9) |
This edge should not be crossed in algorithms like MNMesh::SabinDoo that can mix faces across edges. More... | |
#define | MN_EDGE_MAP_SEAM (1<<10) |
Track which edges are direct descendants of the original cage edges in subdivision. More... | |
#define | MN_EDGE_SUBDIVISION_BOUNDARY (1<<11) |
Track unwanted edges created by Cut, so they might be removed later. More... | |
#define | MN_EDGE_CUT_EXTRA (1<<12) |
Used with MNMesh::CutPrepare() and MNMEsh::CutCleanUp() More... | |
#define MN_SEL (1<<0) |
Indicates that a component is selected.
#define MN_DEAD (1<<1) |
Indicates that a component is not used and should be ignored.
Vertices with the MN_DEAD flag are deleted in the next call MNMesh::CollapseDeadVerts().
#define MN_TARG (1<<2) |
Indicates that a component is targeted.
(See the MNMesh methods starting with the words TargetBy.
#define MN_BACKFACING (1<<3) |
Indicates that the vertex faces "backwards" in the current viewport.
This changes often.
#define MN_HIDDEN (1<<4) |
#define MN_CACHEINVALID (1<<5) |
#define MN_INFOREGROUND (1<<7) |
Tags a face as not renderable but can be hit-test.
1<<6 is skipped because the tri strip uses that as face flag signifying a face to be stripped
#define MN_WHATEVER (1<<16) |
SDK users should use MN_USER and higher flags.
#define MN_LOCAL_SEL (1<<17) |
Alternate selections (not passed up the pipe).
#define MN_HITTEST_CULLED (1<<18) |
Used to indicate culled components (neither selected nor not selected) in window-region hit testing.
#define MN_USER (1<<24) |
Any value above this can be used by applications.
#define MN_VERT_DONE (1<<8) |
Set in algorithms that may accidentally revisit the same vertex (MNVertext twice, to keep them from processing it the second time.
#define MN_VERT_WELDED (1<<9) |
Used by MNMesh::WeldBorderVerts()
#define MN_VERT_SUBDIVISION_CORNER (1<<10) |
Track which vertices are direct "descendants" of the original cage vertices in subdivision.
#define MN_EDGE_INVIS (1<<8) |
Both faces using this edge consider it invisible.
#define MN_EDGE_NOCROSS (1<<9) |
This edge should not be crossed in algorithms like MNMesh::SabinDoo that can mix faces across edges.
#define MN_EDGE_MAP_SEAM (1<<10) |
Track which edges are direct descendants of the original cage edges in subdivision.
#define MN_EDGE_SUBDIVISION_BOUNDARY (1<<11) |
Track unwanted edges created by Cut, so they might be removed later.
#define MN_EDGE_CUT_EXTRA (1<<12) |
Used with MNMesh::CutPrepare() and MNMEsh::CutCleanUp()