Classes | Defines | Enumerations | Functions

meshdelta.h File Reference

#include "maxheap.h"
#include "export.h"
#include "meshadj.h"

Go to the source code of this file.

Classes

class   VertMove
class   UVVertSet
class   FaceCreate
class   FaceRemap
class   FaceChange
class   FaceSmooth
class   MapDelta
class   VDataDelta
class   MeshDelta
class   MeshDeltaUser
class   MeshDeltaUserData

Defines

#define  MDELTA_VMOVE   0x0001
#define  MDELTA_VCLONE   0x0004
#define  MDELTA_VCREATE   MDELTA_VCLONE
#define  MDELTA_VDELETE   0x0008
#define  MDELTA_VDATA   0x0010
#define  MDELTA_FREMAP   0x0020
#define  MDELTA_FCHANGE   0x0040
#define  MDELTA_FCREATE   0x0080
#define  MDELTA_FDELETE   0x0100
#define  MDELTA_FDATA   0x0200
#define  MDELTA_NUMBERS   0x0400
#define  MDELTA_FSMOOTH   0x0800
#define  MDELTA_ALL   0xffff
#define  FR_V0   1
#define  FR_V1   2
#define  FR_V2   4
#define  FR_ALL   7
#define  ATTRIB_EDGE_A   (1<<0)
#define  ATTRIB_EDGE_B   (1<<1)
#define  ATTRIB_EDGE_C   (1<<2)
#define  ATTRIB_EDGE_ALL   7
#define  ATTRIB_HIDE_FACE   (1<<3)
#define  ATTRIB_MATID   (1<<4)
#define  ATTRIB_MATID_SHIFT   5
#define  ATTRIB_MATID_MASK   0xffff
#define  EM_MESHUIPARAM_LAST_INT   MuiShowFNormals
#define  EM_SL_OBJECT   0
#define  EM_SL_VERTEX   1
#define  EM_SL_EDGE   2
#define  EM_SL_FACE   3
#define  EM_SL_POLYGON   4
#define  EM_SL_ELEMENT   5
#define  EM_SHORTCUT_ID   0x38ba1366
#define  MDUID_EM_SELTYPE   40001
#define  MDUID_EM_SELTYPE_BACK   40002
#define  MDUID_EM_SELTYPE_VERTEX   40003
#define  MDUID_EM_SELTYPE_EDGE   40004
#define  MDUID_EM_SELTYPE_FACE   40005
#define  MDUID_EM_SELTYPE_POLYGON   40006
#define  MDUID_EM_SELTYPE_ELEMENT   40007
#define  MDUID_EM_SELTYPE_OBJ   40008
#define  MDUID_EM_AUTOSMOOTH   40009
#define  MDUID_EM_ATTACH   40010
#define  MDUID_EM_BREAK   40011
#define  MDUID_EM_IGBACK   40012
#define  MDUID_EM_BEVEL   40013
#define  MDUID_EM_CREATE   40014
#define  MDUID_EM_CUT   40015
#define  MDUID_EM_DIVIDE   40016
#define  MDUID_EM_EXTRUDE   40017
#define  MDUID_EM_FLIPNORM   40018
#define  MDUID_EM_SS_BACKFACE   40019
#define  MDUID_EM_UNIFY_NORMALS   40020
#define  MDUID_EM_HIDE   40021
#define  MDUID_EM_EDGE_INVIS   40022
#define  MDUID_EM_IGNORE_INVIS   40023
#define  MDUID_EM_IGNORE_INVIS   40023
#define  MDUID_EM_COLLAPSE   40024
#define  MDUID_EM_SHOWNORMAL   40025
#define  MDUID_EM_SELOPEN   40026
#define  MDUID_EM_REMOVE_ISO   40027
#define  MDUID_EM_SLICEPLANE   40028
#define  MDUID_EM_SOFTSEL   40029
#define  MDUID_EM_SLICE   40030
#define  MDUID_EM_DETACH   40031
#define  MDUID_EM_TURNEDGE   40032
#define  MDUID_EM_UNHIDE   40033
#define  MDUID_EM_EDGE_VIS   40034
#define  MDUID_EM_SELBYVERT   40035
#define  MDUID_EM_AUTOEDGE   40036
#define  MDUID_EM_WELD   40038
#define  MDUID_EM_EXPLODE   40039
#define  MDUID_EM_CHAMFER   40040
#define  MDUID_EM_WELD_TARGET   40041
#define  MDUID_EM_ATTACH_LIST   40042
#define  MDUID_EM_VIEW_ALIGN   40043
#define  MDUID_EM_GRID_ALIGN   40044
#define  MDUID_EM_SPLIT   40045
#define  MDUID_EM_REFINE_CUTENDS   40046
#define  MDUID_EM_COPY_NAMEDSEL   40047
#define  MDUID_EM_PASTE_NAMEDSEL   40048
#define  MDUID_EM_MAKE_PLANAR   40049
#define  MDUID_EM_VERT_COLOR   40050
#define  MDUID_EM_VERT_ILLUM   40051
#define  MDUID_EM_FLIP_NORMAL_MODE   40052

