Blender V4.3
MOD_multires.cc File Reference
#include <cstddef>
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
#include "BKE_context.hh"
#include "BKE_customdata.hh"
#include "BKE_mesh.hh"
#include "BKE_modifier.hh"
#include "BKE_multires.hh"
#include "BKE_paint.hh"
#include "BKE_subdiv.hh"
#include "BKE_subdiv_ccg.hh"
#include "BKE_subdiv_deform.hh"
#include "BKE_subdiv_mesh.hh"
#include "BKE_subsurf.hh"
#include "UI_interface.hh"
#include "UI_resources.hh"
#include "RNA_access.hh"
#include "RNA_prototypes.hh"
#include "WM_types.hh"
#include "DEG_depsgraph_query.hh"
#include "MOD_ui_common.hh"

Go to the source code of this file.

Classes

struct  MultiresRuntimeData
 

Functions

static void init_data (ModifierData *md)
 
static void required_data_mask (ModifierData *md, CustomData_MeshMasks *r_cddata_masks)
 
static void copy_data (const ModifierData *md_src, ModifierData *md_dst, const int flag)
 
static void free_runtime_data (void *runtime_data_v)
 
static void free_data (ModifierData *md)
 
static MultiresRuntimeDatamultires_ensure_runtime (MultiresModifierData *mmd)
 
static blender::bke::subdiv::Subdivsubdiv_descriptor_ensure (MultiresModifierData *mmd, const blender::bke::subdiv::Settings *subdiv_settings, const Mesh *mesh)
 
static Meshmultires_as_mesh (MultiresModifierData *mmd, const ModifierEvalContext *ctx, Mesh *mesh, blender::bke::subdiv::Subdiv *subdiv)
 
static void multires_ccg_settings_init (SubdivToCCGSettings *settings, const MultiresModifierData *mmd, const ModifierEvalContext *ctx, Mesh *mesh)
 
static Meshmultires_as_ccg (MultiresModifierData *mmd, const ModifierEvalContext *ctx, Mesh *mesh, blender::bke::subdiv::Subdiv *subdiv)
 
static Meshmodify_mesh (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
 
static void deform_matrices (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh, blender::MutableSpan< blender::float3 > positions, blender::MutableSpan< blender::float3x3 >)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void subdivisions_panel_draw (const bContext *, Panel *panel)
 
static void shape_panel_draw (const bContext *, Panel *panel)
 
static void generate_panel_draw (const bContext *, Panel *panel)
 
static void advanced_panel_draw (const bContext *, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 

Variables

ModifierTypeInfo modifierType_Multires
 

Function Documentation

◆ advanced_panel_draw()

static void advanced_panel_draw ( const bContext * ,
Panel * panel )
static

◆ copy_data()

static void copy_data ( const ModifierData * md_src,
ModifierData * md_dst,
const int flag )
static

Definition at line 71 of file MOD_multires.cc.

References BKE_modifier_copydata_generic(), and flag.

◆ deform_matrices()

◆ free_data()

static void free_data ( ModifierData * md)
static

◆ free_runtime_data()

static void free_runtime_data ( void * runtime_data_v)
static

Definition at line 76 of file MOD_multires.cc.

References blender::bke::subdiv::free(), MEM_freeN(), and MultiresRuntimeData::subdiv.

Referenced by free_data().

◆ generate_panel_draw()

◆ init_data()

◆ modify_mesh()

◆ multires_as_ccg()

◆ multires_as_mesh()

◆ multires_ccg_settings_init()

◆ multires_ensure_runtime()

static MultiresRuntimeData * multires_ensure_runtime ( MultiresModifierData * mmd)
static

Definition at line 94 of file MOD_multires.cc.

References MEM_callocN, MultiresModifierData::modifier, and ModifierData::runtime.

Referenced by deform_matrices(), and modify_mesh().

◆ panel_draw()

◆ panel_register()

◆ required_data_mask()

static void required_data_mask ( ModifierData * md,
CustomData_MeshMasks * r_cddata_masks )
static

◆ shape_panel_draw()

static void shape_panel_draw ( const bContext * ,
Panel * panel )
static

◆ subdiv_descriptor_ensure()

static blender::bke::subdiv::Subdiv * subdiv_descriptor_ensure ( MultiresModifierData * mmd,
const blender::bke::subdiv::Settings * subdiv_settings,
const Mesh * mesh )
static

◆ subdivisions_panel_draw()

static void subdivisions_panel_draw ( const bContext * ,
Panel * panel )
static

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 324 of file MOD_multires.cc.

References PointerRNA::data, IFACE_, Panel::layout, modifier_panel_get_property_pointers(), MULTIRES_SUBDIVIDE_CATMULL_CLARK, MULTIRES_SUBDIVIDE_LINEAR, MULTIRES_SUBDIVIDE_SIMPLE, OB_MODE_EDIT, ptr, RNA_enum_get(), RNA_enum_set(), RNA_string_set(), UI_ITEM_NONE, uiItemFullO(), uiItemO(), uiItemS(), uiLayoutRow(), uiLayoutSetEnabled(), and WM_OP_EXEC_DEFAULT.

Referenced by panel_register().

Variable Documentation

◆ modifierType_Multires

ModifierTypeInfo modifierType_Multires

Definition at line 466 of file MOD_multires.cc.