Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesdna/DNA_mesh_types.h
| Show First 20 Lines • Show All 55 Lines • ▼ Show 20 Lines | typedef struct EditMeshData { | ||||
| /** lazy initialize (when \a vertexCos is set) */ | /** lazy initialize (when \a vertexCos is set) */ | ||||
| float const (*vertexNos)[3]; | float const (*vertexNos)[3]; | ||||
| float const (*polyNos)[3]; | float const (*polyNos)[3]; | ||||
| /** also lazy init but don't depend on \a vertexCos */ | /** also lazy init but don't depend on \a vertexCos */ | ||||
| const float (*polyCos)[3]; | const float (*polyCos)[3]; | ||||
| } EditMeshData; | } EditMeshData; | ||||
| typedef struct EditMeshEval { | |||||
| /** Cached cage bounding box for selection. */ | |||||
| struct BoundBox *bb_cage; | |||||
| struct Mesh *mesh_final, *mesh_cage; | |||||
| /** The data mask evaluation meshes were created with. */ | |||||
| CustomData_MeshMasks last_data_mask; | |||||
| } EditMeshEval; | |||||
| /** | /** | ||||
| * \warning Typical access is done via | * \warning Typical access is done via | ||||
| * #BKE_mesh_runtime_looptri_ensure, #BKE_mesh_runtime_looptri_len. | * #BKE_mesh_runtime_looptri_ensure, #BKE_mesh_runtime_looptri_len. | ||||
| */ | */ | ||||
| struct MLoopTri_Store { | struct MLoopTri_Store { | ||||
| /* WARNING! swapping between array (ready-to-be-used data) and array_wip | /* WARNING! swapping between array (ready-to-be-used data) and array_wip | ||||
| * (where data is actually computed) | * (where data is actually computed) | ||||
| * shall always be protected by same lock as one used for looptris computing. */ | * shall always be protected by same lock as one used for looptris computing. */ | ||||
| struct MLoopTri *array, *array_wip; | struct MLoopTri *array, *array_wip; | ||||
| int len; | int len; | ||||
| int len_alloc; | int len_alloc; | ||||
| }; | }; | ||||
| /* not saved in file! */ | /* not saved in file! */ | ||||
| typedef struct Mesh_Runtime { | typedef struct Mesh_Runtime { | ||||
| /* Evaluated mesh for objects which do not have effective modifiers. | /* Evaluated mesh for objects which do not have effective modifiers. | ||||
| * This mesh is used as a result of modifier stack evaluation. | * This mesh is used as a result of modifier stack evaluation. | ||||
| * Since modifier stack evaluation is threaded on object level we need some synchronization. */ | * Since modifier stack evaluation is threaded on object level we need some synchronization. */ | ||||
| struct Mesh *mesh_eval; | struct Mesh *mesh_eval; | ||||
| void *eval_mutex; | void *eval_mutex; | ||||
| struct EditMeshData *edit_data; | /* Evaluated result of the modifier stack. */ | ||||
| void *batch_cache; | void *batch_cache; | ||||
| struct SubdivCCG *subdiv_ccg; | struct SubdivCCG *subdiv_ccg; | ||||
| void *_pad1; | |||||
| int subdiv_ccg_tot_level; | int subdiv_ccg_tot_level; | ||||
| char _pad2[4]; | char _pad2[4]; | ||||
| int64_t cd_dirty_vert; | int64_t cd_dirty_vert; | ||||
| int64_t cd_dirty_edge; | int64_t cd_dirty_edge; | ||||
| int64_t cd_dirty_loop; | int64_t cd_dirty_loop; | ||||
| int64_t cd_dirty_poly; | int64_t cd_dirty_poly; | ||||
| struct MLoopTri_Store looptris; | struct MLoopTri_Store looptris; | ||||
| struct EditMeshData *edit_data; | |||||
| struct EditMeshEval edit_eval; | |||||
| /** `BVHCache` defined in 'BKE_bvhutil.c' */ | /** `BVHCache` defined in 'BKE_bvhutil.c' */ | ||||
| struct BVHCache *bvh_cache; | struct BVHCache *bvh_cache; | ||||
| /** Non-manifold boundary data for Shrinkwrap Target Project. */ | /** Non-manifold boundary data for Shrinkwrap Target Project. */ | ||||
| struct ShrinkwrapBoundaryData *shrinkwrap_data; | struct ShrinkwrapBoundaryData *shrinkwrap_data; | ||||
| /** Set by modifier stack if only deformed from original. */ | /** Set by modifier stack if only deformed from original. */ | ||||
| char deformed_only; | char deformed_only; | ||||
| ▲ Show 20 Lines • Show All 166 Lines • ▼ Show 20 Lines | |||||
| /* Helper macro to see if vertex group X mirror is on. */ | /* Helper macro to see if vertex group X mirror is on. */ | ||||
| #define ME_USING_MIRROR_X_VERTEX_GROUPS(_me) \ | #define ME_USING_MIRROR_X_VERTEX_GROUPS(_me) \ | ||||
| (((_me)->editflag & ME_EDIT_MIRROR_VERTEX_GROUPS) && ((_me)->symmetry & ME_SYMMETRY_X)) | (((_me)->editflag & ME_EDIT_MIRROR_VERTEX_GROUPS) && ((_me)->symmetry & ME_SYMMETRY_X)) | ||||
| /* We cant have both flags enabled at once, | /* We cant have both flags enabled at once, | ||||
| * flags defined in DNA_scene_types.h */ | * flags defined in DNA_scene_types.h */ | ||||
| #define ME_EDIT_PAINT_SEL_MODE(_me) \ | #define ME_EDIT_PAINT_SEL_MODE(_me) \ | ||||
| (((_me)->editflag & ME_EDIT_PAINT_FACE_SEL) ? SCE_SELECT_FACE : \ | (((_me)->editflag & ME_EDIT_PAINT_FACE_SEL) ? \ | ||||
| ((_me)->editflag & ME_EDIT_PAINT_VERT_SEL) ? SCE_SELECT_VERTEX : \ | SCE_SELECT_FACE : \ | ||||
| 0) | ((_me)->editflag & ME_EDIT_PAINT_VERT_SEL) ? SCE_SELECT_VERTEX : 0) | ||||
| /* me->flag */ | /* me->flag */ | ||||
| enum { | enum { | ||||
| ME_FLAG_UNUSED_0 = 1 << 0, /* cleared */ | ME_FLAG_UNUSED_0 = 1 << 0, /* cleared */ | ||||
| ME_FLAG_UNUSED_1 = 1 << 1, /* cleared */ | ME_FLAG_UNUSED_1 = 1 << 1, /* cleared */ | ||||
| ME_FLAG_DEPRECATED_2 = 1 << 2, /* deprecated */ | ME_FLAG_DEPRECATED_2 = 1 << 2, /* deprecated */ | ||||
| ME_FLAG_UNUSED_3 = 1 << 3, /* cleared */ | ME_FLAG_UNUSED_3 = 1 << 3, /* cleared */ | ||||
| ME_FLAG_UNUSED_4 = 1 << 4, /* cleared */ | ME_FLAG_UNUSED_4 = 1 << 4, /* cleared */ | ||||
| ▲ Show 20 Lines • Show All 44 Lines • Show Last 20 Lines | |||||