Blender V4.3
MOD_simpledeform.cc File Reference
#include "BLI_math_matrix.h"
#include "BLI_math_vector.h"
#include "BLI_task.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "DNA_defaults.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
#include "BKE_deform.hh"
#include "BKE_lib_query.hh"
#include "BKE_modifier.hh"
#include "UI_interface.hh"
#include "UI_resources.hh"
#include "RNA_access.hh"
#include "RNA_prototypes.hh"
#include "MOD_ui_common.hh"
#include "MOD_util.hh"

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, const float dcut[3], float r_co[3])
 
static void simpleDeform_stretch (const float factor, const int, const float dcut[3], float r_co[3])
 
static void simpleDeform_twist (const float factor, const int, 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)
 
static void SimpleDeformModifier_do (SimpleDeformModifierData *smd, const ModifierEvalContext *, Object *ob, Mesh *mesh, float(*vertexCos)[3], int verts_num)
 
static void init_data (ModifierData *md)
 
static void required_data_mask (ModifierData *md, CustomData_MeshMasks *r_cddata_masks)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static void deform_verts (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh, blender::MutableSpan< blender::float3 > positions)
 
static void panel_draw (const bContext *, Panel *panel)
 
static void restrictions_panel_draw (const bContext *, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 

Variables

static const uint axis_map_table [3][3]
 
ModifierTypeInfo modifierType_SimpleDeform
 

Macro Definition Documentation

◆ BEND_EPS

#define BEND_EPS   0.000001f

Definition at line 32 of file MOD_simpledeform.cc.

Referenced by simpleDeform_bend(), and SimpleDeformModifier_do().

Function Documentation

◆ axis_limit()

static void axis_limit ( const int axis,
const float limits[2],
float co[3],
float dcut[3] )
static

Clamps/Limits the given coordinate to: limits[0] <= co[axis] <= limits[1] The amount of clamp is saved on dcut.

Definition at line 76 of file MOD_simpledeform.cc.

Referenced by simple_helper(), and viewrotate_apply_snap().

◆ copy_v3_v3_map()

BLI_INLINE void copy_v3_v3_map ( float a[3],
const float b[3],
const uint map[3] )

Definition at line 58 of file MOD_simpledeform.cc.

References b.

Referenced by simple_helper().

◆ copy_v3_v3_unmap()

BLI_INLINE void copy_v3_v3_unmap ( float a[3],
const float b[3],
const uint map[3] )

Definition at line 65 of file MOD_simpledeform.cc.

References b.

Referenced by simple_helper().

◆ deform_verts()

static void deform_verts ( ModifierData * md,
const ModifierEvalContext * ctx,
Mesh * mesh,
blender::MutableSpan< blender::float3 > positions )
static

Definition at line 434 of file MOD_simpledeform.cc.

References ModifierEvalContext::object, and SimpleDeformModifier_do().

◆ foreach_ID_link()

static void foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

Definition at line 418 of file MOD_simpledeform.cc.

References IDWALK_CB_NOP, and SimpleDeformModifierData::origin.

◆ init_data()

static void init_data ( ModifierData * md)
static

◆ panel_draw()

◆ panel_register()

static void panel_register ( ARegionType * region_type)
static

◆ required_data_mask()

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

◆ restrictions_panel_draw()

◆ simple_helper()

◆ simpleDeform_bend()

static void simpleDeform_bend ( const float factor,
const int axis,
const float dcut[3],
float r_co[3] )
static

Definition at line 141 of file MOD_simpledeform.cc.

References ATTR_FALLTHROUGH, BEND_EPS, BLI_assert, cosf, fabsf, sinf, x, y, and z().

Referenced by simple_helper().

◆ simpleDeform_stretch()

static void simpleDeform_stretch ( const float factor,
const int ,
const float dcut[3],
float r_co[3] )
static

Definition at line 105 of file MOD_simpledeform.cc.

References add_v3_v3(), and z().

Referenced by simple_helper().

◆ simpleDeform_taper()

static void simpleDeform_taper ( const float factor,
const int ,
const float dcut[3],
float r_co[3] )
static

Definition at line 90 of file MOD_simpledeform.cc.

References add_v3_v3(), and z().

Referenced by simple_helper().

◆ simpleDeform_twist()

static void simpleDeform_twist ( const float factor,
const int ,
const float * dcut,
float r_co[3] )
static

Definition at line 122 of file MOD_simpledeform.cc.

References add_v3_v3(), cosf, sinf, and z().

Referenced by simple_helper().

◆ SimpleDeformModifier_do()

◆ update_depsgraph()

Variable Documentation

◆ axis_map_table

const uint axis_map_table[3][3]
static
Initial value:
= {
{1, 2, 0},
{2, 0, 1},
{0, 1, 2},
}

Definition at line 52 of file MOD_simpledeform.cc.

Referenced by simple_helper().

◆ modifierType_SimpleDeform

ModifierTypeInfo modifierType_SimpleDeform

Definition at line 521 of file MOD_simpledeform.cc.