|
Blender
V2.93
|
#include "BLI_utildefines.h"#include "BLI_math.h"#include "BLI_simd.h"#include "BLI_task.h"#include "BLT_translation.h"#include "DNA_defaults.h"#include "DNA_mesh_types.h"#include "DNA_meshdata_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_screen_types.h"#include "BKE_context.h"#include "BKE_deform.h"#include "BKE_editmesh.h"#include "BKE_lib_id.h"#include "BKE_lib_query.h"#include "BKE_mesh.h"#include "BKE_mesh_runtime.h"#include "BKE_mesh_wrapper.h"#include "BKE_modifier.h"#include "BKE_screen.h"#include "UI_interface.h"#include "UI_resources.h"#include "BLO_read_write.h"#include "RNA_access.h"#include "MEM_guardedalloc.h"#include "DEG_depsgraph.h"#include "DEG_depsgraph_query.h"#include "MOD_ui_common.h"#include "MOD_util.h"Go to the source code of this file.
Classes | |
| struct | MeshdeformUserdata |
Macros | |
| #define | MESHDEFORM_MIN_INFLUENCE 0.00001f |
Typedefs | |
| typedef struct MeshdeformUserdata | MeshdeformUserdata |
Functions | |
| static void | initData (ModifierData *md) |
| static void | freeData (ModifierData *md) |
| static void | copyData (const ModifierData *md, ModifierData *target, const int flag) |
| static void | requiredDataMask (Object *UNUSED(ob), ModifierData *md, CustomData_MeshMasks *r_cddata_masks) |
| static bool | isDisabled (const struct Scene *UNUSED(scene), ModifierData *md, bool UNUSED(useRenderParams)) |
| static void | foreachIDLink (ModifierData *md, Object *ob, IDWalkFunc walk, void *userData) |
| static void | updateDepsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx) |
| static float | meshdeform_dynamic_bind (MeshDeformModifierData *mmd, float(*dco)[3], float vec[3]) |
| static void | meshdeform_vert_task (void *__restrict userdata, const int iter, const TaskParallelTLS *__restrict UNUSED(tls)) |
| static void | meshdeformModifier_do (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh, float(*vertexCos)[3], int numVerts) |
| static void | deformVerts (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh, float(*vertexCos)[3], int numVerts) |
| static void | deformVertsEM (ModifierData *md, const ModifierEvalContext *ctx, struct BMEditMesh *editData, Mesh *mesh, float(*vertexCos)[3], int numVerts) |
| void | BKE_modifier_mdef_compact_influences (ModifierData *md) |
| static void | panel_draw (const bContext *UNUSED(C), Panel *panel) |
| static void | panelRegister (ARegionType *region_type) |
| static void | blendWrite (BlendWriter *writer, const ModifierData *md) |
| static void | blendRead (BlendDataReader *reader, ModifierData *md) |
Variables | |
| ModifierTypeInfo | modifierType_MeshDeform |
| #define MESHDEFORM_MIN_INFLUENCE 0.00001f |
Definition at line 496 of file MOD_meshdeform.c.
| typedef struct MeshdeformUserdata MeshdeformUserdata |
| void BKE_modifier_mdef_compact_influences | ( | ModifierData * | md | ) |
Definition at line 498 of file MOD_meshdeform.c.
References Freestyle::a, MeshDeformModifierData::bindinfluences, MeshDeformModifierData::bindoffsets, MeshDeformModifierData::bindweights, MEM_calloc_arrayN, MEM_freeN, MESHDEFORM_MIN_INFLUENCE, NULL, MeshDeformModifierData::totcagevert, MeshDeformModifierData::totinfluence, MeshDeformModifierData::totvert, MDefInfluence::vertex, and MDefInfluence::weight.
Referenced by do_version_mdef_250(), and ED_mesh_deform_bind_callback().
|
static |
Definition at line 619 of file MOD_meshdeform.c.
References MeshDeformModifierData::bindcagecos, MeshDeformModifierData::bindcos, MeshDeformModifierData::bindinfluences, MeshDeformModifierData::bindoffsets, MeshDeformModifierData::bindweights, BLO_read_data_address, BLO_read_float3_array(), BLO_read_float_array(), BLO_read_int32_array(), MeshDeformModifierData::dyngrid, MeshDeformModifierData::dyninfluences, MeshDeformModifierData::dynverts, MeshDeformModifierData::totcagevert, and MeshDeformModifierData::totvert.
|
static |
Definition at line 599 of file MOD_meshdeform.c.
References MeshDeformModifierData::bindcagecos, MeshDeformModifierData::bindinfluences, MeshDeformModifierData::bindoffsets, BLI_assert, BLO_write_float3_array(), BLO_write_int32_array(), BLO_write_struct_array, MeshDeformModifierData::dyngrid, MeshDeformModifierData::dyngridsize, MeshDeformModifierData::dyninfluences, MeshDeformModifierData::dynverts, NULL, size(), MeshDeformModifierData::totcagevert, MeshDeformModifierData::totinfluence, and MeshDeformModifierData::totvert.
|
static |
Definition at line 104 of file MOD_meshdeform.c.
References MeshDeformModifierData::bindcagecos, MeshDeformModifierData::bindcos, MeshDeformModifierData::bindinfluences, MeshDeformModifierData::bindoffsets, MeshDeformModifierData::bindweights, BKE_modifier_copydata_generic(), MeshDeformModifierData::dyngrid, MeshDeformModifierData::dyninfluences, MeshDeformModifierData::dynverts, and MEM_dupallocN.
|
static |
Definition at line 457 of file MOD_meshdeform.c.
References BKE_id_free(), ELEM, mesh, meshdeformModifier_do(), MOD_deform_mesh_eval_get(), MOD_previous_vcos_store(), NULL, and ModifierEvalContext::object.
|
static |
Definition at line 474 of file MOD_meshdeform.c.
References BKE_id_free(), BKE_mesh_wrapper_ensure_mdata(), ELEM, mesh, meshdeformModifier_do(), MOD_deform_mesh_eval_get(), NULL, and ModifierEvalContext::object.
|
static |
Definition at line 163 of file MOD_meshdeform.c.
References IDWALK_CB_NOP, and MeshDeformModifierData::object.
|
static |
Definition at line 74 of file MOD_meshdeform.c.
References MeshDeformModifierData::bindcagecos, MeshDeformModifierData::bindcos, MeshDeformModifierData::bindinfluences, MeshDeformModifierData::bindoffsets, MeshDeformModifierData::bindweights, MeshDeformModifierData::dyngrid, MeshDeformModifierData::dyninfluences, MeshDeformModifierData::dynverts, and MEM_freeN.
|
static |
Definition at line 65 of file MOD_meshdeform.c.
References BLI_assert, DNA_struct_default_get, MEMCMP_STRUCT_AFTER_IS_ZERO, and MEMCPY_STRUCT_AFTER.
|
static |
Definition at line 149 of file MOD_meshdeform.c.
References OB_MESH, MeshDeformModifierData::object, and Object::type.
|
static |
Definition at line 181 of file MOD_meshdeform.c.
References Freestyle::a, CLAMP, copy_v3_v3(), MeshDeformModifierData::dyncellmin, MeshDeformModifierData::dyncellwidth, MeshDeformModifierData::dyngrid, MeshDeformModifierData::dyngridsize, MeshDeformModifierData::dyninfluences, MDefCell::offset, size(), MDefCell::totinfluence, MDefInfluence::vertex, MDefInfluence::weight, x, y, and z.
Referenced by meshdeform_vert_task().
|
static |
Definition at line 280 of file MOD_meshdeform.c.
References Freestyle::a, add_v3_v3(), MeshDeformModifierData::bindinfluences, MeshDeformModifierData::bindoffsets, BKE_defvert_find_weight(), data, MeshDeformModifierData::dynverts, MeshDeformModifierData::flag, float(), madd_v3_v3fl(), meshdeform_dynamic_bind(), MOD_MDEF_DYNAMIC_BIND, MOD_MDEF_INVERT_VGROUP, mul_m3_v3(), mul_v3_fl(), mul_v3_m4v3(), and zero_v3().
Referenced by meshdeformModifier_do().
|
static |
Definition at line 338 of file MOD_meshdeform.c.
References Freestyle::a, MeshDeformModifierData::bindcagecos, MeshDeformModifierData::bindfunc, MeshDeformModifierData::bindmat, BKE_mesh_wrapper_vert_coords_copy(), BKE_mesh_wrapper_vert_len(), BKE_modifier_get_evaluated_mesh_from_evaluated_object(), BKE_modifier_set_error(), BLI_parallel_range_settings_defaults(), BLI_task_parallel_range(), copy_m3_m4(), data, MeshDeformModifierData::defgrp_name, DEG_is_active(), ModifierEvalContext::depsgraph, float(), invert_m4_m4(), MEM_calloc_arrayN, MEM_SAFE_FREE, mesh, meshdeform_vert_task(), TaskParallelSettings::min_iter_per_thread, MOD_get_vgroup(), mul_m4_m4m4(), mul_v3_m4v3(), NULL, ModifierEvalContext::object, MeshDeformModifierData::object, Object::obmat, sub_v3_v3v3(), MeshDeformModifierData::totcagevert, MeshDeformModifierData::totvert, and zero_v3().
Referenced by deformVerts(), and deformVertsEM().
Definition at line 563 of file MOD_meshdeform.c.
References col, IFACE_, Panel::layout, modifier_panel_end(), modifier_panel_get_property_pointers(), modifier_vgroup_ui(), NULL, ptr, RNA_boolean_get(), uiItemO(), uiItemR(), uiLayoutColumn(), uiLayoutSetEnabled(), and uiLayoutSetPropSep().
Referenced by panelRegister().
|
static |
Definition at line 594 of file MOD_meshdeform.c.
References eModifierType_MeshDeform, modifier_panel_register(), and panel_draw().
|
static |
Definition at line 137 of file MOD_meshdeform.c.
References CD_MASK_MDEFORMVERT, MeshDeformModifierData::defgrp_name, and CustomData_MeshMasks::vmask.
|
static |
Definition at line 170 of file MOD_meshdeform.c.
References DEG_add_modifier_to_transform_relation(), DEG_add_object_relation(), DEG_OB_COMP_GEOMETRY, DEG_OB_COMP_TRANSFORM, ModifierUpdateDepsgraphContext::node, NULL, and MeshDeformModifierData::object.
| ModifierTypeInfo modifierType_MeshDeform |
Definition at line 639 of file MOD_meshdeform.c.