Blender V2.61 - r43446
Classes | Typedefs | Enumerations | Functions

sculpt.c File Reference

#include "MEM_guardedalloc.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
#include "BLI_dynstr.h"
#include "BLI_ghash.h"
#include "BLI_pbvh.h"
#include "BLI_threads.h"
#include "BLI_editVert.h"
#include "BLI_rand.h"
#include "DNA_meshdata_types.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_brush_types.h"
#include "BKE_brush.h"
#include "BKE_cdderivedmesh.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
#include "BKE_key.h"
#include "BKE_library.h"
#include "BKE_mesh.h"
#include "BKE_modifier.h"
#include "BKE_multires.h"
#include "BKE_paint.h"
#include "BKE_report.h"
#include "BKE_lattice.h"
#include "BKE_node.h"
#include "BIF_glutil.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_sculpt.h"
#include "ED_screen.h"
#include "ED_view3d.h"
#include "ED_util.h"
#include "paint_intern.h"
#include "sculpt_intern.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "RE_render_ext.h"
#include "GPU_buffers.h"
#include <math.h>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Classes

struct  StrokeCache
struct  SculptBrushTest
struct  SculptSearchSphereData
struct  SculptRaycastData

Typedefs

typedef enum StrokeFlags StrokeFlags
typedef struct StrokeCache StrokeCache
typedef struct SculptBrushTest SculptBrushTest

Enumerations

enum  StrokeFlags { CLIP_X = 1, CLIP_Y = 2, CLIP_Z = 4 }

Functions

