Blender
V3.3
|
#include <float.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "atomic_ops.h"
#include "MEM_guardedalloc.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_bitmap.h"
#include "BLI_blenlib.h"
#include "BLI_edgehash.h"
#include "BLI_math.h"
#include "BLI_memarena.h"
#include "BLI_task.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BKE_ccg.h"
#include "BKE_cdderivedmesh.h"
#include "BKE_mesh.h"
#include "BKE_mesh_mapping.h"
#include "BKE_modifier.h"
#include "BKE_multires.h"
#include "BKE_object.h"
#include "BKE_paint.h"
#include "BKE_pbvh.h"
#include "BKE_scene.h"
#include "BKE_subsurf.h"
#include "BLI_array.h"
#include "CCGSubSurf.h"
Go to the source code of this file.
Classes | |
struct | FaceVertWeightEntry |
struct | WeightTable |
struct | CopyFinalLoopArrayData |
Macros | |
#define | USE_LOOP_LAYOUT_FAST |
#define | SUB_ELEMS_FACE 50 |
Typedefs | |
typedef float | FaceVertWeight[SUB_ELEMS_FACE][SUB_ELEMS_FACE] |
typedef struct FaceVertWeightEntry | FaceVertWeightEntry |
typedef struct WeightTable | WeightTable |
typedef struct CopyFinalLoopArrayData | CopyFinalLoopArrayData |
Enumerations | |
enum | CCGFlags { CCG_USE_AGING = 1 , CCG_USE_ARENA = 2 , CCG_CALC_NORMALS = 4 , CCG_ALLOC_MASK = 8 , CCG_SIMPLE_SUBDIV = 16 } |
#define SUB_ELEMS_FACE 50 |
Definition at line 469 of file subsurf_ccg.c.
#define USE_LOOP_LAYOUT_FAST |
Definition at line 59 of file subsurf_ccg.c.
typedef struct CopyFinalLoopArrayData CopyFinalLoopArrayData |
typedef float FaceVertWeight[SUB_ELEMS_FACE][SUB_ELEMS_FACE] |
Definition at line 470 of file subsurf_ccg.c.
typedef struct FaceVertWeightEntry FaceVertWeightEntry |
typedef struct WeightTable WeightTable |
enum CCGFlags |
Enumerator | |
---|---|
CCG_USE_AGING | |
CCG_USE_ARENA | |
CCG_CALC_NORMALS | |
CCG_ALLOC_MASK | |
CCG_SIMPLE_SUBDIV |
Definition at line 91 of file subsurf_ccg.c.
|
static |
Definition at line 100 of file subsurf_ccg.c.
References CCGAllocatorIFC::alloc, arena_alloc(), arena_free(), arena_realloc(), arena_release(), BLI_memarena_new(), CCG_ALLOC_MASK, CCG_CALC_NORMALS, CCG_SIMPLE_SUBDIV, CCG_USE_AGING, CCG_USE_ARENA, ccgSubSurf_free(), ccgSubSurf_getSimpleSubdiv(), ccgSubSurf_getUseAgeCounts(), ccgSubSurf_new(), ccgSubSurf_setAllocMask(), ccgSubSurf_setCalcVertexNormals(), ccgSubSurf_setSubdivisionLevels(), ccgSubSurf_setUseAgeCounts(), CCGMeshIFC::edgeUserSize, CCGMeshIFC::faceUserSize, float(), CCGAllocatorIFC::free, MAX2, MEM_SIZE_OPTIMAL, NULL, CCGMeshIFC::numLayers, CCGAllocatorIFC::realloc, CCGAllocatorIFC::release, CCGMeshIFC::simpleSubdiv, CCGMeshIFC::vertDataSize, and CCGMeshIFC::vertUserSize.
Referenced by set_subsurf_legacy_uv(), subsurf_calculate_limit_positions(), and subsurf_make_derived_from_derived().
|
static |
Definition at line 67 of file subsurf_ccg.c.
References Freestyle::a, and BLI_memarena_alloc().
Referenced by _getSubSurf().
|
static |
Definition at line 81 of file subsurf_ccg.c.
Referenced by _getSubSurf().
|
static |
Definition at line 72 of file subsurf_ccg.c.
References Freestyle::a, BLI_memarena_alloc(), and ptr.
Referenced by _getSubSurf().
|
static |
Definition at line 86 of file subsurf_ccg.c.
References Freestyle::a, and BLI_memarena_free().
Referenced by _getSubSurf().
|
static |
Definition at line 955 of file subsurf_ccg.c.
References ccgDM_to_MEdge(), ccgSubSurf_getEdgeEdgeHandle(), ccgSubSurf_getEdgeNumFaces(), ccgSubSurf_getEdgeSize(), ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getGridSize(), ccgSubSurf_getNumEdges(), ccgSubSurf_getNumFaces(), CCGDerivedMesh::drawInteriorEdges, e, CCGDerivedMesh::edge, CCGDerivedMesh::edgeFlags, CCGDerivedMesh::edgeMap, CCGDerivedMesh::face, CCGDerivedMesh::faceMap, getEdgeIndex(), getFaceIndex(), ME_EDGEDRAW, ME_EDGERENDER, ME_LOOSEEDGE, ME_SEAM, ME_SHARP, POINTER_AS_INT, CCGDerivedMesh::ss, x, and y.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1076 of file subsurf_ccg.c.
References atomic_cas_ptr(), BLI_edgehash_insert(), BLI_edgehash_new_ex(), BLI_mutex_lock(), BLI_mutex_unlock(), BLI_parallel_range_settings_defaults(), BLI_task_parallel_range(), ccgSubSurf_getEdgeSize(), ccgSubSurf_getGridSize(), ccgSubSurf_getNumFaces(), copyFinalLoopArray_task_cb(), data, CCGDerivedMesh::dm, CCGDerivedMesh::ehash, DerivedMesh::getEdgeArray, DerivedMesh::getGridOffset, CCGDerivedMesh::loops_cache_lock, TaskParallelSettings::min_iter_per_thread, DerivedMesh::numEdgeData, POINTER_FROM_INT, CCGDerivedMesh::ss, v1, and v2.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1120 of file subsurf_ccg.c.
References ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getGridSize(), ccgSubSurf_getNumFaces(), CCGDerivedMesh::face, CCGDerivedMesh::faceFlags, CCGDerivedMesh::faceMap, MPoly::flag, MPoly::loopstart, MPoly::mat_nr, ME_SMOOTH, CCGDerivedMesh::ss, MPoly::totloop, x, and y.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 884 of file subsurf_ccg.c.
References CCG_key_top_level(), ccgDM_to_MVert(), ccgSubSurf_getEdgeData(), ccgSubSurf_getEdgeSize(), ccgSubSurf_getFaceCenterData(), ccgSubSurf_getFaceGridData(), ccgSubSurf_getFaceGridEdgeData(), ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getGridSize(), ccgSubSurf_getNumEdges(), ccgSubSurf_getNumFaces(), ccgSubSurf_getNumVerts(), ccgSubSurf_getVertData(), e, CCGDerivedMesh::edge, CCGDerivedMesh::edgeMap, CCGDerivedMesh::face, CCGDerivedMesh::faceMap, CCGDerivedMesh::ss, v, CCGDerivedMesh::vert, CCGDerivedMesh::vertMap, x, and y.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1374 of file subsurf_ccg.c.
References ccgDM_getNumGrids(), ccgSubSurf_getFaceGridDataArray(), ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getNumFaces(), CCGDerivedMesh::face, CCGDerivedMesh::faceFlags, CCGDerivedMesh::faceMap, CCGDerivedMesh::gridData, CCGDerivedMesh::gridFaces, CCGDerivedMesh::gridFlagMats, CCGDerivedMesh::gridHidden, CCGDerivedMesh::gridOffset, MEM_callocN, MEM_mallocN, CCGDerivedMesh::numGrid, and CCGDerivedMesh::ss.
Referenced by ccgDM_getGridData(), ccgDM_getGridFlagMats(), ccgDM_getGridHidden(), and ccgDM_getGridOffset().
|
static |
Definition at line 1272 of file subsurf_ccg.c.
References Freestyle::a, ccgDM_getEdgeMapIndex(), ccgSubSurf_getEdgeSize(), ccgSubSurf_getNumEdges(), CD_CALLOC, CD_ORIGINDEX, CustomData_add_layer(), DM_get_edge_data_layer(), e, CCGDerivedMesh::edge, DerivedMesh::edgeData, CCGDerivedMesh::edgeMap, NULL, DerivedMesh::numEdgeData, ORIGINDEX_NONE, CCGDerivedMesh::ss, and type.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1315 of file subsurf_ccg.c.
References Freestyle::a, ccgDM_getFaceMapIndex(), ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getGridSize(), ccgSubSurf_getNumFaces(), CD_CALLOC, CD_ORIGINDEX, CustomData_add_layer(), DM_get_poly_data_layer(), CCGDerivedMesh::face, CCGDerivedMesh::faceMap, NULL, DerivedMesh::numPolyData, DerivedMesh::polyData, CCGDerivedMesh::ss, and type.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1230 of file subsurf_ccg.c.
References Freestyle::a, BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), ccgDM_getVertMapIndex(), ccgSubSurf_getNumVerts(), CD_CALLOC, CD_ORIGINDEX, CustomData_add_layer(), DM_get_vert_data_layer(), NULL, DerivedMesh::numVertData, CCGDerivedMesh::origindex_cache_rwlock, ORIGINDEX_NONE, CCGDerivedMesh::ss, THREAD_LOCK_READ, THREAD_LOCK_WRITE, type, v, CCGDerivedMesh::vert, DerivedMesh::vertData, and CCGDerivedMesh::vertMap.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 667 of file subsurf_ccg.c.
References ccgSubSurf_getEdgeUserData(), and e.
Referenced by ccgDM_get_edge_data_layer(), and set_ccgdm_all_geometry().
|
static |
Definition at line 672 of file subsurf_ccg.c.
References ccgSubSurf_getFaceUserData().
Referenced by ccgDM_get_poly_data_layer().
|
static |
Definition at line 855 of file subsurf_ccg.c.
References CCG_elem_co(), CCG_key_top_level(), copy_v3_v3(), get_vertex_elem(), and CCGDerivedMesh::ss.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 866 of file subsurf_ccg.c.
References CCG_elem_no(), CCG_key_top_level(), copy_v3_v3(), get_vertex_elem(), and CCGDerivedMesh::ss.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1428 of file subsurf_ccg.c.
References ccgdm_create_grids(), and CCGDerivedMesh::gridData.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1450 of file subsurf_ccg.c.
References ccgdm_create_grids(), and CCGDerivedMesh::gridFlagMats.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1458 of file subsurf_ccg.c.
References ccgdm_create_grids(), and CCGDerivedMesh::gridHidden.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1444 of file subsurf_ccg.c.
References CCG_key_top_level(), and CCGDerivedMesh::ss.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1436 of file subsurf_ccg.c.
References ccgdm_create_grids(), and CCGDerivedMesh::gridOffset.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1368 of file subsurf_ccg.c.
References ccgSubSurf_getGridSize(), and CCGDerivedMesh::ss.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 699 of file subsurf_ccg.c.
References CCG_elem_offset_co(), CCG_grid_elem_co(), CCG_key_top_level(), ccgEdgeIterator_getCurrent(), ccgEdgeIterator_isStopped(), ccgEdgeIterator_next(), ccgFaceIterator_getCurrent(), ccgFaceIterator_isStopped(), ccgFaceIterator_next(), ccgSubSurf_getEdgeDataArray(), ccgSubSurf_getEdgeSize(), ccgSubSurf_getFaceGridDataArray(), ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getGridSize(), ccgSubSurf_getNumVerts(), ccgSubSurf_getVertData(), ccgSubSurf_initEdgeIterator(), ccgSubSurf_initFaceIterator(), ccgSubSurf_initVertIterator(), ccgVertIterator_getCurrent(), ccgVertIterator_isStopped(), ccgVertIterator_next(), e, minmax_v3_v3v3(), CCGDerivedMesh::ss, v, x, and y.
|
static |
Definition at line 758 of file subsurf_ccg.c.
References ccgSubSurf_getNumFinalEdges(), and CCGDerivedMesh::ss.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1352 of file subsurf_ccg.c.
References ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getNumFaces(), CCGDerivedMesh::face, CCGDerivedMesh::faceMap, and CCGDerivedMesh::ss.
Referenced by ccgdm_create_grids(), and set_default_ccgdm_callbacks().
|
static |
Definition at line 772 of file subsurf_ccg.c.
References ccgSubSurf_getNumFinalFaces(), and CCGDerivedMesh::ss.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 765 of file subsurf_ccg.c.
References ccgSubSurf_getNumFinalFaces(), and CCGDerivedMesh::ss.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 751 of file subsurf_ccg.c.
References ccgSubSurf_getNumFinalVerts(), and CCGDerivedMesh::ss.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 662 of file subsurf_ccg.c.
References ccgSubSurf_getVertUserData(), and v.
Referenced by ccgDM_get_vert_data_layer(), and set_ccgdm_all_geometry().
|
static |
Definition at line 1467 of file subsurf_ccg.c.
References DerivedMesh::array, DerivedMesh::array_wip, atomic_cas_ptr(), BLI_assert, DM_ensure_looptri_data(), DerivedMesh::looptris, NULL, DerivedMesh::num, DerivedMesh::numLoopData, DerivedMesh::numPolyData, MLoopTri::poly, poly_to_tri_count(), and MLoopTri::tri.
Referenced by set_default_ccgdm_callbacks().
|
static |
Definition at line 1156 of file subsurf_ccg.c.
References BLI_edgehash_free(), BLI_findindex(), BLI_mutex_end(), BLI_rw_mutex_end(), ccgSubSurf_free(), DM_release(), CCGDerivedMesh::edgeFlags, CCGDerivedMesh::edgeMap, CCGDerivedMesh::ehash, CCGDerivedMesh::faceFlags, CCGDerivedMesh::faceMap, CCGDerivedMesh::freeSS, CCGDerivedMesh::gridData, CCGDerivedMesh::gridFaces, CCGDerivedMesh::gridFlagMats, CCGDerivedMesh::gridHidden, CCGDerivedMesh::gridOffset, CCGDerivedMesh::local_mmd, CCGDerivedMesh::loops_cache_lock, MEM_freeN, CCGDerivedMesh::mmd, CCGDerivedMesh::modified_flags, Object::modifiers, CCGDerivedMesh::multires, MULTIRES_COORDS_MODIFIED, MULTIRES_HIDDEN_MODIFIED, multires_modifier_update_hidden(), multires_modifier_update_mdisps(), NULL, CCGDerivedMesh::numGrid, CCGDerivedMesh::ob, CCGDerivedMesh::origindex_cache_rwlock, CCGDerivedMesh::pmap, CCGDerivedMesh::pmap_mem, CCGDerivedMesh::reverseFaceMap, CCGDerivedMesh::ss, and CCGDerivedMesh::vertMap.
Referenced by set_default_ccgdm_callbacks().
BLI_INLINE void ccgDM_to_MEdge | ( | MEdge * | med, |
const int | v1, | ||
const int | v2, | ||
const short | flag | ||
) |
Definition at line 947 of file subsurf_ccg.c.
References MEdge::bweight, MEdge::crease, MEdge::flag, v1, MEdge::v1, v2, and MEdge::v2.
Referenced by ccgDM_copyFinalEdgeArray().
BLI_INLINE void ccgDM_to_MVert | ( | MVert * | mv, |
const CCGKey * | key, | ||
CCGElem * | elem | ||
) |
Definition at line 878 of file subsurf_ccg.c.
References CCG_elem_co(), and copy_v3_v3().
Referenced by ccgDM_copyFinalVertArray().
|
static |
Definition at line 1033 of file subsurf_ccg.c.
References BLI_edgehash_lookup(), ccgSubSurf_getFaceNumVerts(), data, MLoop::e, CCGDerivedMesh::ehash, CCGDerivedMesh::face, CCGDerivedMesh::faceMap, getFaceIndex(), POINTER_AS_UINT, CCGDerivedMesh::ss, MLoop::v, v1, v2, x, and y.
Referenced by ccgDM_copyFinalLoopArray().
|
static |
Definition at line 1531 of file subsurf_ccg.c.
References ccgEdgeIterator_getCurrent(), ccgEdgeIterator_isStopped(), ccgEdgeIterator_next(), ccgFaceIterator_getCurrent(), ccgFaceIterator_isStopped(), ccgFaceIterator_next(), ccgSubSurf_getEdgeEdgeHandle(), ccgSubSurf_getFaceFaceHandle(), ccgSubSurf_getNumEdges(), ccgSubSurf_getNumFaces(), ccgSubSurf_getNumVerts(), ccgSubSurf_getVertVertHandle(), ccgSubSurf_initEdgeIterator(), ccgSubSurf_initFaceIterator(), ccgSubSurf_initVertIterator(), ccgVertIterator_getCurrent(), ccgVertIterator_isStopped(), ccgVertIterator_next(), e, CCGDerivedMesh::edge, CCGDerivedMesh::edgeMap, CCGDerivedMesh::face, CCGDerivedMesh::faceMap, MEM_mallocN, POINTER_AS_INT, v, CCGDerivedMesh::vert, and CCGDerivedMesh::vertMap.
Referenced by getCCGDerivedMesh().
|
static |
Definition at line 539 of file subsurf_ccg.c.
References WeightTable::len, MEM_freeN, FaceVertWeightEntry::valid, FaceVertWeightEntry::w, and WeightTable::weight_table.
Referenced by set_ccgdm_all_geometry().
|
static |
Definition at line 242 of file subsurf_ccg.c.
References BKE_mesh_uv_vert_map_get_vert(), UvMapVert::loop_of_poly_index, MPoly::loopstart, POINTER_FROM_UINT, UvMapVert::poly_index, MPoly::totloop, and v.
Referenced by ss_sync_from_uv().
|
static |
Definition at line 483 of file subsurf_ccg.c.
References float(), WeightTable::len, MEM_callocN, MEM_freeN, FaceVertWeightEntry::valid, w(), FaceVertWeightEntry::w, WeightTable::weight_table, x, and y.
Referenced by set_ccgdm_all_geometry().
|
static |
Definition at line 780 of file subsurf_ccg.c.
References ccgSubSurf_getEdgeData(), ccgSubSurf_getFaceCenterData(), ccgSubSurf_getFaceGridData(), ccgSubSurf_getFaceGridEdgeData(), ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getGridSize(), ccgSubSurf_getNumEdges(), ccgSubSurf_getNumFaces(), ccgSubSurf_getVertData(), e, CCGDerivedMesh::edge, CCGDerivedMesh::edgeMap, CCGDerivedMesh::face, CCGDerivedMesh::faceMap, offset, CCGDerivedMesh::ss, CCGDerivedMesh::startVert, v, CCGDerivedMesh::vert, CCGDerivedMesh::vertMap, x, and y.
Referenced by ccgDM_getFinalVertCo(), and ccgDM_getFinalVertNo().
|
static |
Definition at line 1851 of file subsurf_ccg.c.
References BLI_assert, BLI_mutex_init(), BLI_rw_mutex_init(), ccgSubSurf_getNumEdges(), ccgSubSurf_getNumFaces(), ccgSubSurf_getNumFinalEdges(), ccgSubSurf_getNumFinalFaces(), ccgSubSurf_getNumFinalVerts(), create_ccgdm_maps(), CCGDerivedMesh::dm, DM_from_template(), DM_TYPE_CCGDM, CCGDerivedMesh::drawInteriorEdges, CCGDerivedMesh::edgeFlags, CCGDerivedMesh::faceFlags, CCGDerivedMesh::loops_cache_lock, MEM_callocN, DerivedMesh::numEdgeData, DerivedMesh::numLoopData, DerivedMesh::numPolyData, DerivedMesh::numTessFaceData, DerivedMesh::numVertData, CCGDerivedMesh::origindex_cache_rwlock, CCGDerivedMesh::reverseFaceMap, set_ccgdm_all_geometry(), set_default_ccgdm_callbacks(), CCGDerivedMesh::ss, and CCGDerivedMesh::useSubsurfUv.
Referenced by subsurf_make_derived_from_derived().
|
static |
Definition at line 179 of file subsurf_ccg.c.
References ccgSubSurf_getEdgeUserData(), ccgSubSurf_getEdgeVert0(), ccgSubSurf_getEdgeVert1(), ccgSubSurf_getVertUserData(), e, v1, and x.
Referenced by ccgDM_copyFinalEdgeArray().
|
static |
Definition at line 197 of file subsurf_ccg.c.
References ccgSubSurf_getEdgeUserData(), ccgSubSurf_getEdgeVert0(), ccgSubSurf_getFaceEdge(), ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getFaceUserData(), ccgSubSurf_getFaceVert(), ccgSubSurf_getVertUserData(), e, v, x, and y.
Referenced by ccgDM_copyFinalEdgeArray(), and copyFinalLoopArray_task_cb().
Definition at line 677 of file subsurf_ccg.c.
Referenced by ccgDM_getMinMax().
|
static |
Definition at line 1569 of file subsurf_ccg.c.
References BLI_array_clear, BLI_array_declare, BLI_array_free, BLI_array_grow_items, BLI_assert, ccgDM_getEdgeMapIndex(), ccgDM_getVertMapIndex(), ccgSubSurf_getEdgeEdgeHandle(), ccgSubSurf_getEdgeSize(), ccgSubSurf_getEdgeUserData(), ccgSubSurf_getEdgeVert0(), ccgSubSurf_getEdgeVert1(), ccgSubSurf_getFaceFaceHandle(), ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getFaceUserData(), ccgSubSurf_getFaceVert(), ccgSubSurf_getGridSize(), ccgSubSurf_getNumEdges(), ccgSubSurf_getNumFaces(), ccgSubSurf_getNumFinalEdges(), ccgSubSurf_getNumFinalFaces(), ccgSubSurf_getNumFinalVerts(), ccgSubSurf_getNumVerts(), ccgSubSurf_getVertUserData(), ccgSubSurf_getVertVertHandle(), CD_MLOOPUV, CD_MPOLY, CD_ORIGINDEX, CustomData_copy_data(), CustomData_get_layer(), CustomData_interp(), CustomData_number_of_layers(), CCGDerivedMesh::dm, DM_copy_vert_data(), DM_get_edge_data_layer(), DM_get_poly_data_layer(), DM_get_vert_data_layer(), DM_interp_vert_data(), e, CCGDerivedMesh::edge, DerivedMesh::edgeData, CCGDerivedMesh::edgeFlags, CCGDerivedMesh::edgeMap, CCGDerivedMesh::face, CCGDerivedMesh::faceFlags, CCGDerivedMesh::faceMap, DMFlagMat::flag, MEdge::flag, MPoly::flag, float(), free_ss_weights(), get_ss_weights(), DerivedMesh::getEdgeArray, getNumEdges(), DerivedMesh::loopData, DMFlagMat::mat_nr, MPoly::mat_nr, NULL, ORIGINDEX_NONE, POINTER_AS_INT, DerivedMesh::polyData, CCGDerivedMesh::reverseFaceMap, set_subsurf_uv(), CCGDerivedMesh::ss, CCGDerivedMesh::startEdge, CCGDerivedMesh::startFace, CCGDerivedMesh::startVert, CustomData::totlayer, v, CCGDerivedMesh::vert, CCGDerivedMesh::vertMap, w(), x, and y.
Referenced by getCCGDerivedMesh().
|
static |
Definition at line 1500 of file subsurf_ccg.c.
References ccgDM_copyFinalEdgeArray(), ccgDM_copyFinalLoopArray(), ccgDM_copyFinalPolyArray(), ccgDM_copyFinalVertArray(), ccgDM_get_edge_data_layer(), ccgDM_get_poly_data_layer(), ccgDM_get_vert_data_layer(), ccgDM_getFinalVertCo(), ccgDM_getFinalVertNo(), ccgDM_getGridData(), ccgDM_getGridFlagMats(), ccgDM_getGridHidden(), ccgDM_getGridKey(), ccgDM_getGridOffset(), ccgDM_getGridSize(), ccgDM_getNumEdges(), ccgDM_getNumGrids(), ccgDM_getNumLoops(), ccgDM_getNumPolys(), ccgDM_getNumVerts(), ccgDM_recalcLoopTri(), ccgDM_release(), DerivedMesh::copyEdgeArray, DerivedMesh::copyLoopArray, DerivedMesh::copyPolyArray, DerivedMesh::copyVertArray, CCGDerivedMesh::dm, DerivedMesh::getEdgeDataArray, DerivedMesh::getGridData, DerivedMesh::getGridFlagMats, DerivedMesh::getGridHidden, DerivedMesh::getGridKey, DerivedMesh::getGridOffset, DerivedMesh::getGridSize, DerivedMesh::getNumEdges, DerivedMesh::getNumGrids, DerivedMesh::getNumLoops, DerivedMesh::getNumPolys, DerivedMesh::getNumVerts, DerivedMesh::getPolyDataArray, DerivedMesh::getVertCo, DerivedMesh::getVertDataArray, DerivedMesh::getVertNo, DerivedMesh::recalcLoopTri, and DerivedMesh::release.
Referenced by getCCGDerivedMesh().
|
static |
Definition at line 385 of file subsurf_ccg.c.
References _getSubSurf(), Freestyle::a, usdtokens::b(), Freestyle::c, CCG_USE_ARENA, ccgFaceIterator_getCurrent(), ccgFaceIterator_isStopped(), ccgFaceIterator_next(), ccgSubSurf_free(), ccgSubSurf_getFaceFaceHandle(), ccgSubSurf_getFaceGridDataArray(), ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getGridSize(), ccgSubSurf_getNumFaces(), ccgSubSurf_getSubdivisionLevels(), ccgSubSurf_initFaceIterator(), CD_MLOOPUV, CD_MTFACE, copy_v2_v2(), CustomData_get_layer_n(), faceMap, float(), DerivedMesh::loopData, MEM_freeN, MEM_mallocN, NULL, POINTER_AS_INT, result, ss_sync_from_uv(), MTFace::uv, x, and y.
Referenced by set_subsurf_uv().
|
static |
Definition at line 463 of file subsurf_ccg.c.
References result, and set_subsurf_legacy_uv().
Referenced by set_ccgdm_all_geometry().
|
static |
Definition at line 554 of file subsurf_ccg.c.
References BLI_array_clear, BLI_array_declare, BLI_array_free, BLI_array_grow_items, ccgSubSurf_getEdgeUserData(), ccgSubSurf_getFaceUserData(), ccgSubSurf_getSubdivisionLevels(), ccgSubSurf_getVertUserData(), ccgSubSurf_initFullSync(), ccgSubSurf_processSync(), ccgSubSurf_syncEdge(), ccgSubSurf_syncFace(), ccgSubSurf_syncVert(), CD_ORIGINDEX, MEdge::crease, e, eCCGError_InvalidValue, float(), DerivedMesh::getEdgeArray, DerivedMesh::getEdgeDataArray, DerivedMesh::getLoopArray, DerivedMesh::getNumEdges, DerivedMesh::getNumVerts, DerivedMesh::getPolyArray, DerivedMesh::getPolyDataArray, DerivedMesh::getVertArray, DerivedMesh::getVertDataArray, NULL, DerivedMesh::numPolyData, POINTER_FROM_INT, POINTER_FROM_UINT, v, MEdge::v1, and MEdge::v2.
Referenced by ss_sync_from_derivedmesh().
|
static |
Definition at line 651 of file subsurf_ccg.c.
References ss_sync_ccg_from_derivedmesh().
Referenced by subsurf_calculate_limit_positions(), and subsurf_make_derived_from_derived().
|
static |
Definition at line 262 of file subsurf_ccg.c.
References BKE_mesh_uv_vert_map_create(), BKE_mesh_uv_vert_map_free(), BKE_mesh_uv_vert_map_get_vert(), BLI_array_clear, BLI_array_declare, BLI_array_free, BLI_array_grow_items, BLI_EDGEHASH_SIZE_GUESS_FROM_POLYS, BLI_edgeset_add(), BLI_edgeset_free(), BLI_edgeset_new_ex(), ccgSubSurf_getEdgeCrease(), ccgSubSurf_getFace(), ccgSubSurf_getFaceEdge(), ccgSubSurf_initFullSync(), ccgSubSurf_processSync(), ccgSubSurf_syncEdge(), ccgSubSurf_syncFace(), ccgSubSurf_syncVert(), copy_v2_v2(), e, get_face_uv_map_vert(), DerivedMesh::getLoopArray, DerivedMesh::getNumPolys, DerivedMesh::getNumVerts, DerivedMesh::getPolyArray, MPoly::loopstart, next, NULL, POINTER_AS_UINT, POINTER_FROM_INT, STD_UV_CONNECT_LIMIT, MPoly::totloop, v, and v1.
Referenced by set_subsurf_legacy_uv().
Definition at line 2017 of file subsurf_ccg.c.
References _getSubSurf(), add_v3_v3(), add_v3_v3v3(), CCG_USE_ARENA, ccgSubSurf_free(), ccgSubSurf_getEdgeData(), ccgSubSurf_getFaceCenterData(), ccgSubSurf_getVertData(), ccgSubSurf_getVertEdge(), ccgSubSurf_getVertFace(), ccgSubSurf_getVertNumEdges(), ccgSubSurf_getVertNumFaces(), ccgSubSurf_getVertVertHandle(), ccgSubSurf_initVertIterator(), ccgVertIterator_getCurrent(), ccgVertIterator_isStopped(), ccgVertIterator_next(), CDDM_from_mesh(), e, mul_v3_fl(), N, NULL, POINTER_AS_INT, DerivedMesh::release, ss_sync_from_derivedmesh(), v, and zero_v3().
Referenced by add_verts_to_dgroups().
struct DerivedMesh* subsurf_make_derived_from_derived | ( | struct DerivedMesh * | dm, |
struct SubsurfModifierData * | smd, | ||
const struct Scene * | scene, | ||
float(*) | vertCos[3], | ||
SubsurfFlags | flags | ||
) |
Definition at line 1902 of file subsurf_ccg.c.
References _getSubSurf(), CCG_ALLOC_MASK, CCG_CALC_NORMALS, CCG_SIMPLE_SUBDIV, CCG_USE_AGING, CCG_USE_ARENA, ccgSubSurf_free(), ccgSubSurf_setNumLayers(), SubsurfModifierData::emCache, eSubsurfModifierFlag_ControlEdges, eSubsurfModifierFlag_DebugIncr, eSubsurfModifierFlag_Incremental, SubsurfModifierData::flags, get_render_subsurf_level(), getCCGDerivedMesh(), SubsurfModifierData::levels, SubsurfModifierData::mCache, ME_SIMPLE_SUBSURF, NULL, Scene::r, SubsurfModifierData::renderLevels, result, scene, ss_sync_from_derivedmesh(), SubsurfModifierData::subdivType, SUBSURF_ALLOC_PAINT_MASK, SUBSURF_FOR_EDIT_MODE, SUBSURF_IGNORE_SIMPLIFY, SUBSURF_IN_EDIT_MODE, SUBSURF_IS_FINAL_CALC, SUBSURF_USE_RENDER_PARAMS, SUBSURF_UV_SMOOTH_NONE, and SubsurfModifierData::uv_smooth.
Referenced by construct_param_handle_subsurfed(), init_heights_data(), shrinkwrapModifier_deform(), and subsurf_dm_create_local().