Blender  V2.93
Classes | Functions
cdderivedmesh.c File Reference
#include "atomic_ops.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "BKE_DerivedMesh.h"
#include "BKE_cdderivedmesh.h"
#include "BKE_curve.h"
#include "BKE_editmesh.h"
#include "BKE_mesh.h"
#include "BKE_mesh_mapping.h"
#include "BKE_object.h"
#include "BKE_paint.h"
#include "BKE_pbvh.h"
#include "DNA_curve_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "MEM_guardedalloc.h"
#include <limits.h>
#include <math.h>
#include <string.h>

Go to the source code of this file.

Classes

struct  CDDerivedMesh
 

Functions

static int cdDM_getNumVerts (DerivedMesh *dm)
 
static int cdDM_getNumEdges (DerivedMesh *dm)
 
static int cdDM_getNumTessFaces (DerivedMesh *dm)
 
static int cdDM_getNumLoops (DerivedMesh *dm)
 
static int cdDM_getNumPolys (DerivedMesh *dm)
 
static void cdDM_getVert (DerivedMesh *dm, int index, MVert *r_vert)
 
static void cdDM_getEdge (DerivedMesh *dm, int index, MEdge *r_edge)
 
static void cdDM_getTessFace (DerivedMesh *dm, int index, MFace *r_face)
 
static void cdDM_copyVertArray (DerivedMesh *dm, MVert *r_vert)
 
static void cdDM_copyEdgeArray (DerivedMesh *dm, MEdge *r_edge)
 
static void cdDM_copyTessFaceArray (DerivedMesh *dm, MFace *r_face)
 
static void cdDM_copyLoopArray (DerivedMesh *dm, MLoop *r_loop)
 
static void cdDM_copyPolyArray (DerivedMesh *dm, MPoly *r_poly)
 
static void cdDM_getVertCo (DerivedMesh *dm, int index, float r_co[3])
 
static void cdDM_getVertNo (DerivedMesh *dm, int index, float r_no[3])
 
static const MeshElemMapcdDM_getPolyMap (Object *ob, DerivedMesh *dm)
 
static void cdDM_recalc_looptri (DerivedMesh *dm)
 
static void cdDM_free_internal (CDDerivedMesh *cddm)
 
static void cdDM_release (DerivedMesh *dm)
 
static CDDerivedMeshcdDM_create (const char *desc)
 
static DerivedMeshcdDM_from_mesh_ex (Mesh *mesh, eCDAllocType alloctype, const CustomData_MeshMasks *mask)
 
DerivedMeshCDDM_from_mesh (Mesh *mesh)
 
DerivedMeshCDDM_copy (DerivedMesh *source)
 

Function Documentation

◆ CDDM_copy()

DerivedMesh* CDDM_copy ( DerivedMesh source)

◆ cdDM_copyEdgeArray()

static void cdDM_copyEdgeArray ( DerivedMesh dm,
MEdge r_edge 
)
static

Definition at line 130 of file cdderivedmesh.c.

References CDDerivedMesh::medge, and DerivedMesh::numEdgeData.

Referenced by cdDM_create().

◆ cdDM_copyLoopArray()

static void cdDM_copyLoopArray ( DerivedMesh dm,
MLoop r_loop 
)
static

Definition at line 142 of file cdderivedmesh.c.

References CDDerivedMesh::mloop, and DerivedMesh::numLoopData.

Referenced by cdDM_create().

◆ cdDM_copyPolyArray()

static void cdDM_copyPolyArray ( DerivedMesh dm,
MPoly r_poly 
)
static

Definition at line 148 of file cdderivedmesh.c.

References CDDerivedMesh::mpoly, and DerivedMesh::numPolyData.

Referenced by cdDM_create().

◆ cdDM_copyTessFaceArray()

static void cdDM_copyTessFaceArray ( DerivedMesh dm,
MFace r_face 
)
static

Definition at line 136 of file cdderivedmesh.c.

References CDDerivedMesh::mface, and DerivedMesh::numTessFaceData.

Referenced by cdDM_create().

◆ cdDM_copyVertArray()

static void cdDM_copyVertArray ( DerivedMesh dm,
MVert r_vert 
)
static