Enumerations

enum   meshCommandMode {
  McmCreate, McmAttach, McmExtrude, McmBevel,
  McmChamfer, McmSlicePlane, McmCut, McmWeldTarget,
  McmFlipNormalMode, McmDivide, McmTurnEdge, McmEditSoftSelection
}
enum   meshButtonOp {
  MopHide, MopUnhideAll, MopDelete, MopDetach,
  MopBreak, MopViewAlign, MopGridAlign, MopMakePlanar,
  MopCollapse, MopTessellate, MopExplode, MopSlice,
  MopWeld, MopRemoveIsolatedVerts, MopSelectOpenEdges, MopCreateShapeFromEdges,
  MopShowNormal, MopFlipNormal, MopUnifyNormal, MopAutoSmooth,
  MopVisibleEdge, MopInvisibleEdge, MopAutoEdge, MopAttachList,
  MopSelectByID, MopSelectBySG, MopClearAllSG, MopSelectByColor,
  MopCopyNS, MopPasteNS, MopEditVertColor, MopEditVertIllum
}
enum   meshUIParam {
  MuiSelByVert, MuiIgBack, MuiIgnoreVis, MuiSoftSel,
  MuiSSUseEDist, MuiSSEDist, MuiSSBack, MuiWeldBoxSize,
  MuiExtrudeType, MuiShowVNormals, MuiShowFNormals, MuiSliceSplit,
  MuiCutRefine, MuiPolyThresh, MuiFalloff, MuiPinch,
  MuiBubble, MuiWeldDist, MuiNormalSize, MuiDeleteIsolatedVerts
}

Functions

DllExport void  FindTriangulation (Mesh &m, int deg, int *vv, int *tri)

Define Documentation

#define MDELTA_VMOVE   0x0001

Definition at line 42 of file meshdelta.h.

#define MDELTA_VCLONE   0x0004

Definition at line 43 of file meshdelta.h.

#define MDELTA_VCREATE   MDELTA_VCLONE

Definition at line 44 of file meshdelta.h.

#define MDELTA_VDELETE   0x0008

Definition at line 45 of file meshdelta.h.

#define MDELTA_VDATA   0x0010

Definition at line 46 of file meshdelta.h.

#define MDELTA_FREMAP   0x0020

Definition at line 47 of file meshdelta.h.

#define MDELTA_FCHANGE   0x0040

Definition at line 48 of file meshdelta.h.

#define MDELTA_FCREATE   0x0080

Definition at line 49 of file meshdelta.h.

#define MDELTA_FDELETE   0x0100

Definition at line 50 of file meshdelta.h.

#define MDELTA_FDATA   0x0200

Definition at line 51 of file meshdelta.h.

#define MDELTA_NUMBERS   0x0400

Definition at line 52 of file meshdelta.h.

#define MDELTA_FSMOOTH   0x0800

Definition at line 53 of file meshdelta.h.

#define MDELTA_ALL   0xffff

Definition at line 54 of file meshdelta.h.

#define FR_V0   1

Definition at line 156 of file meshdelta.h.

#define FR_V1   2

Definition at line 157 of file meshdelta.h.

#define FR_V2   4

Definition at line 158 of file meshdelta.h.

#define FR_ALL   7

Definition at line 159 of file meshdelta.h.

#define ATTRIB_EDGE_A   (1<<0)

Definition at line 221 of file meshdelta.h.

#define ATTRIB_EDGE_B   (1<<1)

Definition at line 222 of file meshdelta.h.

#define ATTRIB_EDGE_C   (1<<2)

Definition at line 223 of file meshdelta.h.

#define ATTRIB_EDGE_ALL   7

Definition at line 224 of file meshdelta.h.