void ED_sculpt_force_update (bContext *C)
struct MultiresModifierDatasculpt_multires_active (Scene *scene, Object *ob)
static int sculpt_has_active_modifiers (Scene *scene, Object *ob)
static int sculpt_modifiers_active (Scene *scene, Sculpt *sd, Object *ob)
static int sculpt_get_redraw_rect (ARegion *ar, RegionView3D *rv3d, Object *ob, rcti *rect)
void sculpt_get_redraw_planes (float planes[4][4], ARegion *ar, RegionView3D *rv3d, Object *ob)
static void sculpt_brush_test_init (SculptSession *ss, SculptBrushTest *test)
static int sculpt_brush_test (SculptBrushTest *test, float co[3])
static int sculpt_brush_test_sq (SculptBrushTest *test, float co[3])
static int sculpt_brush_test_fast (SculptBrushTest *test, float co[3])
static int sculpt_brush_test_cube (SculptBrushTest *test, float co[3], float local[4][4])
static float frontface (Brush *brush, const float sculpt_normal[3], const short no[3], const float fno[3])
static float overlapped_curve (Brush *br, float x)
static float integrate_overlap (Brush *br)
static void flip_coord (float out[3], float in[3], const char symm)
static float calc_overlap (StrokeCache *cache, const char symm, const char axis, const float angle)
static float calc_radial_symmetry_feather (Sculpt *sd, StrokeCache *cache, const char symm, const char axis)
static float calc_symmetry_feather (Sculpt *sd, StrokeCache *cache)
static float brush_strength (Sculpt *sd, StrokeCache *cache, float feather)
static float tex_strength (SculptSession *ss, Brush *br, float point[3], const float len, const float sculpt_normal[3], const short vno[3], const float fno[3])
static int sculpt_search_sphere_cb (PBVHNode *node, void *data_v)
static void sculpt_clip (Sculpt *sd, SculptSession *ss, float *co, const float val[3])
static void add_norm_if (float view_vec[3], float out[3], float out_flip[3], float fno[3])
static void calc_area_normal (Sculpt *sd, Object *ob, float an[3], PBVHNode **nodes, int totnode)
static void calc_sculpt_normal (Sculpt *sd, Object *ob, float an[3], PBVHNode **nodes, int totnode)
static void neighbor_average (SculptSession *ss, float avg[3], const unsigned vert)
static void do_mesh_smooth_brush (Sculpt *sd, SculptSession *ss, PBVHNode *node, float bstrength)
static void do_multires_smooth_brush (Sculpt *sd, SculptSession *ss, PBVHNode *node, float bstrength)
static void smooth (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode, float bstrength)
static void do_smooth_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_draw_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_crease_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_pinch_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_grab_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_nudge_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_snake_hook_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_thumb_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_rotate_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_layer_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_inflate_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void calc_flatten_center (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode, float fc[3])
static void calc_area_normal_and_flatten_center (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode, float an[3], float fc[3])
static void calc_sculpt_plane (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode, float an[3], float fc[3])
static void point_plane_project (float intr[3], float co[3], float plane_normal[3], float plane_center[3])
static int plane_trim (StrokeCache *cache, Brush *brush, float val[3])
static int plane_point_side_flip (float co[3], float plane_normal[3], float plane_center[3], int flip)
static int plane_point_side (float co[3], float plane_normal[3], float plane_center[3])
static float get_offset (Sculpt *sd, SculptSession *ss)
static void do_flatten_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_clay_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_clay_tubes_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_fill_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
static void do_scrape_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
void sculpt_vertcos_to_key (Object *ob, KeyBlock *kb, float(*vertCos)[3])
static void do_brush_action (Sculpt *sd, Object *ob, Brush *brush)
static void sculpt_flush_pbvhvert_deform (Object *ob, PBVHVertexIter *vd)
static void sculpt_combine_proxies (Sculpt *sd, Object *ob)
static void sculpt_update_keyblock (Object *ob)
static void sculpt_flush_stroke_deform (Sculpt *sd, Object *ob)
static void calc_brushdata_symm (Sculpt *sd, StrokeCache *cache, const char symm, const char axis, const float angle, const float UNUSED(feather))
static void do_radial_symmetry (Sculpt *sd, Object *ob, Brush *brush, const char symm, const int axis, const float feather)
static void sculpt_fix_noise_tear (Sculpt *sd, Object *ob)
static void do_symmetrical_brush_actions (Sculpt *sd, Object *ob)
static void sculpt_update_tex (const Scene *scene, Sculpt *sd, SculptSession *ss)
void sculpt_update_mesh_elements (Scene *scene, Sculpt *sd, Object *ob, int need_fmap)
static int sculpt_mode_poll (bContext *C)
int sculpt_poll (bContext *C)
static const char * sculpt_tool_name (Sculpt *sd)
static void sculpt_cache_free (StrokeCache *cache)
static void sculpt_init_mirror_clipping (Object *ob, SculptSession *ss)
static void sculpt_update_cache_invariants (bContext *C, Sculpt *sd, SculptSession *ss, wmOperator *op, wmEvent *event)
static void sculpt_update_brush_delta (Sculpt *sd, Object *ob, Brush *brush)
static void sculpt_update_cache_variants (bContext *C, Sculpt *sd, Object *ob, struct PaintStroke *stroke, PointerRNA *ptr)
static void sculpt_stroke_modifiers_check (bContext *C, Object *ob)
static void sculpt_raycast_cb (PBVHNode *node, void *data_v, float *tmin)
int sculpt_stroke_get_location (bContext *C, struct PaintStroke *stroke, float out[3], float mouse[2])
static void sculpt_brush_init_tex (const Scene *scene, Sculpt *sd, SculptSession *ss)
static int sculpt_brush_stroke_init (bContext *C, wmOperator *op)
static void sculpt_restore_mesh (Sculpt *sd, SculptSession *ss)
static void sculpt_flush_update (bContext *C)
static int over_mesh (bContext *C, struct wmOperator *op, float x, float y)
static int sculpt_stroke_test_start (bContext *C, struct wmOperator *op, wmEvent *event)
static void sculpt_stroke_update_step (bContext *C, struct PaintStroke *stroke, PointerRNA *itemptr)
static void sculpt_brush_exit_tex (Sculpt *sd)
static void sculpt_stroke_done (bContext *C, struct PaintStroke *UNUSED(stroke))
static int sculpt_brush_stroke_invoke (bContext *C, wmOperator *op, wmEvent *event)
static int sculpt_brush_stroke_exec (bContext *C, wmOperator *op)
static int sculpt_brush_stroke_cancel (bContext *C, wmOperator *op)
static void SCULPT_OT_brush_stroke (wmOperatorType *ot)
static int sculpt_set_persistent_base (bContext *C, wmOperator *UNUSED(op))
static void SCULPT_OT_set_persistent_base (wmOperatorType *ot)
static void sculpt_init_session (Scene *scene, Object *ob)
static int sculpt_toggle_mode (bContext *C, wmOperator *UNUSED(op))
static void SCULPT_OT_sculptmode_toggle (wmOperatorType *ot)
void ED_operatortypes_sculpt (void)

Detailed Description

Definition in file sculpt.c.


Typedef Documentation