Definition at line 124 of file cdderivedmesh.c.

References CDDerivedMesh::mvert, and DerivedMesh::numVertData.

Referenced by cdDM_create().

◆ cdDM_create()

static CDDerivedMesh* cdDM_create ( const char *  desc)
static

◆ cdDM_free_internal()

static void cdDM_free_internal ( CDDerivedMesh cddm)
static

Definition at line 199 of file cdderivedmesh.c.

References MEM_freeN, CDDerivedMesh::pmap, and CDDerivedMesh::pmap_mem.

Referenced by cdDM_release().

◆ CDDM_from_mesh()

DerivedMesh* CDDM_from_mesh ( Mesh mesh)

◆ cdDM_from_mesh_ex()

static DerivedMesh* cdDM_from_mesh_ex ( Mesh mesh,
eCDAllocType  alloctype,
const CustomData_MeshMasks mask 
)
static

◆ cdDM_getEdge()

static void cdDM_getEdge ( DerivedMesh dm,
int  index,
MEdge r_edge 
)
static

Definition at line 112 of file cdderivedmesh.c.

References CDDerivedMesh::medge.

Referenced by cdDM_create().

◆ cdDM_getNumEdges()

static int cdDM_getNumEdges ( DerivedMesh dm)
static

Definition at line 79 of file cdderivedmesh.c.

References DerivedMesh::numEdgeData.

Referenced by cdDM_create().

◆ cdDM_getNumLoops()

static int cdDM_getNumLoops ( DerivedMesh dm)
static

Definition at line 96 of file cdderivedmesh.c.

References DerivedMesh::numLoopData.

Referenced by cdDM_create().

◆ cdDM_getNumPolys()

static int cdDM_getNumPolys ( DerivedMesh dm)
static

Definition at line 101 of file cdderivedmesh.c.

References DerivedMesh::numPolyData.

Referenced by cdDM_create().

◆ cdDM_getNumTessFaces()

static int cdDM_getNumTessFaces ( DerivedMesh dm)
static

Definition at line 84 of file cdderivedmesh.c.

References DerivedMesh::numPolyData, and DerivedMesh::numTessFaceData.

Referenced by cdDM_create().

◆ cdDM_getNumVerts()

static int cdDM_getNumVerts ( DerivedMesh dm)
static

Definition at line 74 of file cdderivedmesh.c.

References DerivedMesh::numVertData.

Referenced by cdDM_create().

◆ cdDM_getPolyMap()

static const MeshElemMap* cdDM_getPolyMap ( Object ob,
DerivedMesh dm 
)
static

◆ cdDM_getTessFace()

static void cdDM_getTessFace ( DerivedMesh dm,
int  index,
MFace r_face 
)
static

Definition at line 118 of file cdderivedmesh.c.

References CDDerivedMesh::mface.

Referenced by cdDM_create().

◆ cdDM_getVert()

static void cdDM_getVert ( DerivedMesh dm,
int  index,
MVert r_vert 
)
static

Definition at line 106 of file cdderivedmesh.c.

References CDDerivedMesh::mvert.

Referenced by cdDM_create().

◆ cdDM_getVertCo()

static void cdDM_getVertCo ( DerivedMesh dm,
int  index,
float  r_co[3] 
)
static

Definition at line 154 of file cdderivedmesh.c.

References MVert::co, copy_v3_v3(), and CDDerivedMesh::mvert.

Referenced by cdDM_create().

◆ cdDM_getVertNo()

static void cdDM_getVertNo ( DerivedMesh dm,
int  index,
float  r_no[3] 
)
static

Definition at line 161 of file cdderivedmesh.c.

References CDDerivedMesh::mvert, MVert::no, and normal_short_to_float_v3().

Referenced by cdDM_create().

◆ cdDM_recalc_looptri()

static void cdDM_recalc_looptri ( DerivedMesh dm)
static

◆ cdDM_release()

static void cdDM_release ( DerivedMesh dm)
static

Definition at line 209 of file cdderivedmesh.c.

References cdDM_free_internal(), DM_release(), and MEM_freeN.

Referenced by cdDM_create().