254 int numTessFaces = 0;
typedef float(TangentPoint)[2]
void * DM_get_edge_data_layer(struct DerivedMesh *dm, int type)
void DM_init(DerivedMesh *dm, DerivedMeshType type, int numVerts, int numEdges, int numTessFaces, int numLoops, int numPolys)
bool DM_release(DerivedMesh *dm)
void DM_from_template(DerivedMesh *dm, DerivedMesh *source, DerivedMeshType type, int numVerts, int numEdges, int numTessFaces, int numLoops, int numPolys)
void DM_ensure_looptri_data(DerivedMesh *dm)
void * DM_get_vert_data_layer(struct DerivedMesh *dm, int type)
void DM_DupPolys(DerivedMesh *source, DerivedMesh *target)
bool CustomData_merge(const struct CustomData *source, struct CustomData *dest, eCustomDataMask mask, eCDAllocType alloctype, int totelem)
bool CustomData_has_layer(const struct CustomData *data, int type)
void * CustomData_get_layer(const struct CustomData *data, int type)
void * CustomData_add_layer(struct CustomData *data, int type, eCDAllocType alloctype, void *layer, int totelem)
void CustomData_copy_data(const struct CustomData *source, struct CustomData *dest, int source_index, int dest_index, int count)
const CustomData_MeshMasks CD_MASK_MESH
const float(* BKE_mesh_vertex_normals_ensure(const struct Mesh *mesh))[3]
void BKE_mesh_recalc_looptri(const struct MLoop *mloop, const struct MPoly *mpoly, const struct MVert *mvert, int totloop, int totpoly, struct MLoopTri *mlooptri)
General operations, lookup, etc. for blender objects.
A BVH for high poly meshes.
MINLINE void copy_v3_v3(float r[3], const float a[3])
#define CD_MASK_ORIGINDEX
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
Provides wrapper around system-specific atomic primitives, and some extensions (faked-atomic operatio...
ATOMIC_INLINE void * atomic_cas_ptr(void **v, void *old, void *_new)
static DerivedMesh * cdDM_from_mesh_ex(Mesh *mesh, eCDAllocType alloctype, const CustomData_MeshMasks *mask)
static void cdDM_copyEdgeArray(DerivedMesh *dm, MEdge *r_edge)
static void cdDM_copyLoopArray(DerivedMesh *dm, MLoop *r_loop)
static void cdDM_recalc_looptri(DerivedMesh *dm)
static int cdDM_getNumLoops(DerivedMesh *dm)
static void cdDM_free_internal(CDDerivedMesh *cddm)
static CDDerivedMesh * cdDM_create(const char *desc)
static void cdDM_getVertCo(DerivedMesh *dm, int index, float r_co[3])
static void cdDM_copyVertArray(DerivedMesh *dm, MVert *r_vert)
static int cdDM_getNumVerts(DerivedMesh *dm)
static int cdDM_getNumEdges(DerivedMesh *dm)
DerivedMesh * CDDM_from_mesh(Mesh *mesh)
static void cdDM_copyPolyArray(DerivedMesh *dm, MPoly *r_poly)
static void cdDM_release(DerivedMesh *dm)
static void cdDM_getVertNo(DerivedMesh *dm, int index, float r_no[3])
DerivedMesh * CDDM_copy(DerivedMesh *source)
static int cdDM_getNumPolys(DerivedMesh *dm)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
const float(* vert_normals)[3]
void(* getVertNo)(DerivedMesh *dm, int index, float r_no[3])
void *(* getVertDataArray)(DerivedMesh *dm, int type)
void(* copyLoopArray)(DerivedMesh *dm, struct MLoop *r_loop)
void(* copyEdgeArray)(DerivedMesh *dm, struct MEdge *r_edge)
int(* getNumVerts)(DerivedMesh *dm)
void(* copyPolyArray)(DerivedMesh *dm, struct MPoly *r_poly)
int(* getNumPolys)(DerivedMesh *dm)
struct MEdge *(* dupEdgeArray)(DerivedMesh *dm)
int(* getNumEdges)(DerivedMesh *dm)
struct DerivedMesh::@16 looptris
struct MVert *(* dupVertArray)(DerivedMesh *dm)
struct MLoopTri * array_wip
void(* copyVertArray)(DerivedMesh *dm, struct MVert *r_vert)
void *(* getPolyDataArray)(DerivedMesh *dm, int type)
void *(* getEdgeDataArray)(DerivedMesh *dm, int type)
void(* recalcLoopTri)(DerivedMesh *dm)
void(* release)(DerivedMesh *dm)
void(* getVertCo)(DerivedMesh *dm, int index, float r_co[3])
int(* getNumLoops)(DerivedMesh *dm)