typedef struct StrokeCache StrokeCache
typedef enum StrokeFlags StrokeFlags

Enumeration Type Documentation

Enumerator:
CLIP_X 
CLIP_Y 
CLIP_Z 

Definition at line 174 of file sculpt.c.


Function Documentation

static void add_norm_if ( float  view_vec[3],
float  out[3],
float  out_flip[3],
float  fno[3] 
) [static]

Definition at line 780 of file sculpt.c.

References add_v3_v3(), and dot_v3v3().

Referenced by calc_area_normal(), and calc_area_normal_and_flatten_center().

static float brush_strength ( Sculpt sd,
StrokeCache cache,
float  feather 
) [static]
static void calc_area_normal ( Sculpt sd,
Object ob,
float  an[3],
PBVHNode **  nodes,
int  totnode 
) [static]
static void calc_area_normal_and_flatten_center ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode,
float  an[3],
float  fc[3] 
) [static]
static void calc_brushdata_symm ( Sculpt sd,
StrokeCache cache,
const char  symm,
const char  axis,
const float  angle,
const float   UNUSEDfeather 
) [static]
static void calc_flatten_center ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode,
float  fc[3] 
) [static]
static float calc_overlap ( StrokeCache cache,
const char  symm,
const char  axis,
const float  angle 
) [static]
static float calc_radial_symmetry_feather ( Sculpt sd,
StrokeCache cache,
const char  symm,
const char  axis 
) [static]

Definition at line 501 of file sculpt.c.

References angle(), calc_overlap(), i, M_PI, and Sculpt::radial_symm.

Referenced by calc_symmetry_feather().

static void calc_sculpt_normal ( Sculpt sd,
Object ob,
float  an[3],
PBVHNode **  nodes,
int  totnode 
) [static]
static void calc_sculpt_plane ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode,
float  an[3],
float  fc[3] 
) [static]
static float calc_symmetry_feather ( Sculpt sd,
StrokeCache cache 
) [static]
static void do_brush_action ( Sculpt sd,
Object ob,
Brush brush 
) [static]
static void do_clay_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_clay_tubes_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_crease_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_draw_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_fill_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_flatten_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_grab_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_inflate_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_layer_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_mesh_smooth_brush ( Sculpt sd,
SculptSession ss,
PBVHNode node,
float  bstrength 
) [static]
static void do_multires_smooth_brush ( Sculpt sd,
SculptSession ss,
PBVHNode node,
float  bstrength 
) [static]
static void do_nudge_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_pinch_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_radial_symmetry ( Sculpt sd,
Object ob,
Brush brush,
const char  symm,
const int  axis,
const float  feather 
) [static]
static void do_rotate_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_scrape_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_smooth_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]

Definition at line 1120 of file sculpt.c.

References StrokeCache::bstrength, SculptSession::cache, Object::sculpt, and smooth().

Referenced by do_brush_action().

static void do_snake_hook_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
static void do_symmetrical_brush_actions ( Sculpt sd,
Object ob 
) [static]
static void do_thumb_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
) [static]
void ED_operatortypes_sculpt ( void  )
void ED_sculpt_force_update ( bContext C)

Definition at line 95 of file sculpt.c.

References CTX_data_active_object(), Object::mode, multires_force_update(), and OB_MODE_SCULPT.

Referenced by WM_write_file().

static void flip_coord ( float  out[3],
float  in[3],
const char  symm 
) [static]
static float frontface ( Brush brush,
const float  sculpt_normal[3],
const short  no[3],
const float  fno[3] 
) [static]

Definition at line 370 of file sculpt.c.

References BRUSH_FRONTFACE, dot(), dot_v3v3(), Brush::flag, and normal_short_to_float_v3().

Referenced by tex_strength().

static float get_offset ( Sculpt sd,
SculptSession ss 
) [static]
static float integrate_overlap ( Brush br) [static]

Definition at line 443 of file sculpt.c.

References g, i, max, and overlapped_curve().

Referenced by brush_strength().

static void neighbor_average ( SculptSession ss,
float  avg[3],
const unsigned  vert 
) [static]
static int over_mesh ( bContext C,
struct wmOperator op,
float  x,
float  y 
) [static]
static float overlapped_curve ( Brush br,
float  x 
) [static]

Definition at line 421 of file sculpt.c.

References brush_curve_strength(), fabs(), i, Brush::spacing, and sum().

Referenced by integrate_overlap().

