|
class | MNVert |
| The vertex class used with the MNMesh mesh. More...
|
|
class | MNEdge |
| An edge used with the MNMesh mesh. More...
|
|
class | MNMapFace |
| Used to store map vertex information for a given face and map channel. More...
|
|
class | MNFace |
| The face structure used with the MNMesh mesh. More...
|
|
class | MNMap |
| Holds the mapping information for a particular map channel of the MNMesh. More...
|
|
class | MNDiagonalHitData |
| This class is used for hit-testing diagonals of polygons in Editable Poly and Edit Poly. More...
|
|
class | MNMesh |
| The MNMesh class is provided for temporary use by plug-ins, to help with complex topology-based modifications to Meshes. More...
|
|
class | MNMesh::ScopedLockChannels |
| A helper class for aquiring and releasing MNMesh channel locks. More...
|
|
class | MNMeshBorder |
| Hold boundary information for an MNMesh mesh. More...
|
|
class | MNFaceElement |
| Used to assist in the process of sorting MNMesh faces into separate elements. More...
|
|
class | MNFaceClusters |
| Used for grouping faces in an MNMesh into clusters for applying transformations. More...
|
|
class | MNEdgeClusters |
| Represents a list of edge "clusters" for a given MNMesh. More...
|
|
class | MNChamferData |
| Contains all the data needed to move points (and map vertices) as the user drags a chamfer or extrude. More...
|
|
class | MNTempData |
| Used for caching face and edge clusters, vertex normals, and other derived data about an MNMesh. More...
|
|
class | IMNTempData10 |
| Interface for changes made to MNTempData in version 9.5. More...
|
|
class | BasisFinder |
| Computes two components of a basis vector given a single input component. More...
|
|
class | MNMeshSelectionConverter |
| When a Mesh object or modifier (such as Editable Mesh, Edit Mesh, or Mesh Select) handles viewport subobject selection, the flow is basically as follows from Editable Mesh. More...
|
|
class | MNMeshUtilities |
| Provides a number of utility functions for working with MNMesh. More...
|
|
class | MNMapPreserveData |
| This class is used to "preserve" mapping coordinates while moving vertices. More...
|
|
class | IMNMeshUtilities8 |
| IMNMeshUtilities8 extends the MNMeshUtilities class, adding new functionality applied on a MNMesh. More...
|
|
class | IMNMeshUtilities10 |
| Extends the MNMeshUtilities class, adding new functionality applied on a MNMesh. More...
|
|
class | IMNMeshUtilities13 |
| Extends the MNMeshUtilities class, adding new functionality applied on a MNMesh. More...
|
|
class | IMNMeshUtilities14 |
| Extends the MNMeshUtilities class for 2018 Update 4, adding new functionality applied on a MNMesh. More...
|
|
class | IMNMeshUtilities15 |
| Extends the MNMeshUtilities class for 2019.1. More...
|
|
class | IMNMeshUtilities16 |
| Extends the MNMeshUtilities class for 2020. More...
|
|
class | IMNMeshUtilities17 |
| Extends the MNMeshUtilities class for 2020 Update 1. More...
|
|
class | IMNMeshUtilities18 |
| Extends the MNMeshUtilities class for 2020 Update 2. More...
|
|
class | IMNFaceExtrude |
| Interface class for handling interactive face extrude operations, such as the shift-drag face extrude implemented in Editable Poly and Edit Poly. More...
|
|
|
#define | REALLOC_SIZE 10 |
|
#define | MNMESH_FACEDATA_IMPL |
| Enables Face Data in PolyObjects:
|
|
#define | MNM_SELCONV_REQUIRE_ALL 0x02 |
|
#define | QCHAM_OPTION_ELWOOD_DEFAULTS (0) |
| Elwood (Max 2015) defaults.
|
|
#define | QCHAM_OPTION_LIMIT_EFFECT (1<<0) |
| Provides legacy-style limiting of chamfering.
|
|
#define | QCHAM_OPTION_QUAD_INTERSECTIONS (1<<1) |
| Provides quad intersections.
|
|
#define | QCHAM_OPTION_FIXED_EDGE_WEIGHTS (1<<2) |
| Provides parallel edges on chamfers.
|
|
#define | QCHAM_OPTION_VARIABLE_EDGE_WEIGHTS (1<<3) |
| Provides variable-weight chamfered edges based on Edge Crease value.
|
|
#define | QCHAM_OPTION_ABSOLUTE_EDGE_WEIGHTS (1<<7) |
| Provides per-edge chamfer weight define by absolute weighting values and scale factor; weight is constant for a particular edge, implying differing weights for edges meeting at a cluster.
|
|
#define | QCHAM_OPTION_USE_INSET (1<<4) |
| Provides insets from chamfered edges.
|
|
#define | QCHAM_OPTION_SUPPORT_LOOP_INSET (1<<10) |
| When set, any insets are formed following the Flow Loop definition, otherwise, the Face Inset definition is employed; this parameter has no effect when insets are not requested.
|
|
#define | QCHAM_OPTION_FORCE_POSITIVE_OFFSET (1<<5) |
| Forces a positive offset value to be applied at mitered edges.
|
|
#define | QCHAM_OPTION_USE_CONSTANT_OFFSET (1<<6) |
| Uses a constant offset value at each chamfer cluster, regardless of cluster type.
|
|
#define | QCHAM_OPTION_BIAS_END_POINTS (1<<8) |
| Adjusts tension-0.5 endpoint and hub point positions when radius bias is adjusted.
|
|
#define | QCHAM_OPTION_VARIABLE_DEPTH (1<<9) |
| Indicates variable edge chamfer depth specification, fetched from the mesh's Depth channel.
|
|
#define | QCHAM_OPTION_PATCH_CORNERS (1<<11) |
| Indicates use of "patch" type corners (otherwise identical to "Uniform")
|
|
#define | QCHAM_OPTION_RADIAL_CORNERS (1<<12) |
| Indicates use of "radial" type corners (otherwise identical to "Uniform")
|
|
#define | QCHAM_VERSION_ELWOOD (0) |
| Elwood (3ds Max 2015)
|
|
#define | QCHAM_VERSION_PHOENIX (100) |
| Phoenix (3ds Max 2016) - Includes edge selection fix.
|
|
#define | QCHAM_VERSION_IMOOGI (200) |
| Imoogi (3ds Max 2018) - Includes Quad Intersections upgrade.
|
|
#define | QCHAM_VERSION_ATHENA_ALPHA1 (290) |
| Athena (3ds Max 2020) - New options starting with QCHAM_OPTION_FIXED_EDGE_WEIGHTS.
|
|
#define | QCHAM_VERSION_ATHENA_UPDATE1 (295) |
| Athena (3ds Max 2020) Update 1 - New functionality, and modifications to some geometric calculations, such as chamfer inset point positions, for improved appearance.
|
|
#define | QCHAM_VERSION_ATHENA_UPDATE2 (300) |
| Athena (3ds Max 2020) Update 2 - New functionality, and fix for texture vertices on "shared" edge types.
|
|
#define | QCHAM_VERSION_ATHENA_UPDATE3 (305) |
| Athena (3ds Max 2020) Update 3 - Improvements for the chamfered surface geometry at concave face corners.
|
|
#define | QCHAM_VERSION_THESEUS (400) |
| Theseus (3ds Max 2021) - Extending new chamfer functiontality to EditPoly modifier.
|
|
#define | QCHAM_VERSION_THESEUS_UPDATE1 (405) |
| Theseus (3ds Max 2021) Update 1 - Improved treatment for chamfers on nearly-flat edges.
|
|
#define | QCHAM_VERSION_THESEUS_UPDATE3 (410) |
| Theseus (3ds Max 2021) Update 3 - Lower minimum chamfer amount to FLT_EPSILON from 0.001.
|
|
#define | QCHAM_VERSION_HEIMDALL_UPDATE1 (500) |
| Heimdall (3ds Max 2022) Update 1 - Impose a minimum edge weight for By Weight chamfers to rectify a regression in the zero weight case.
|
|
#define | QCHAM_VERSION_HEIMDALL_UPDATE3 (505) |
| Heimdall (3ds Max 2022) Update 3 - Adjustments to the Limit Effect treatment to handle cases that were previously distorted unnecessarily.
|
|
#define | QCHAM_VERSION_VESTA_UPDATE1 (600) |
| Vesta (3ds Max 2023) Update 1 - Enhanced retriangulation approach, based upon the algorithm implemented in MaxSDK::BuildDiagonals with version MaxSDK::TRIANGULATION_VER_2023_1.
|
|
#define | QCHAM_VERSION_VESTA_UPDATE2 (605) |
| Vesta (3ds Max 2023) Update 2 - Enhanced Limit Effect implementation, resolving geometric edge cases which previously were under-limited.
|
|
#define | QCHAM_VERSION_OLYMPUS (700) |
| Olympus (3ds Max 2024) - Employs the further-improved retriangulation approach implemented in MaxSDK::BuildDiagonals with version MaxSDK::TRIANGULATION_VER_2024.
|
|
#define | MN_FACE_OPEN_REGION (1<<8) |
| This face is part of a region of the mesh that is not closed, i.e.
|
|
#define | MN_FACE_CHECKED (1<<9) |
|
#define | MN_FACE_CHANGED (1<<10) |
| This flag can be cleared on all faces before an operation that moves some of the vertices of an MNMesh, then set for each face touching one of the moved vertices.
|
|
#define | MN_FACE_CULLED (1<<11) |
| Used to indicate a face has been culled during hit-testing.
|
|
#define | MN_FACE_CREATED (1<<12) |
| Used to indicate a face has been created by an operation.
|
|
#define | MAX_EDGEDATA 10 |
| Developer defined data.
|
|
#define | EDATA_KNOT 0 |
| The edge knot data.
|
|
#define | EDATA_CREASE 1 |
| The crease data.
|
|
#define | EDATA_COLOR 2 |
|
#define | EDATA_DEPTH 3 |
| Chamfer depth data.
|
|
#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_DIASBLE_NULL_EDGE_CHECK (1<<9) |
| When set, disables the "null" edge check and remediation in EliminateNullEdges.
|
|
#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) |
|
#define | MNDISP_VERTTICKS 0x01 |
| Display vertex tick marks.
|
|
#define | MNDISP_SELVERTS 0x02 |
| Display selected vertices.
|
|
#define | MNDISP_SELFACES 0x04 |
| Display selected faces.
|
|
#define | MNDISP_SELEDGES 0x08 |
| Display selected edges.
|
|
#define | MNDISP_NORMALS 0x10 |
| Display face normals.
|
|
#define | MNDISP_SMOOTH_SUBSEL 0x20 |
| Analogous to the Mesh display flag MESH_SMOOTH_SUBSEL, this indicates whether we should display smooth faces with selection-color outlines (TRUE) or transparent shaded faces (FALSE)
|
|
#define | MNDISP_BEEN_DISP 0x40 |
| Set when the MNMesh has been displayed (at the end of the render method.)
|
|
#define | MNDISP_DIAGONALS 0x80 |
| Set when diagonals should be displayed.
|
|
#define | MNDISP_HIDE_SUBDIVISION_INTERIORS 0x100 |
|
#define | MNDISP_USE_VERTEX_COLORS 0x200 |
| Set when vertex color data (VDATA_COLOR, if present) should be used to draw edges (used by OpenSubdiv)
|
|
#define | MNDISP_USE_EDGE_COLORS 0x400 |
| Set when edge color data (EDATA_COLOR, if present) should be used to draw vertices (used by OpenSubdiv)
|
|
#define | SUBHIT_MNUSECURRENTSEL (1<<22) |
| When this bit is set, the selection only and unselection only tests will use the current level (edge or face) selection when doing a vertex level hit test.
|
|
#define | SUBHIT_OPENONLY (1<<23) |
|
#define | SUBHIT_MNVERTS (1<<24) |
|
#define | SUBHIT_MNFACES (1<<25) |
|
#define | SUBHIT_MNEDGES (1<<26) |
|
#define | SUBHIT_MNDIAGONALS (1<<27) |
| Hit-test on "diagonals" of polygons - MNDiagonalHitData is the type of HitData returned.
|
|
#define | SUBHIT_MNTYPEMASK (SUBHIT_MNVERTS|SUBHIT_MNFACES|SUBHIT_MNEDGES|SUBHIT_MNDIAGONALS) |
|
#define | SUBHIT_IGNOREOPENBACKFACE (1 << 29) |
| Indicates that back face culling should be ignored for open edges/vertices.
|
|
#define | MN_SUBDIV_NEWMAP 0x01 |
|
#define | MN_SUBDIV_HIDE_INTERNAL_EDGES 0x10 |
|
#define | IMNMESHUTILITIES10_INTERFACE_ID Interface_ID(0x7b1acb31, 0x763982d5) |
|
#define | IMNMESHUTILITIES13_INTERFACE_ID Interface_ID(0x4dfa07c3, 0x637941b0) |
|
#define | IMNMESHUTILITIES14_INTERFACE_ID Interface_ID(0x484a5448, 0x22ae6acd) |
|
#define | IMNMESHUTILITIES15_INTERFACE_ID Interface_ID(0x484a5448, 0x22ae6ace) |
|
#define | IMNMESHUTILITIES16_INTERFACE_ID Interface_ID(0x2555776b, 0x61143448) |
|
#define | IMNMESHUTILITIES17_INTERFACE_ID Interface_ID(0x355a5448, 0x1214322c) |
|
#define | IMNMESHUTILITIES18_INTERFACE_ID Interface_ID(0x6c6e34f7, 0x798f5a9d) |
|
#define | IMNFACEEXTRUDE_INTERFACE_ID Interface_ID(0x8a8c52b5, 0x970d7e1b) |
|
|
#define | MN_SEL (1<<0) |
| For MNVerts, MNEdges, and MNFaces, bits 0-7 are used for common characteristics of all components.
|
|
#define | MN_DEAD (1<<1) |
| Indicates that a component is not used and should be ignored.
|
|
#define | MN_TARG (1<<2) |
| Indicates that a component is targeted.
|
|
#define | MN_BACKFACING (1<<3) |
| Indicates that the vertex faces "backwards" in the current viewport.
|
|
#define | MN_HIDDEN (1<<4) |
| For MNVerts, MNEdges, and MNFaces, bits 0-7 are used for common characteristics of all components.
|
|
#define | MN_CACHEINVALID (1<<5) |
| For MNVerts, MNEdges, and MNFaces, bits 0-7 are used for common characteristics of all components.
|
|
#define | MN_INFOREGROUND (1<<7) |
| Tags a face as not renderable but can be hit-test.
|
|
#define | MN_WHATEVER (1<<16) |
|
#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()
|
|
#define | MN_EDGE_WAS_PROCESSED (1<<13) |
| This flag is a general-purpose informational one that methods can set to indicate edges that were processed as part of their work, so that callers can act on them if desired.
|
|
|
#define | IMNMESHUTILITIES8_INTERFACE_ID Interface_ID(0xf5235e73, 0x3b304334) |
| Interface id for IMNMeshUtilities8, se.g.
|
|
#define | IMNTEMPDATA10_INTERFACE_ID Interface_ID(0x56d8fa2, 0x3459c774) |
| Interface ID for IMNTempData10.
|
|
|
#define | MN_MESH_TEMP_1 (1<<13) |
|
#define | MN_MESH_TEMP_2 (1<<14) |
|
#define | MN_MESH_DONTTRISTRIP (1<<15) |
|
#define | MN_MESH_SUBSELECTION_INVALID (1<<17) |
|
#define | MN_MESH_SOFTSELECTION_WEIGHT_INVALID (1<<18) |
|
#define | MN_MESH_USE_MAX2012_WELD_MATH (1<<19) |
|
#define | MN_CLEARMAPCHANNEL (1<<20) |
| Mesh Flag if set new tv face data will be cleared otherwise it will use a default planar.
|
|
#define | MN_MESH_VERTEXCOLOR_INVALID (1<<21) |
|
#define | MN_MESH_FACEFLAGS_INVALID (1<<22) |
|
This file contains a number of utility classes for manipulating triangle or
generalized polygon meshes.
The following files contains important grouping of constants and flags:
- \ref MNMesh_Component_Flags
- \ref MN_MESH_Flags
- \ref MNDISP_Flags