Blender  V3.3
Classes | Macros | Functions | Variables
MOD_simpledeform.c File Reference
#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
 

Macro Definition Documentation

◆ BEND_EPS

#define BEND_EPS   0.000001f

Definition at line 42 of file MOD_simpledeform.c.

Function Documentation

◆ axis_limit()

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

Definition at line 85 of file MOD_simpledeform.c.

Referenced by 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 69 of file MOD_simpledeform.c.

References Freestyle::a, usdtokens::b(), and map.

◆ 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 76 of file MOD_simpledeform.c.

References Freestyle::a, usdtokens::b(), and map.

◆ deformVerts()

static void deformVerts ( ModifierData md,
const ModifierEvalContext ctx,
struct Mesh mesh,
float(*)  vertexCos[3],
int  verts_num 
)
static

◆ deformVertsEM()

static void deformVertsEM ( ModifierData md,
const ModifierEvalContext ctx,
struct BMEditMesh editData,
struct Mesh mesh,
float(*)  vertexCos[3],
int  verts_num 
)
static

◆ foreachIDLink()

static void foreachIDLink ( ModifierData md,
Object ob,
IDWalkFunc  walk,
void userData 
)
static

Definition at line 429 of file MOD_simpledeform.c.

References IDWALK_CB_NOP, and SimpleDeformModifierData::origin.

◆ initData()

static void initData ( ModifierData md)
static

◆ panel_draw()

static void panel_draw ( const bContext UNUSEDC,
Panel panel 
)
static

◆ panelRegister()

static void panelRegister ( ARegionType region_type)
static

◆ requiredDataMask()

static void requiredDataMask ( Object UNUSEDob,
ModifierData md,
CustomData_MeshMasks r_cddata_masks 
)
static

◆ restrictions_panel_draw()

static void restrictions_panel_draw ( const bContext UNUSEDC,
Panel panel 
)
static

◆ simple_helper()

static void simple_helper ( void *__restrict  userdata,
const int  iter,
const TaskParallelTLS *__restrict   UNUSEDtls 
)
static

◆ simpleDeform_bend()

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

Definition at line 150 of file MOD_simpledeform.c.

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

◆ simpleDeform_stretch()

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

Definition at line 114 of file MOD_simpledeform.c.

References add_v3_v3(), x, y, and z.

◆ simpleDeform_taper()

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

Definition at line 99 of file MOD_simpledeform.c.

References add_v3_v3(), x, y, and z.

◆ simpleDeform_twist()

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

Definition at line 131 of file MOD_simpledeform.c.

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

◆ SimpleDeformModifier_do()

static void SimpleDeformModifier_do ( SimpleDeformModifierData smd,
const ModifierEvalContext UNUSEDctx,
struct Object ob,
struct Mesh mesh,
float(*)  vertexCos[3],
int  verts_num 
)
static

◆ updateDepsgraph()

static void updateDepsgraph ( ModifierData md,
const ModifierUpdateDepsgraphContext ctx 
)
static

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 63 of file MOD_simpledeform.c.

Referenced by simple_helper().

◆ modifierType_SimpleDeform

ModifierTypeInfo modifierType_SimpleDeform

Definition at line 566 of file MOD_simpledeform.c.