static int plane_point_side ( float  co[3],
float  plane_normal[3],
float  plane_center[3] 
) [static]

Definition at line 1883 of file sculpt.c.

References dot_v3v3(), and sub_v3_v3v3().

Referenced by do_fill_brush(), and do_scrape_brush().

static int plane_point_side_flip ( float  co[3],
float  plane_normal[3],
float  plane_center[3],
int  flip 
) [static]

Definition at line 1870 of file sculpt.c.

References simple_enum_gen::d, dot_v3v3(), and sub_v3_v3v3().

Referenced by do_clay_brush(), and do_clay_tubes_brush().

static int plane_trim ( StrokeCache cache,
Brush brush,
float  val[3] 
) [static]
static void point_plane_project ( float  intr[3],
float  co[3],
float  plane_normal[3],
float  plane_center[3] 
) [static]
static void sculpt_brush_exit_tex ( Sculpt sd) [static]
static void sculpt_brush_init_tex ( const Scene scene,
Sculpt sd,
SculptSession ss 
) [static]
static int sculpt_brush_stroke_cancel ( bContext C,
wmOperator op 
) [static]
static int sculpt_brush_stroke_exec ( bContext C,
wmOperator op 
) [static]
static int sculpt_brush_stroke_init ( bContext C,
wmOperator op 
) [static]
static int sculpt_brush_stroke_invoke ( bContext C,
wmOperator op,
wmEvent event 
) [static]
static int sculpt_brush_test ( SculptBrushTest test,
float  co[3] 
) [static]
static int sculpt_brush_test_cube ( SculptBrushTest test,
float  co[3],
float  local[4][4] 
) [static]

Definition at line 348 of file sculpt.c.

References SculptBrushTest::dist, fabs(), MAX3(), and mul_v3_m4v3().

Referenced by do_clay_tubes_brush().

static int sculpt_brush_test_fast ( SculptBrushTest test,
float  co[3] 
) [static]
static void sculpt_brush_test_init ( SculptSession ss,
SculptBrushTest test 
) [static]
static int sculpt_brush_test_sq ( SculptBrushTest test,
float  co[3] 
) [static]
static void sculpt_cache_free ( StrokeCache cache) [static]

Definition at line 2796 of file sculpt.c.

References StrokeCache::face_norms, and MEM_freeN().

Referenced by sculpt_brush_stroke_cancel(), and sculpt_stroke_done().

static void sculpt_clip ( Sculpt sd,
SculptSession ss,
float *  co,
const float  val[3] 
) [static]
static void sculpt_combine_proxies ( Sculpt sd,
Object ob 
) [static]
static void sculpt_fix_noise_tear ( Sculpt sd,
Object ob 
) [static]
static void sculpt_flush_pbvhvert_deform ( Object ob,
PBVHVertexIter vd 
) [static]
static void sculpt_flush_stroke_deform ( Sculpt sd,
Object ob 
) [static]
static void sculpt_flush_update ( bContext C) [static]
void sculpt_get_redraw_planes ( float  planes[4][4],
ARegion ar,
RegionView3D rv3d,
Object ob 
)
static int sculpt_get_redraw_rect ( ARegion ar,
RegionView3D rv3d,
Object ob,
rcti rect 
) [static]
static int sculpt_has_active_modifiers ( Scene scene,
Object ob 
) [static]
static void sculpt_init_mirror_clipping ( Object ob,
SculptSession ss 
) [static]
static void sculpt_init_session ( Scene scene,
Object ob 
) [static]
static int sculpt_mode_poll ( bContext C) [static]

Definition at line 2742 of file sculpt.c.

References CTX_data_active_object(), Object::mode, and OB_MODE_SCULPT.

Referenced by SCULPT_OT_set_persistent_base(), and sculpt_poll().

static int sculpt_modifiers_active ( Scene scene,
Sculpt sd,
Object ob 
) [static]
struct MultiresModifierData* sculpt_multires_active ( Scene scene,
Object ob 
) [read]
static void SCULPT_OT_brush_stroke ( wmOperatorType ot) [static]
static void SCULPT_OT_sculptmode_toggle ( wmOperatorType ot) [static]
static void SCULPT_OT_set_persistent_base ( wmOperatorType ot) [static]
int sculpt_poll ( bContext C)

Definition at line 2748 of file sculpt.c.

References paint_poll(), and sculpt_mode_poll().

Referenced by ED_keymap_paint(), SCULPT_OT_brush_stroke(), and sculpt_toggle_mode().

