Blender
V3.3
|
Go to the source code of this file.
Classes | |
struct | MVert |
struct | MEdge |
struct | MPoly |
struct | MLoop |
struct | MSelect |
struct | MLoopTri |
struct | MVertTri |
struct | MFloatProperty |
struct | MIntProperty |
struct | MStringProperty |
struct | MBoolProperty |
struct | MInt8Property |
struct | MDeformWeight |
struct | MDeformVert |
struct | MVertSkin |
struct | MLoopUV |
struct | MLoopCol |
struct | MPropCol |
struct | MDisps |
struct | GridPaintMask |
struct | OrigSpaceFace |
struct | OrigSpaceLoop |
struct | FreestyleEdge |
struct | FreestyleFace |
struct | MFace |
struct | MTFace |
struct | MCol |
struct | MRecast |
Macros | |
Utility Macros | |
#define | ME_POLY_LOOP_PREV(mloop, mp, i) (&(mloop)[(mp)->loopstart + (((i) + (mp)->totloop - 1) % (mp)->totloop)]) |
#define | ME_POLY_LOOP_NEXT(mloop, mp, i) (&(mloop)[(mp)->loopstart + (((i) + 1) % (mp)->totloop)]) |
#define | ME_POLY_TRI_TOT(mp) ((mp)->totloop - 2) |
#define | ME_MAT_NR_TEST(mat_nr, totmat) |
Typedefs | |
Loop Tessellation Runtime Data | |
typedef struct MLoopTri | MLoopTri |
typedef struct MVertTri | MVertTri |
Custom Data (Generic) | |
typedef struct MFloatProperty | MFloatProperty |
typedef struct MIntProperty | MIntProperty |
typedef struct MStringProperty | MStringProperty |
typedef struct MBoolProperty | MBoolProperty |
typedef struct MInt8Property | MInt8Property |
Custom Data (Original Space for Poly, Face) | |
typedef struct OrigSpaceFace | OrigSpaceFace |
typedef struct OrigSpaceLoop | OrigSpaceLoop |
Deprecated Structs | |
#define | MESH_MLOOPCOL_FROM_MCOL(_mloopcol, _mcol) |
#define | MESH_MLOOPCOL_TO_MCOL(_mloopcol, _mcol) |
enum | { ME_V1V2 = (1 << 0) , ME_V2V3 = (1 << 1) , ME_V3V1 = (1 << 2) , ME_V3V4 = ME_V3V1 , ME_V4V1 = (1 << 3) } |
typedef struct MFace | MFace |
typedef struct MTFace | MTFace |
typedef struct MCol | MCol |
typedef struct MRecast | MRecast |
Geometry Elements | |
enum | { ME_HIDE = (1 << 4) } |
enum | { ME_EDGEDRAW = (1 << 1) , ME_SEAM = (1 << 2) , ME_EDGERENDER = (1 << 5) , ME_LOOSEEDGE = (1 << 7) , ME_EDGE_TMP_TAG = (1 << 8) , ME_SHARP = (1 << 9) } |
enum | { ME_SMOOTH = (1 << 0) , ME_FACE_SEL = (1 << 1) } |
typedef struct MVert | MVert |
typedef struct MEdge | MEdge |
typedef struct MPoly | MPoly |
typedef struct MLoop | MLoop |
Ordered Selection Storage | |
enum | { ME_VSEL = 0 , ME_ESEL = 1 , ME_FSEL = 2 } |
typedef struct MSelect | MSelect |
Custom Data (Vertex) | |
enum | eMVertSkinFlag { MVERT_SKIN_ROOT = 1 , MVERT_SKIN_LOOSE = 2 } |
typedef struct MDeformWeight | MDeformWeight |
typedef struct MDeformVert | MDeformVert |
typedef struct MVertSkin | MVertSkin |
typedef enum eMVertSkinFlag | eMVertSkinFlag |
Custom Data (Loop) | |
enum | { MLOOPUV_EDGESEL = (1 << 0) , MLOOPUV_VERTSEL = (1 << 1) , MLOOPUV_PINNED = (1 << 2) } |
typedef struct MLoopUV | MLoopUV |
typedef struct MLoopCol | MLoopCol |
typedef struct MPropCol | MPropCol |
typedef struct MDisps | MDisps |
typedef struct GridPaintMask | GridPaintMask |
Custom Data (FreeStyle for Edge, Face) | |
enum | { FREESTYLE_EDGE_MARK = 1 } |
enum | { FREESTYLE_FACE_MARK = 1 } |
typedef struct FreestyleEdge | FreestyleEdge |
typedef struct FreestyleFace | FreestyleFace |
#define ME_MAT_NR_TEST | ( | mat_nr, | |
totmat | |||
) |
Check out-of-bounds material, note that this is nearly always prevented, yet its still possible in rare cases. So usage such as array lookup needs to check.
Definition at line 443 of file DNA_meshdata_types.h.
#define ME_POLY_LOOP_NEXT | ( | mloop, | |
mp, | |||
i | |||
) | (&(mloop)[(mp)->loopstart + (((i) + 1) % (mp)->totloop)]) |
Definition at line 433 of file DNA_meshdata_types.h.
#define ME_POLY_LOOP_PREV | ( | mloop, | |
mp, | |||
i | |||
) | (&(mloop)[(mp)->loopstart + (((i) + (mp)->totloop - 1) % (mp)->totloop)]) |
Definition at line 431 of file DNA_meshdata_types.h.
#define ME_POLY_TRI_TOT | ( | mp | ) | ((mp)->totloop - 2) |
Number of tri's that make up this polygon once tessellated.
Definition at line 436 of file DNA_meshdata_types.h.
#define MESH_MLOOPCOL_FROM_MCOL | ( | _mloopcol, | |
_mcol | |||
) |
Definition at line 488 of file DNA_meshdata_types.h.
#define MESH_MLOOPCOL_TO_MCOL | ( | _mloopcol, | |
_mcol | |||
) |
Definition at line 499 of file DNA_meshdata_types.h.
typedef enum eMVertSkinFlag eMVertSkinFlag |
typedef struct FreestyleEdge FreestyleEdge |
typedef struct FreestyleFace FreestyleFace |
typedef struct GridPaintMask GridPaintMask |
Multi-Resolution grid loop data.
typedef struct MBoolProperty MBoolProperty |
Tessellation vertex color data.
typedef struct MDeformVert MDeformVert |
Stores all of an element's vertex groups, and their weight values.
typedef struct MDeformWeight MDeformWeight |
Vertex group index and weight for MDeformVert.dw
Mesh Edges.
Typically accessed from Mesh.medge
typedef struct MFloatProperty MFloatProperty |
Custom Data Properties
typedef struct MInt8Property MInt8Property |
typedef struct MIntProperty MIntProperty |
Mesh Face Corners. "Loop" is an internal name for the corner of a polygon (MPoly).
Typically accessed from Mesh.mloop.
MLoopTri's are lightweight triangulation data, for functionality that doesn't support ngons (MPoly). This is cache data created from (MPoly, MLoop & MVert arrays). There is no attempt to maintain this data's validity over time, any changes to the underlying mesh invalidate the MLoopTri array, which will need to be re-calculated.
Users normally access this via BKE_mesh_runtime_looptri_ensure. In rare cases its calculated directly, with BKE_mesh_recalc_looptri.
Typical usage includes:
Storing loop indices (instead of vertex indices) allows us to directly access UV's, vertex-colors as well as vertices. The index of the source polygon is stored as well, giving access to materials and polygon normals.
Usage examples:
MLoopTri's are allocated in an array, where each polygon's MLoopTri's are stored contiguously, the number of triangles for each polygon is guaranteed to be (MPoly.totloop - 2), even for degenerate geometry. See ME_POLY_TRI_TOT macro.
It's also possible to perform a reverse lookup (find all MLoopTri's for any given MPoly).
It may also be useful to check whether or not two vertices of a triangle form an edge in the underlying mesh.
This can be done by checking the edge of the referenced loop (MLoop.e), the winding of the MLoopTri and the MLoop's will always match, however the order of vertices in the edge is undefined.
See BKE_mesh_looptri_get_real_edges for a utility that does this.
UV coordinate for a polygon face & flag for selection & other options.
Mesh Faces This only stores the polygon size & flags, the vertex & edge indices are stored in the MLoop.
Typically accessed from Mesh.mpoly.
Old game engine recast navigation data, while unused 2.7x files may contain this.
Optionally store the order of selected elements. This won't always be set since only some selection operations have an order.
Typically accessed from Mesh.mselect
typedef struct MStringProperty MStringProperty |
Mesh Vertices.
Typically accessed from Mesh.mvert
typedef struct OrigSpaceFace OrigSpaceFace |
Original space within a face (similar to UV coordinates), however they are used to determine the original position in a face.
Unlike UV's these are not user editable and always start out using a fixed 0-1 range. Currently only used for particle placement.
typedef struct OrigSpaceLoop OrigSpaceLoop |
anonymous enum |
anonymous enum |
Enumerator | |
---|---|
ME_EDGEDRAW | |
ME_SEAM | |
ME_EDGERENDER | |
ME_LOOSEEDGE | |
ME_EDGE_TMP_TAG | |
ME_SHARP |
Definition at line 51 of file DNA_meshdata_types.h.
anonymous enum |
anonymous enum |
anonymous enum |
Enumerator | |
---|---|
MLOOPUV_EDGESEL | |
MLOOPUV_VERTSEL | |
MLOOPUV_PINNED |
Definition at line 328 of file DNA_meshdata_types.h.
anonymous enum |
Enumerator | |
---|---|
FREESTYLE_EDGE_MARK |
Definition at line 412 of file DNA_meshdata_types.h.
anonymous enum |
Enumerator | |
---|---|
FREESTYLE_FACE_MARK |
Definition at line 421 of file DNA_meshdata_types.h.
anonymous enum |
Enumerator | |
---|---|
ME_V1V2 | |
ME_V2V3 | |
ME_V3V1 | |
ME_V3V4 | |
ME_V4V1 |
Definition at line 466 of file DNA_meshdata_types.h.
enum eMVertSkinFlag |
Definition at line 301 of file DNA_meshdata_types.h.