#define ATTRIB_HIDE_FACE   (1<<3)

Definition at line 225 of file meshdelta.h.

#define ATTRIB_MATID   (1<<4)

Definition at line 226 of file meshdelta.h.

#define ATTRIB_MATID_SHIFT   5

Definition at line 229 of file meshdelta.h.

#define ATTRIB_MATID_MASK   0xffff

Definition at line 230 of file meshdelta.h.

#define EM_MESHUIPARAM_LAST_INT   MuiShowFNormals

Definition at line 2230 of file meshdelta.h.

#define EM_SL_OBJECT   0

Definition at line 2231 of file meshdelta.h.

#define EM_SL_VERTEX   1

Definition at line 2232 of file meshdelta.h.

#define EM_SL_EDGE   2

Definition at line 2233 of file meshdelta.h.

#define EM_SL_FACE   3

Definition at line 2234 of file meshdelta.h.

#define EM_SL_POLYGON   4

Definition at line 2235 of file meshdelta.h.

#define EM_SL_ELEMENT   5

Definition at line 2236 of file meshdelta.h.

#define EM_SHORTCUT_ID   0x38ba1366

Definition at line 2391 of file meshdelta.h.

#define MDUID_EM_SELTYPE   40001

Definition at line 2393 of file meshdelta.h.

#define MDUID_EM_SELTYPE_BACK   40002

Definition at line 2394 of file meshdelta.h.

#define MDUID_EM_SELTYPE_VERTEX   40003

Definition at line 2395 of file meshdelta.h.

#define MDUID_EM_SELTYPE_EDGE   40004

Definition at line 2396 of file meshdelta.h.

#define MDUID_EM_SELTYPE_FACE   40005

Definition at line 2397 of file meshdelta.h.

#define MDUID_EM_SELTYPE_POLYGON   40006

Definition at line 2398 of file meshdelta.h.

#define MDUID_EM_SELTYPE_ELEMENT   40007

Definition at line 2399 of file meshdelta.h.

#define MDUID_EM_SELTYPE_OBJ   40008

Definition at line 2400 of file meshdelta.h.

#define MDUID_EM_AUTOSMOOTH   40009

Definition at line 2401 of file meshdelta.h.

#define MDUID_EM_ATTACH   40010

Definition at line 2402 of file meshdelta.h.

#define MDUID_EM_BREAK   40011

Definition at line 2403 of file meshdelta.h.

#define MDUID_EM_IGBACK   40012

Definition at line 2404 of file meshdelta.h.

#define MDUID_EM_BEVEL   40013

Definition at line 2405 of file meshdelta.h.

#define MDUID_EM_CREATE   40014

Definition at line 2406 of file meshdelta.h.

#define MDUID_EM_CUT   40015

Definition at line 2407 of file meshdelta.h.

#define MDUID_EM_DIVIDE   40016

Definition at line 2408 of file meshdelta.h.

#define MDUID_EM_EXTRUDE   40017

Definition at line 2409 of file meshdelta.h.

#define MDUID_EM_FLIPNORM   40018

Definition at line 2410 of file meshdelta.h.

#define MDUID_EM_SS_BACKFACE   40019

Definition at line 2411 of file meshdelta.h.

#define MDUID_EM_UNIFY_NORMALS   40020

Definition at line 2412 of file meshdelta.h.

#define MDUID_EM_HIDE   40021

Definition at line 2413 of file meshdelta.h.

#define MDUID_EM_EDGE_INVIS   40022

Definition at line 2414 of file meshdelta.h.

#define MDUID_EM_IGNORE_INVIS   40023

Definition at line 2416 of file meshdelta.h.

#define MDUID_EM_IGNORE_INVIS   40023

Definition at line 2416 of file meshdelta.h.

#define MDUID_EM_COLLAPSE   40024

Definition at line 2417 of file meshdelta.h.

#define MDUID_EM_SHOWNORMAL   40025

Definition at line 2418 of file meshdelta.h.

#define MDUID_EM_SELOPEN   40026

Definition at line 2419 of file meshdelta.h.

#define MDUID_EM_REMOVE_ISO   40027

Definition at line 2420 of file meshdelta.h.

#define MDUID_EM_SLICEPLANE   40028

Definition at line 2421 of file meshdelta.h.

#define MDUID_EM_SOFTSEL   40029

Definition at line 2422 of file meshdelta.h.

#define MDUID_EM_SLICE   40030

