Blender
V3.3
|
#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_getNumLoops (DerivedMesh *dm) |
static int | cdDM_getNumPolys (DerivedMesh *dm) |
static void | cdDM_copyVertArray (DerivedMesh *dm, MVert *r_vert) |
static void | cdDM_copyEdgeArray (DerivedMesh *dm, MEdge *r_edge) |
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 void | cdDM_recalc_looptri (DerivedMesh *dm) |
static void | cdDM_free_internal (CDDerivedMesh *cddm) |
static void | cdDM_release (DerivedMesh *dm) |
static CDDerivedMesh * | cdDM_create (const char *desc) |
static DerivedMesh * | cdDM_from_mesh_ex (Mesh *mesh, eCDAllocType alloctype, const CustomData_MeshMasks *mask) |
DerivedMesh * | CDDM_from_mesh (Mesh *mesh) |
DerivedMesh * | CDDM_copy (DerivedMesh *source) |
Implementation of CDDerivedMesh. BKE_cdderivedmesh.h contains the function prototypes for this file.
Definition in file cdderivedmesh.c.
DerivedMesh* CDDM_copy | ( | DerivedMesh * | source | ) |
Definition at line 248 of file cdderivedmesh.c.
References CD_ASSIGN, DerivedMesh::cd_flag, CD_MEDGE, CD_MLOOP, CD_MPOLY, CD_MVERT, CD_ORIGINDEX, cdDM_create(), CustomData_add_layer(), CustomData_copy_data(), CustomData_get_layer(), DerivedMesh::deformedOnly, CDDerivedMesh::dm, DM_DupPolys(), DM_from_template(), DM_TYPE_CDDM, DerivedMesh::dupEdgeArray, DerivedMesh::dupVertArray, DerivedMesh::edgeData, DerivedMesh::getEdgeDataArray, DerivedMesh::getPolyDataArray, DerivedMesh::getVertDataArray, DerivedMesh::loopData, CDDerivedMesh::medge, CDDerivedMesh::mloop, CDDerivedMesh::mpoly, CDDerivedMesh::mvert, DerivedMesh::numEdgeData, DerivedMesh::numLoopData, DerivedMesh::numPolyData, DerivedMesh::numVertData, DerivedMesh::polyData, and DerivedMesh::vertData.
|
static |
Definition at line 84 of file cdderivedmesh.c.
References CDDerivedMesh::medge, and DerivedMesh::numEdgeData.
Referenced by cdDM_create().
|
static |
Definition at line 90 of file cdderivedmesh.c.
References CDDerivedMesh::mloop, and DerivedMesh::numLoopData.
Referenced by cdDM_create().
|
static |
Definition at line 96 of file cdderivedmesh.c.
References CDDerivedMesh::mpoly, and DerivedMesh::numPolyData.
Referenced by cdDM_create().
|
static |
Definition at line 78 of file cdderivedmesh.c.
References CDDerivedMesh::mvert, and DerivedMesh::numVertData.
Referenced by cdDM_create().
|
static |
Definition at line 154 of file cdderivedmesh.c.
References cdDM_copyEdgeArray(), cdDM_copyLoopArray(), cdDM_copyPolyArray(), cdDM_copyVertArray(), cdDM_getNumEdges(), cdDM_getNumLoops(), cdDM_getNumPolys(), cdDM_getNumVerts(), cdDM_getVertCo(), cdDM_getVertNo(), cdDM_recalc_looptri(), cdDM_release(), DerivedMesh::copyEdgeArray, DerivedMesh::copyLoopArray, DerivedMesh::copyPolyArray, DerivedMesh::copyVertArray, CDDerivedMesh::dm, DM_get_edge_data_layer(), DM_get_vert_data_layer(), DerivedMesh::getEdgeDataArray, DerivedMesh::getNumEdges, DerivedMesh::getNumLoops, DerivedMesh::getNumPolys, DerivedMesh::getNumVerts, DerivedMesh::getVertCo, DerivedMesh::getVertDataArray, DerivedMesh::getVertNo, MEM_callocN, DerivedMesh::recalcLoopTri, and DerivedMesh::release.
Referenced by CDDM_copy(), and cdDM_from_mesh_ex().
|
static |
Definition at line 133 of file cdderivedmesh.c.
References MEM_freeN, CDDerivedMesh::pmap, and CDDerivedMesh::pmap_mem.
Referenced by cdDM_release().
DerivedMesh* CDDM_from_mesh | ( | Mesh * | mesh | ) |
Definition at line 243 of file cdderivedmesh.c.
References CD_MASK_MESH, CD_REFERENCE, cdDM_from_mesh_ex(), and mesh.
Referenced by construct_param_handle_subsurfed(), multires_modifier_update_mdisps(), multiresbake_create_hiresdm(), multiresbake_create_loresdm(), shrinkwrapModifier_deform(), and subsurf_calculate_limit_positions().
|
static |
Definition at line 185 of file cdderivedmesh.c.
References BKE_mesh_vertex_normals_ensure(), BLI_assert, DerivedMesh::cd_flag, Mesh::cd_flag, CD_MASK_MDISPS, CD_MASK_ORIGINDEX, CD_MEDGE, CD_MFACE, CD_MLOOP, CD_MPOLY, CD_MVERT, CD_ORIGINDEX, cdDM_create(), CustomData_get_layer(), CustomData_has_layer(), CustomData_merge(), DerivedMesh::deformedOnly, CDDerivedMesh::dm, DM_init(), DM_TYPE_CDDM, Mesh::edata, DerivedMesh::edgeData, CustomData_MeshMasks::emask, DerivedMesh::faceData, Mesh::fdata, CustomData_MeshMasks::fmask, Mesh::ldata, CustomData_MeshMasks::lmask, DerivedMesh::loopData, mask(), CDDerivedMesh::medge, mesh, CDDerivedMesh::mface, CDDerivedMesh::mloop, CDDerivedMesh::mpoly, CDDerivedMesh::mvert, NULL, Mesh::pdata, CustomData_MeshMasks::pmask, DerivedMesh::polyData, Mesh::totedge, Mesh::totloop, Mesh::totpoly, Mesh::totvert, Mesh::vdata, CDDerivedMesh::vert_normals, DerivedMesh::vertData, and CustomData_MeshMasks::vmask.
Referenced by CDDM_from_mesh().
|
static |
Definition at line 63 of file cdderivedmesh.c.
References DerivedMesh::numEdgeData.
Referenced by cdDM_create().
|
static |
Definition at line 68 of file cdderivedmesh.c.
References DerivedMesh::numLoopData.
Referenced by cdDM_create().
|
static |
Definition at line 73 of file cdderivedmesh.c.
References DerivedMesh::numPolyData.
Referenced by cdDM_create().
|
static |
Definition at line 58 of file cdderivedmesh.c.
References DerivedMesh::numVertData.
Referenced by cdDM_create().
|
static |
Definition at line 102 of file cdderivedmesh.c.
References MVert::co, copy_v3_v3(), and CDDerivedMesh::mvert.
Referenced by cdDM_create().
|
static |
Definition at line 109 of file cdderivedmesh.c.
References copy_v3_v3(), and CDDerivedMesh::vert_normals.
Referenced by cdDM_create().
|
static |
Definition at line 115 of file cdderivedmesh.c.
References DerivedMesh::array, DerivedMesh::array_wip, atomic_cas_ptr(), BKE_mesh_recalc_looptri(), BLI_assert, CDDerivedMesh::dm, DM_ensure_looptri_data(), DerivedMesh::looptris, CDDerivedMesh::mloop, CDDerivedMesh::mpoly, CDDerivedMesh::mvert, NULL, DerivedMesh::numLoopData, and DerivedMesh::numPolyData.
Referenced by cdDM_create().
|
static |
Definition at line 143 of file cdderivedmesh.c.
References cdDM_free_internal(), DM_release(), and MEM_freeN.
Referenced by cdDM_create().