static void sculpt_raycast_cb ( PBVHNode node,
void *  data_v,
float *  tmin 
) [static]
static void sculpt_restore_mesh ( Sculpt sd,
SculptSession ss 
) [static]
static int sculpt_search_sphere_cb ( PBVHNode node,
void *  data_v 
) [static]
static int sculpt_set_persistent_base ( bContext C,
wmOperator UNUSEDop 
) [static]
static void sculpt_stroke_done ( bContext C,
struct PaintStroke UNUSEDstroke 
) [static]
int sculpt_stroke_get_location ( bContext C,
struct PaintStroke stroke,
float  out[3],
float  mouse[2] 
)
static void sculpt_stroke_modifiers_check ( bContext C,
Object ob 
) [static]
static int sculpt_stroke_test_start ( bContext C,
struct wmOperator op,
wmEvent event 
) [static]
static void sculpt_stroke_update_step ( bContext C,
struct PaintStroke stroke,
PointerRNA itemptr 
) [static]
static int sculpt_toggle_mode ( bContext C,
wmOperator UNUSEDop 
) [static]
static const char* sculpt_tool_name ( Sculpt sd) [static]
static void sculpt_update_brush_delta ( Sculpt sd,
Object ob,
Brush brush 
) [static]
static void sculpt_update_cache_invariants ( bContext C,
Sculpt sd,
SculptSession ss,
wmOperator op,
wmEvent event 
) [static]

Definition at line 2834 of file sculpt.c.

References StrokeCache::alt_smooth, BLI_strncpy(), StrokeCache::brush, BRUSH_ACCUMULATE, BRUSH_ANCHORED, BRUSH_INVERTED, BRUSH_PERSISTENT, BRUSH_RAKE, BRUSH_STROKE_INVERT, BRUSH_STROKE_SMOOTH, SculptSession::cache, MVert::co, copy_v2_v2(), copy_v3_v3(), CTX_data_active_object(), wmOperator::customdata, SculptSession::deform_cos, ED_view3d_global_to_vector(), ED_view3d_ob_project_mat_get(), ELEM8, SculptSession::face_normals, StrokeCache::face_norms, find_id(), StrokeCache::first_time, Brush::flag, StrokeCache::flag, i, Brush::id, StrokeCache::initial_mouse, StrokeCache::invert, Sculpt::last_angle, SculptSession::layer_co, MEM_callocN(), MEM_mallocN(), StrokeCache::mouse, SculptSession::multires, SculptSession::mvert, ID::name, StrokeCache::original, p, Sculpt::paint, paint_brush(), paint_brush_set(), paint_stroke_view_context(), Brush::plane_trim, StrokeCache::plane_trim_squared, StrokeCache::projection_mat, wmOperator::ptr, RNA_enum_get(), ViewContext::rv3d, StrokeCache::saved_active_brush_name, StrokeCache::scale, sculpt_init_mirror_clipping(), Brush::sculpt_tool, SCULPT_TOOL_BLOB, SCULPT_TOOL_CLAY, SCULPT_TOOL_CLAY_TUBES, SCULPT_TOOL_CREASE, SCULPT_TOOL_DRAW, SCULPT_TOOL_INFLATE, SCULPT_TOOL_LAYER, SCULPT_TOOL_ROTATE, Object::size, StrokeCache::special_rotation, StrokeCache::tex_mouse, SculptSession::totface, SculptSession::totvert, StrokeCache::true_view_normal, RegionView3D::twmat, StrokeCache::vc, and StrokeCache::vertex_rotation.

Referenced by sculpt_stroke_test_start().

static void sculpt_update_cache_variants ( bContext C,
Sculpt sd,
Object ob,
struct PaintStroke stroke,
PointerRNA ptr 
) [static]
static void sculpt_update_keyblock ( Object ob) [static]
void sculpt_update_mesh_elements ( Scene scene,
Sculpt sd,
Object ob,
int  need_fmap 
)
static void sculpt_update_tex ( const Scene scene,
Sculpt sd,
SculptSession ss 
) [static]
void sculpt_vertcos_to_key ( Object ob,
KeyBlock kb,
float(*)  vertCos[3] 
)
static void smooth ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode,
float  bstrength 
) [static]
static float tex_strength ( SculptSession ss,
Brush br,
float  point[3],
const float  len,
const float  sculpt_normal[3],
const short  vno[3],
const float  fno[3] 
) [static]