Blender
V3.3
|
#include <stddef.h>
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "BKE_cdderivedmesh.h"
#include "BKE_context.h"
#include "BKE_mesh.h"
#include "BKE_modifier.h"
#include "BKE_multires.h"
#include "BKE_paint.h"
#include "BKE_screen.h"
#include "BKE_subdiv.h"
#include "BKE_subdiv_ccg.h"
#include "BKE_subdiv_deform.h"
#include "BKE_subdiv_mesh.h"
#include "BKE_subsurf.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "WM_types.h"
#include "DEG_depsgraph_query.h"
#include "MOD_modifiertypes.h"
#include "MOD_ui_common.h"
Go to the source code of this file.
Classes | |
struct | MultiresRuntimeData |
Typedefs | |
typedef struct MultiresRuntimeData | MultiresRuntimeData |
Variables | |
ModifierTypeInfo | modifierType_Multires |
typedef struct MultiresRuntimeData MultiresRuntimeData |
Definition at line 453 of file MOD_multires.c.
References col, Panel::layout, modifier_panel_get_property_pointers(), NULL, ptr, RNA_int_get(), uiItemR(), uiLayoutColumn(), uiLayoutSetActive(), and uiLayoutSetPropSep().
Referenced by panelRegister().
|
static |
Definition at line 85 of file MOD_multires.c.
References BKE_modifier_copydata_generic().
|
static |
Definition at line 279 of file MOD_multires.c.
References BKE_modifier_set_error(), BKE_multires_subdiv_settings_init(), BKE_subdiv_deform_coarse_vertices(), BKE_subdiv_displacement_attach_from_multires(), BKE_subdiv_free(), SubdivSettings::level, mesh, multires_ccg_settings_init(), multires_ensure_runtime(), NULL, ModifierEvalContext::object, SubdivToCCGSettings::resolution, MultiresRuntimeData::subdiv, subdiv_descriptor_ensure(), and void.
|
static |
Definition at line 76 of file MOD_multires.c.
References eMultiresModifierFlag_UseCustomNormals, and MultiresModifierData::flags.
|
static |
Definition at line 102 of file MOD_multires.c.
References freeRuntimeData(), MultiresModifierData::modifier, and ModifierData::runtime.
Definition at line 90 of file MOD_multires.c.
References BKE_subdiv_free(), MEM_freeN, NULL, and MultiresRuntimeData::subdiv.
Referenced by freeData().
Definition at line 425 of file MOD_multires.c.
References col, PointerRNA::data, IFACE_, Panel::layout, modifier_panel_get_property_pointers(), NULL, ptr, RNA_boolean_get(), MultiresModifierData::totlvl, uiItemO(), uiItemR(), uiLayoutColumn(), uiLayoutRow(), and uiLayoutSetPropSep().
Referenced by panelRegister().
|
static |
Definition at line 53 of file MOD_multires.c.
References BLI_assert, DNA_struct_default_get, MEMCMP_STRUCT_AFTER_IS_ZERO, MEMCPY_STRUCT_AFTER, ModifierData::ui_expand_flag, UI_PANEL_DATA_EXPAND_ROOT, and UI_SUBPANEL_DATA_EXPAND_1.
|
static |
Definition at line 200 of file MOD_multires.c.
References SculptSession::active, BKE_mesh_calc_normals_split(), BKE_mesh_set_custom_normals(), BKE_modifier_set_error(), BKE_multires_subdiv_settings_init(), BKE_subdiv_free(), BLI_assert, CD_CUSTOMLOOPNORMAL, CD_FLAG_TEMPORARY, CD_NORMAL, CustomData_clear_layer_flag(), CustomData_get_layer(), CustomData_has_layer(), CustomData_set_layer_flag(), eMultiresModifierFlag_UseCustomNormals, eMultiresModifierFlag_UseSculptBaseMesh, ModifierEvalContext::flag, Mesh::flag, MultiresModifierData::flags, float(), Mesh::ldata, SculptSession::level, SubdivSettings::level, ME_AUTOSMOOTH, mesh, SculptSession::mloop, MOD_APPLY_ORCO, MOD_APPLY_RENDER, Object::mode, SculptSession::modifier, SculptSession::mpoly, SculptSession::multires, multires_as_ccg(), multires_as_mesh(), multires_ensure_runtime(), SculptSession::mvert, NULL, OB_MODE_SCULPT, ModifierEvalContext::object, result, Object::sculpt, MultiresModifierData::sculptlvl, MultiresRuntimeData::subdiv, SculptSession::subdiv_ccg, subdiv_descriptor_ensure(), MultiresModifierData::totlvl, SculptSession::totpoly, Mesh::totpoly, SculptSession::totvert, and Mesh::totvert.
|
static |
Definition at line 177 of file MOD_multires.c.
References BKE_subdiv_displacement_attach_from_multires(), BKE_subdiv_to_ccg_mesh(), mesh, MultiresModifierData::modifier, multires_ccg_settings_init(), NULL, SubdivToCCGSettings::resolution, result, ModifierData::runtime, and MultiresRuntimeData::subdiv.
Referenced by modifyMesh().
|
static |
Definition at line 132 of file MOD_multires.c.
References BKE_multires_subdiv_mesh_settings_init(), BKE_subdiv_displacement_attach_from_multires(), BKE_subdiv_to_mesh(), DEG_get_evaluated_scene(), ModifierEvalContext::depsgraph, ModifierEvalContext::flag, mesh, MOD_APPLY_IGNORE_SIMPLIFY, MOD_APPLY_RENDER, MOD_APPLY_TO_BASE_MESH, ModifierEvalContext::object, SubdivToMeshSettings::resolution, result, and scene.
Referenced by modifyMesh().
|
static |
Definition at line 161 of file MOD_multires.c.
References CD_GRID_PAINT_MASK, CustomData_has_layer(), DEG_get_evaluated_scene(), ModifierEvalContext::depsgraph, ModifierEvalContext::flag, Mesh::ldata, mesh, MOD_APPLY_IGNORE_SIMPLIFY, MOD_APPLY_RENDER, multires_get_level(), ModifierEvalContext::object, scene, and Subdiv::settings.
Referenced by deformMatrices(), and multires_as_ccg().
|
static |
Definition at line 108 of file MOD_multires.c.
References if(), MEM_callocN, MultiresModifierData::modifier, NULL, and ModifierData::runtime.
Referenced by deformMatrices(), and modifyMesh().
Definition at line 322 of file MOD_multires.c.
References C, col, CTX_data_active_object(), IFACE_, Panel::layout, Object::mode, modifier_panel_end(), modifier_panel_get_property_pointers(), NULL, OB_MODE_SCULPT, ptr, UI_block_lock_clear(), UI_block_lock_set(), uiItemR(), uiLayoutColumn(), uiLayoutGetBlock(), and uiLayoutSetPropSep().
Referenced by panelRegister().
|
static |
Definition at line 477 of file MOD_multires.c.
References advanced_panel_draw(), eModifierType_Multires, generate_panel_draw(), modifier_panel_register(), modifier_subpanel_register(), NULL, panel_draw(), shape_panel_draw(), and subdivisions_panel_draw().
|
static |
Definition at line 65 of file MOD_multires.c.
References CD_MASK_CUSTOMLOOPNORMAL, CD_MASK_NORMAL, eMultiresModifierFlag_UseCustomNormals, MultiresModifierData::flags, and CustomData_MeshMasks::lmask.
Definition at line 410 of file MOD_multires.c.
References IFACE_, Panel::layout, modifier_panel_get_property_pointers(), OB_MODE_EDIT, RNA_enum_get(), uiItemO(), uiLayoutRow(), and uiLayoutSetEnabled().
Referenced by panelRegister().
|
static |
Definition at line 120 of file MOD_multires.c.
References BKE_subdiv_update_from_mesh(), mesh, MultiresModifierData::modifier, ModifierData::runtime, and MultiresRuntimeData::subdiv.
Referenced by deformMatrices(), and modifyMesh().
Changing some of the properties can not be done once there is an actual displacement stored for this multi-resolution modifier. This check will disallow changes for those properties. This check is a bit stupid but it should be sufficient for the usual multi-resolution usage. It might become less strict and only disallow modifications if there is CD_MDISPS layer, or if there is actual non-zero displacement, but such checks will be too slow to be done on every redraw.
Definition at line 347 of file MOD_multires.c.
References PointerRNA::data, IFACE_, Panel::layout, modifier_panel_get_property_pointers(), MULTIRES_SUBDIVIDE_CATMULL_CLARK, MULTIRES_SUBDIVIDE_LINEAR, MULTIRES_SUBDIVIDE_SIMPLE, NULL, OB_MODE_EDIT, ptr, RNA_enum_get(), RNA_enum_set(), RNA_string_set(), uiItemFullO(), uiItemO(), uiItemS(), uiLayoutRow(), uiLayoutSetEnabled(), and WM_OP_EXEC_DEFAULT.
Referenced by panelRegister().
ModifierTypeInfo modifierType_Multires |
Definition at line 489 of file MOD_multires.c.