Blender
V3.3
|
#include "BLI_math.h"
#include "BLI_task.h"
#include "BLI_utildefines.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_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_wrapper.h"
#include "BKE_modifier.h"
#include "BKE_screen.h"
#include "UI_interface.h"
#include "UI_resources.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "DEG_depsgraph_query.h"
#include "MOD_ui_common.h"
#include "MOD_util.h"
#include "bmesh.h"
Go to the source code of this file.
Classes | |
struct | DeformUserData |
Macros | |
#define | BEND_EPS 0.000001f |
Functions | |
BLI_INLINE void | copy_v3_v3_map (float a[3], const float b[3], const uint map[3]) |
BLI_INLINE void | copy_v3_v3_unmap (float a[3], const float b[3], const uint map[3]) |
static void | axis_limit (const int axis, const float limits[2], float co[3], float dcut[3]) |
static void | simpleDeform_taper (const float factor, const int UNUSED(axis), const float dcut[3], float r_co[3]) |
static void | simpleDeform_stretch (const float factor, const int UNUSED(axis), const float dcut[3], float r_co[3]) |
static void | simpleDeform_twist (const float factor, const int UNUSED(axis), const float *dcut, float r_co[3]) |
static void | simpleDeform_bend (const float factor, const int axis, const float dcut[3], float r_co[3]) |
static void | simple_helper (void *__restrict userdata, const int iter, const TaskParallelTLS *__restrict UNUSED(tls)) |
static void | SimpleDeformModifier_do (SimpleDeformModifierData *smd, const ModifierEvalContext *UNUSED(ctx), struct Object *ob, struct Mesh *mesh, float(*vertexCos)[3], int verts_num) |
static void | initData (ModifierData *md) |
static void | requiredDataMask (Object *UNUSED(ob), ModifierData *md, CustomData_MeshMasks *r_cddata_masks) |
static void | foreachIDLink (ModifierData *md, Object *ob, IDWalkFunc walk, void *userData) |
static void | updateDepsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx) |
static void | deformVerts (ModifierData *md, const ModifierEvalContext *ctx, struct Mesh *mesh, float(*vertexCos)[3], int verts_num) |
static void | deformVertsEM (ModifierData *md, const ModifierEvalContext *ctx, struct BMEditMesh *editData, struct Mesh *mesh, float(*vertexCos)[3], int verts_num) |
static void | panel_draw (const bContext *UNUSED(C), Panel *panel) |
static void | restrictions_panel_draw (const bContext *UNUSED(C), Panel *panel) |
static void | panelRegister (ARegionType *region_type) |
Variables | |
static const uint | axis_map_table [3][3] |
ModifierTypeInfo | modifierType_SimpleDeform |
#define BEND_EPS 0.000001f |
Definition at line 42 of file MOD_simpledeform.c.
Definition at line 85 of file MOD_simpledeform.c.
Referenced by viewrotate_apply_snap().
BLI_INLINE void copy_v3_v3_map | ( | float | a[3], |
const float | b[3], | ||
const uint | map[3] | ||
) |
Definition at line 69 of file MOD_simpledeform.c.
References Freestyle::a, usdtokens::b(), and map.
BLI_INLINE void copy_v3_v3_unmap | ( | float | a[3], |
const float | b[3], | ||
const uint | map[3] | ||
) |
Definition at line 76 of file MOD_simpledeform.c.
References Freestyle::a, usdtokens::b(), and map.
|
static |
Definition at line 445 of file MOD_simpledeform.c.
References BKE_id_free(), ELEM, mesh, MOD_deform_mesh_eval_get(), NULL, OB_MESH, ModifierEvalContext::object, SimpleDeformModifier_do(), Object::type, DeformUserData::vertexCos, and SimpleDeformModifierData::vgroup_name.
|
static |
Definition at line 466 of file MOD_simpledeform.c.
References BKE_id_free(), BKE_mesh_wrapper_ensure_mdata(), ELEM, mesh, MOD_deform_mesh_eval_get(), NULL, OB_MESH, ModifierEvalContext::object, SimpleDeformModifier_do(), Object::type, DeformUserData::vertexCos, and SimpleDeformModifierData::vgroup_name.
|
static |
Definition at line 429 of file MOD_simpledeform.c.
References IDWALK_CB_NOP, and SimpleDeformModifierData::origin.
|
static |
Definition at line 408 of file MOD_simpledeform.c.
References BLI_assert, DNA_struct_default_get, MEMCMP_STRUCT_AFTER_IS_ZERO, and MEMCPY_STRUCT_AFTER.
Definition at line 494 of file MOD_simpledeform.c.
References ELEM, Panel::layout, MOD_SIMPLEDEFORM_MODE_STRETCH, MOD_SIMPLEDEFORM_MODE_TAPER, modifier_panel_end(), modifier_panel_get_property_pointers(), NULL, ptr, RNA_enum_get(), UI_ITEM_R_EXPAND, uiItemR(), uiLayoutRow(), and uiLayoutSetPropSep().
Referenced by panelRegister().
|
static |
Definition at line 558 of file MOD_simpledeform.c.
References eModifierType_SimpleDeform, modifier_panel_register(), modifier_subpanel_register(), NULL, panel_draw(), and restrictions_panel_draw().
|
static |
Definition at line 417 of file MOD_simpledeform.c.
References CD_MASK_MDEFORMVERT, SimpleDeformModifierData::vgroup_name, and CustomData_MeshMasks::vmask.
Definition at line 522 of file MOD_simpledeform.c.
References DeformUserData::deform_axis, ELEM, IFACE_, Panel::layout, MOD_SIMPLEDEFORM_MODE_STRETCH, MOD_SIMPLEDEFORM_MODE_TAPER, MOD_SIMPLEDEFORM_MODE_TWIST, modifier_panel_get_property_pointers(), modifier_vgroup_ui(), NULL, ptr, RNA_enum_get(), UI_ITEM_R_FORCE_BLANK_DECORATE, UI_ITEM_R_SLIDER, UI_ITEM_R_TOGGLE, uiItemR(), uiLayoutRowWithHeading(), and uiLayoutSetPropSep().
Referenced by panelRegister().
|
static |
Definition at line 207 of file MOD_simpledeform.c.
References axis_map_table, BKE_defvert_array_find_weight_safe(), DeformUserData::deform_axis, DeformUserData::dvert, MOD_SIMPLEDEFORM_MODE_BEND, DeformUserData::mode, DeformUserData::vgroup, and DeformUserData::weight.
Referenced by SimpleDeformModifier_do().
|
static |
Definition at line 150 of file MOD_simpledeform.c.
References ATTR_FALLTHROUGH, BEND_EPS, BLI_assert, cosf, fabsf, sinf, x, y, and z.
|
static |
Definition at line 114 of file MOD_simpledeform.c.
References add_v3_v3(), x, y, and z.
|
static |
Definition at line 99 of file MOD_simpledeform.c.
References add_v3_v3(), x, y, and z.
|
static |
Definition at line 131 of file MOD_simpledeform.c.
|
static |
Definition at line 286 of file MOD_simpledeform.c.
References ATTR_FALLTHROUGH, SimpleDeformModifierData::axis, BEND_EPS, BLI_parallel_range_settings_defaults(), BLI_space_transform_apply(), BLI_SPACE_TRANSFORM_SETUP, BLI_task_parallel_range(), copy_v3_v3(), SimpleDeformModifierData::deform_axis, DeformUserData::deform_axis, DeformUserData::dvert, fabsf, SimpleDeformModifierData::factor, SimpleDeformModifierData::flag, DeformUserData::invert_vgroup, SimpleDeformModifierData::limit, DeformUserData::limit_axis, DeformUserData::lock_axis, max_ff(), mesh, min_ff(), MOD_get_vgroup(), MOD_SIMPLEDEFORM_FLAG_INVERT_VGROUP, MOD_SIMPLEDEFORM_LOCK_AXIS_X, MOD_SIMPLEDEFORM_LOCK_AXIS_Y, MOD_SIMPLEDEFORM_LOCK_AXIS_Z, MOD_SIMPLEDEFORM_MODE_BEND, SimpleDeformModifierData::mode, DeformUserData::mode, NULL, SimpleDeformModifierData::origin, simple_helper(), DeformUserData::smd_factor, DeformUserData::smd_limit, DeformUserData::transf, DeformUserData::vertexCos, DeformUserData::vgroup, and SimpleDeformModifierData::vgroup_name.
Referenced by deformVerts(), and deformVertsEM().
|
static |
Definition at line 435 of file MOD_simpledeform.c.
References DEG_add_modifier_to_transform_relation(), DEG_add_object_relation(), DEG_OB_COMP_TRANSFORM, ModifierUpdateDepsgraphContext::node, NULL, and SimpleDeformModifierData::origin.
|
static |
Definition at line 63 of file MOD_simpledeform.c.
Referenced by simple_helper().
ModifierTypeInfo modifierType_SimpleDeform |
Definition at line 566 of file MOD_simpledeform.c.