Represents a list of edge "clusters" for a given MNMesh.
A typical application would be in Editable Poly, where the user has selected a two separate groups of edges on different parts of the mesh and wants to rotate both around their local centers. Each "cluster" is a contiguous group of selected edges (ie they all touch each other). This class is only defined in relation to some MNMesh.
For convenient caching, it is recommended that you use this class through the MNTempData class.
#include <mnmesh.h>
Public Member Functions |
|
DllExport | MNEdgeClusters (MNMesh &mesh, DWORD clusterFlags) |
Constructor. |
|
int | operator[] (int i) |
Index operator to access cluster data.
|
|
DllExport void | MakeVertCluster (MNMesh &mesh, Tab< int > &vclust) |
This method will create a list of cluster
IDs for vertices. |
|
DllExport void | GetNormalsCenters (MNMesh &mesh, Tab< Point3 > &norm, Tab< Point3 > &ctr) |
This method extracts normal and center
information for each of the edge clusters. |
|
Public Attributes |
|
Tab< int > | clust |
The cluster IDs of all the edges - this
table has size MNMesh::nume. |
|
int | count |
The total number of clusters. |
DllExport MNEdgeClusters | ( | MNMesh & | mesh, |
DWORD | clusterFlags | ||
) |
Constructor.
int operator[] | ( | int | i | ) | [inline] |
Index operator to access cluster data.
{return clust[i];}
This method will create a list of cluster IDs for vertices.
This method extracts normal and center information for each of the edge clusters.
The cluster IDs of all the edges - this table has size MNMesh::nume.
clust[i] is UNDEFINED if edge i is not in any cluster.
int count |
The total number of clusters.