Definition at line 2423 of file meshdelta.h.

#define MDUID_EM_DETACH   40031

Definition at line 2424 of file meshdelta.h.

#define MDUID_EM_TURNEDGE   40032

Definition at line 2425 of file meshdelta.h.

#define MDUID_EM_UNHIDE   40033

Definition at line 2426 of file meshdelta.h.

#define MDUID_EM_EDGE_VIS   40034

Definition at line 2427 of file meshdelta.h.

#define MDUID_EM_SELBYVERT   40035

Definition at line 2428 of file meshdelta.h.

#define MDUID_EM_AUTOEDGE   40036

Definition at line 2429 of file meshdelta.h.

#define MDUID_EM_WELD   40038

Definition at line 2430 of file meshdelta.h.

#define MDUID_EM_EXPLODE   40039

Definition at line 2431 of file meshdelta.h.

#define MDUID_EM_CHAMFER   40040

Definition at line 2432 of file meshdelta.h.

#define MDUID_EM_WELD_TARGET   40041

Definition at line 2433 of file meshdelta.h.

#define MDUID_EM_ATTACH_LIST   40042

Definition at line 2434 of file meshdelta.h.

#define MDUID_EM_VIEW_ALIGN   40043

Definition at line 2435 of file meshdelta.h.

#define MDUID_EM_GRID_ALIGN   40044

Definition at line 2436 of file meshdelta.h.

#define MDUID_EM_SPLIT   40045

Definition at line 2437 of file meshdelta.h.

#define MDUID_EM_REFINE_CUTENDS   40046

Definition at line 2438 of file meshdelta.h.

#define MDUID_EM_COPY_NAMEDSEL   40047

Definition at line 2439 of file meshdelta.h.

#define MDUID_EM_PASTE_NAMEDSEL   40048

Definition at line 2440 of file meshdelta.h.

#define MDUID_EM_MAKE_PLANAR   40049

Definition at line 2441 of file meshdelta.h.

#define MDUID_EM_VERT_COLOR   40050

Definition at line 2442 of file meshdelta.h.

#define MDUID_EM_VERT_ILLUM   40051

Definition at line 2443 of file meshdelta.h.

#define MDUID_EM_FLIP_NORMAL_MODE   40052

Definition at line 2444 of file meshdelta.h.


Enumeration Type Documentation

Enumerator:
MopHide 
MopUnhideAll 
MopDelete 
MopDetach 
MopBreak 
MopViewAlign 
MopGridAlign 
MopMakePlanar 
MopCollapse 
MopTessellate 
MopExplode 
MopSlice 
MopWeld 
MopRemoveIsolatedVerts 
MopSelectOpenEdges 
MopCreateShapeFromEdges 
MopShowNormal 
MopFlipNormal 
MopUnifyNormal 
MopAutoSmooth 
MopVisibleEdge 
MopInvisibleEdge 
MopAutoEdge 
MopAttachList 
MopSelectByID 
MopSelectBySG 
MopClearAllSG 
MopSelectByColor 
MopCopyNS 
MopPasteNS 
MopEditVertColor 
MopEditVertIllum 

Definition at line 2217 of file meshdelta.h.


Function Documentation

DllExport void FindTriangulation ( Mesh m,
int  deg,
int *  vv,
int *  tri 
)
Remarks:
This global function is available in release 3.0 and later only.

Finds a triangulation of an n-sided polygon using vertices in the specified mesh. As long as the vertices are coplanar, this algorithm will find a proper triangulation, even for nonconvex polygons.
Parameters:
Mesh &m

The mesh containing the vertices used in the polygon.

int deg

The size of the polygon.

int *vv

The vertex indices of the polygon, in order around the perimeter. For instance, if deg is 5 and w points to an array containing (3, 6, 8, 0, 7), the polygon is presumed to have the outline described by m.verts[3], m.verts[6], m.verts[8], m.verts[0], and m.verts[7].

int *tri

This is where the output is placed. Note that this should point to an array of size at least (deg-2)*3, to hold all the triangles. The values placed in this array are indices into the w array -- that is, given a 5-sided polygon, one triangle in this list might be (0,2,3), indicating you should use the 0th, 2nd, and 3rd elements of w to form the triangle. Put another way, to make a face from the n'th triangle given by this array, you would set:

f.v[0] = w[tri[n*3+0]];

f.v[1] = w[tri[n*3+1]];

f.v[2] = w[tri[n*3+2]];