Blender  V2.93
Classes | Macros | Typedefs | Enumerations | Functions
sculpt_intern.h File Reference
#include "DNA_brush_types.h"
#include "DNA_key_types.h"
#include "DNA_listBase.h"
#include "DNA_meshdata_types.h"
#include "DNA_vec_types.h"
#include "BLI_bitmap.h"
#include "BLI_gsqueue.h"
#include "BLI_threads.h"
#include "BKE_paint.h"
#include "BKE_pbvh.h"

Go to the source code of this file.

Classes

struct  SculptCursorGeometryInfo
 
struct  SculptVertexNeighborIter
 
struct  SculptOrigVertData
 
struct  SculptFloodFill
 
struct  SculptUndoNodeGeometry
 
struct  SculptUndoNode
 
struct  SculptRakeData
 
struct  SculptThreadedTaskData
 
struct  SculptBrushTest
 
struct  SculptSearchSphereData
 
struct  SculptSearchCircleData
 
struct  AutomaskingSettings
 
struct  AutomaskingCache
 
struct  StrokeCache
 
struct  ExpandCache
 
struct  FilterCache
 

Macros

#define SCULPT_VERTEX_NEIGHBOR_FIXED_CAPACITY   256
 
#define SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN(ss, v_index, neighbor_iterator)
 
#define SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN(ss, v_index, neighbor_iterator)
 
#define SCULPT_VERTEX_NEIGHBORS_ITER_END(neighbor_iterator)
 
#define FAKE_NEIGHBOR_NONE   -1
 
#define SCULPT_RAKE_BRUSH_FACTOR   0.25f
 
#define SCULPT_CLAY_STABILIZER_LEN   10
 
#define EXPAND_SYMM_AREAS   8
 

Typedefs

typedef enum SculptUpdateType SculptUpdateType
 
typedef struct SculptCursorGeometryInfo SculptCursorGeometryInfo
 
typedef struct SculptVertexNeighborIter SculptVertexNeighborIter
 
typedef enum eBoundaryAutomaskMode eBoundaryAutomaskMode
 
typedef struct SculptUndoNodeGeometry SculptUndoNodeGeometry
 
typedef struct SculptUndoNode SculptUndoNode
 
typedef struct SculptThreadedTaskData SculptThreadedTaskData
 
typedef struct SculptBrushTest SculptBrushTest
 
typedef bool(* SculptBrushTestFn) (SculptBrushTest *test, const float co[3])
 
typedef struct AutomaskingSettings AutomaskingSettings
 
typedef struct AutomaskingCache AutomaskingCache
 
typedef struct StrokeCache StrokeCache
 
typedef enum SculptFilterOrientation SculptFilterOrientation
 
typedef enum SculptTransformDisplacementMode SculptTransformDisplacementMode
 
typedef enum eSculptExpandFalloffType eSculptExpandFalloffType
 
typedef enum eSculptExpandTargetType eSculptExpandTargetType
 
typedef enum eSculptExpandRecursionType eSculptExpandRecursionType
 
typedef struct ExpandCache ExpandCache
 
typedef struct FilterCache FilterCache
 

Enumerations

enum  SculptUpdateType { SCULPT_UPDATE_COORDS = 1 << 0 , SCULPT_UPDATE_MASK = 1 << 1 , SCULPT_UPDATE_VISIBILITY = 1 << 2 , SCULPT_UPDATE_COLOR = 1 << 3 }
 
enum  eDynTopoWarnFlag { DYNTOPO_WARN_VDATA = (1 << 0) , DYNTOPO_WARN_EDATA = (1 << 1) , DYNTOPO_WARN_LDATA = (1 << 2) , DYNTOPO_WARN_MODIFIER = (1 << 3) }
 
enum  eBoundaryAutomaskMode { AUTOMASK_INIT_BOUNDARY_EDGES = 1 , AUTOMASK_INIT_BOUNDARY_FACE_SETS = 2 }
 
enum  SculptUndoType {
  SCULPT_UNDO_COORDS , SCULPT_UNDO_HIDDEN , SCULPT_UNDO_MASK , SCULPT_UNDO_DYNTOPO_BEGIN ,
  SCULPT_UNDO_DYNTOPO_END , SCULPT_UNDO_DYNTOPO_SYMMETRIZE , SCULPT_UNDO_GEOMETRY , SCULPT_UNDO_FACE_SETS ,
  SCULPT_UNDO_COLOR
}
 
enum  SculptFilterOrientation { SCULPT_FILTER_ORIENTATION_LOCAL = 0 , SCULPT_FILTER_ORIENTATION_WORLD = 1 , SCULPT_FILTER_ORIENTATION_VIEW = 2 }
 
enum  SculptTransformDisplacementMode { SCULPT_TRANSFORM_DISPLACEMENT_ORIGINAL = 0 , SCULPT_TRANSFORM_DISPLACEMENT_INCREMENTAL = 1 }
 
enum  eSculptExpandFalloffType {
  SCULPT_EXPAND_FALLOFF_GEODESIC , SCULPT_EXPAND_FALLOFF_TOPOLOGY , SCULPT_EXPAND_FALLOFF_TOPOLOGY_DIAGONALS , SCULPT_EXPAND_FALLOFF_NORMALS ,
  SCULPT_EXPAND_FALLOFF_SPHERICAL , SCULPT_EXPAND_FALLOFF_BOUNDARY_TOPOLOGY , SCULPT_EXPAND_FALLOFF_BOUNDARY_FACE_SET , SCULPT_EXPAND_FALLOFF_ACTIVE_FACE_SET
}
 
enum  eSculptExpandTargetType { SCULPT_EXPAND_TARGET_MASK , SCULPT_EXPAND_TARGET_FACE_SETS , SCULPT_EXPAND_TARGET_COLORS }
 
enum  eSculptExpandRecursionType { SCULPT_EXPAND_RECURSION_TOPOLOGY , SCULPT_EXPAND_RECURSION_GEODESICS }
 

Functions

bool SCULPT_mode_poll (struct bContext *C)
 
bool SCULPT_mode_poll_view3d (struct bContext *C)
 
bool SCULPT_poll (struct bContext *C)
 
bool SCULPT_poll_view3d (struct bContext *C)
 
bool SCULPT_vertex_colors_poll (struct bContext *C)
 
void SCULPT_flush_update_step (bContext *C, SculptUpdateType update_flags)
 
void SCULPT_flush_update_done (const bContext *C, Object *ob, SculptUpdateType update_flags)
 
void SCULPT_flush_stroke_deform (struct Sculpt *sd, Object *ob, bool is_proxy_used)
 
void SCULPT_tag_update_overlays (bContext *C)
 
bool SCULPT_stroke_get_location (struct bContext *C, float out[3], const float mouse[2])
 
bool SCULPT_cursor_geometry_info_update (bContext *C, SculptCursorGeometryInfo *out, const float mouse[2], bool use_sampled_normal)
 
void SCULPT_geometry_preview_lines_update (bContext *C, struct SculptSession *ss, float radius)
 
void SCULPT_stroke_modifiers_check (const bContext *C, Object *ob, const Brush *brush)
 
float SCULPT_raycast_init (struct ViewContext *vc, const float mouse[2], float ray_start[3], float ray_end[3], float ray_normal[3], bool original)
 
char SCULPT_mesh_symmetry_xyz_get (Object *object)
 
void SCULPT_vertex_random_access_ensure (struct SculptSession *ss)
 
int SCULPT_vertex_count_get (struct SculptSession *ss)
 
const floatSCULPT_vertex_co_get (struct SculptSession *ss, int index)
 
void SCULPT_vertex_normal_get (SculptSession *ss, int index, float no[3])
 
float SCULPT_vertex_mask_get (struct SculptSession *ss, int index)
 
const floatSCULPT_vertex_color_get (SculptSession *ss, int index)
 
const floatSCULPT_vertex_persistent_co_get (SculptSession *ss, int index)
 
void SCULPT_vertex_persistent_normal_get (SculptSession *ss, int index, float no[3])
 
const floatSCULPT_vertex_co_for_grab_active_get (SculptSession *ss, int index)
 
void SCULPT_vertex_limit_surface_get (SculptSession *ss, int index, float r_co[3])
 
floatSCULPT_brush_deform_target_vertex_co_get (SculptSession *ss, const int deform_target, PBVHVertexIter *iter)
 
void SCULPT_vertex_neighbors_get (struct SculptSession *ss, const int index, const bool include_duplicates, SculptVertexNeighborIter *iter)
 
int SCULPT_active_vertex_get (SculptSession *ss)
 
const floatSCULPT_active_vertex_co_get (SculptSession *ss)
 
void SCULPT_active_vertex_normal_get (SculptSession *ss, float normal[3])
 
struct MVertSCULPT_mesh_deformed_mverts_get (SculptSession *ss)
 
void SCULPT_fake_neighbors_ensure (struct Sculpt *sd, Object *ob, const float max_dist)
 
void SCULPT_fake_neighbors_enable (Object *ob)
 
void SCULPT_fake_neighbors_disable (Object *ob)
 
void SCULPT_fake_neighbors_free (struct Object *ob)
 
void SCULPT_boundary_info_ensure (Object *object)
 
bool SCULPT_vertex_is_boundary (const SculptSession *ss, const int index)
 
void SCULPT_connected_components_ensure (Object *ob)
 
void SCULPT_vertex_visible_set (SculptSession *ss, int index, bool visible)
 
bool SCULPT_vertex_visible_get (SculptSession *ss, int index)
 
void SCULPT_visibility_sync_all_face_sets_to_vertices (struct Object *ob)
 
void SCULPT_visibility_sync_all_vertex_to_face_sets (struct SculptSession *ss)
 
int SCULPT_active_face_set_get (SculptSession *ss)
 
int SCULPT_vertex_face_set_get (SculptSession *ss, int index)
 
void SCULPT_vertex_face_set_set (SculptSession *ss, int index, int face_set)
 
bool SCULPT_vertex_has_face_set (SculptSession *ss, int index, int face_set)
 
bool SCULPT_vertex_has_unique_face_set (SculptSession *ss, int index)
 
int SCULPT_face_set_next_available_get (SculptSession *ss)
 
void SCULPT_face_set_visibility_set (SculptSession *ss, int face_set, bool visible)
 
bool SCULPT_vertex_all_face_sets_visible_get (const SculptSession *ss, int index)
 
bool SCULPT_vertex_any_face_set_visible_get (SculptSession *ss, int index)
 
void SCULPT_face_sets_visibility_invert (SculptSession *ss)
 
void SCULPT_face_sets_visibility_all_set (SculptSession *ss, bool visible)
 
bool SCULPT_stroke_is_main_symmetry_pass (struct StrokeCache *cache)
 
bool SCULPT_stroke_is_first_brush_step (struct StrokeCache *cache)
 
bool SCULPT_stroke_is_first_brush_step_of_symmetry_pass (struct StrokeCache *cache)
 
void SCULPT_orig_vert_data_init (SculptOrigVertData *data, Object *ob, PBVHNode *node)
 
void SCULPT_orig_vert_data_update (SculptOrigVertData *orig_data, PBVHVertexIter *iter)
 
void SCULPT_orig_vert_data_unode_init (SculptOrigVertData *data, Object *ob, struct SculptUndoNode *unode)
 
void SCULPT_calc_brush_plane (struct Sculpt *sd, struct Object *ob, struct PBVHNode **nodes, int totnode, float r_area_no[3], float r_area_co[3])
 
void SCULPT_calc_area_normal (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode, float r_area_no[3])
 
int SCULPT_nearest_vertex_get (struct Sculpt *sd, struct Object *ob, const float co[3], float max_distance, bool use_original)
 
int SCULPT_plane_point_side (const float co[3], const float plane[4])
 
int SCULPT_plane_trim (const struct StrokeCache *cache, const struct Brush *brush, const float val[3])
 
void SCULPT_clip (Sculpt *sd, SculptSession *ss, float co[3], const float val[3])
 
float SCULPT_brush_plane_offset_get (Sculpt *sd, SculptSession *ss)
 
ePaintSymmetryAreas SCULPT_get_vertex_symm_area (const float co[3])
 
bool SCULPT_check_vertex_pivot_symmetry (const float vco[3], const float pco[3], const char symm)
 
bool SCULPT_is_vertex_inside_brush_radius_symm (const float vertex[3], const float br_co[3], float radius, char symm)
 
bool SCULPT_is_symmetry_iteration_valid (char i, char symm)
 
void SCULPT_flip_v3_by_symm_area (float v[3], const ePaintSymmetryFlags symm, const ePaintSymmetryAreas symmarea, const float pivot[3])
 
void SCULPT_flip_quat_by_symm_area (float quat[3], const ePaintSymmetryFlags symm, const ePaintSymmetryAreas symmarea, const float pivot[3])
 
void SCULPT_floodfill_init (struct SculptSession *ss, SculptFloodFill *flood)
 
void SCULPT_floodfill_add_active (struct Sculpt *sd, struct Object *ob, struct SculptSession *ss, SculptFloodFill *flood, float radius)
 
void SCULPT_floodfill_add_initial_with_symmetry (struct Sculpt *sd, struct Object *ob, struct SculptSession *ss, SculptFloodFill *flood, int index, float radius)
 
void SCULPT_floodfill_add_initial (SculptFloodFill *flood, int index)
 
void SCULPT_floodfill_add_and_skip_initial (SculptFloodFill *flood, int index)
 
void SCULPT_floodfill_execute (struct SculptSession *ss, SculptFloodFill *flood, bool(*func)(SculptSession *ss, int from_v, int to_v, bool is_duplicate, void *userdata), void *userdata)
 
void SCULPT_floodfill_free (SculptFloodFill *flood)
 
void SCULPT_dynamic_topology_enable_ex (struct Main *bmain, struct Depsgraph *depsgraph, Scene *scene, Object *ob)
 
void SCULPT_dynamic_topology_disable (bContext *C, struct SculptUndoNode *unode)
 
void sculpt_dynamic_topology_disable_with_undo (struct Main *bmain, struct Depsgraph *depsgraph, Scene *scene, Object *ob)
 
bool SCULPT_stroke_is_dynamic_topology (const SculptSession *ss, const Brush *brush)
 
void SCULPT_dynamic_topology_triangulate (struct BMesh *bm)
 
void SCULPT_dyntopo_node_layers_add (struct SculptSession *ss)
 
enum eDynTopoWarnFlag SCULPT_dynamic_topology_check (Scene *scene, Object *ob)
 
void SCULPT_pbvh_clear (Object *ob)
 
float SCULPT_automasking_factor_get (struct AutomaskingCache *automasking, SculptSession *ss, int vert)
 
struct AutomaskingCacheSCULPT_automasking_active_cache_get (SculptSession *ss)
 
struct AutomaskingCacheSCULPT_automasking_cache_init (Sculpt *sd, Brush *brush, Object *ob)
 
void SCULPT_automasking_cache_free (struct AutomaskingCache *automasking)
 
bool SCULPT_is_automasking_mode_enabled (const Sculpt *sd, const Brush *br, const eAutomasking_flag mode)
 
bool SCULPT_is_automasking_enabled (const Sculpt *sd, const SculptSession *ss, const Brush *br)
 
floatSCULPT_boundary_automasking_init (Object *ob, eBoundaryAutomaskMode mode, int propagation_steps, float *automask_factor)
 
floatSCULPT_geodesic_distances_create (struct Object *ob, struct GSet *initial_vertices, const float limit_radius)
 
floatSCULPT_geodesic_from_vertex_and_symm (struct Sculpt *sd, struct Object *ob, const int vertex, const float limit_radius)
 
floatSCULPT_geodesic_from_vertex (Object *ob, const int vertex, const float limit_radius)
 
void SCULPT_filter_cache_init (struct bContext *C, Object *ob, Sculpt *sd, const int undo_type)
 
void SCULPT_filter_cache_free (SculptSession *ss)
 
void SCULPT_mask_filter_smooth_apply (Sculpt *sd, Object *ob, PBVHNode **nodes, const int totnode, const int smooth_iterations)
 
void SCULPT_do_cloth_brush (struct Sculpt *sd, struct Object *ob, struct PBVHNode **nodes, int totnode)
 
void SCULPT_cloth_simulation_free (struct SculptClothSimulation *cloth_sim)
 
struct SculptClothSimulationSCULPT_cloth_brush_simulation_create (struct SculptSession *ss, const float cloth_mass, const float cloth_damping, const float cloth_softbody_strength, const bool use_collisions, const bool needs_deform_coords)
 
void SCULPT_cloth_brush_simulation_init (struct SculptSession *ss, struct SculptClothSimulation *cloth_sim)
 
void SCULPT_cloth_sim_activate_nodes (struct SculptClothSimulation *cloth_sim, PBVHNode **nodes, int totnode)
 
void SCULPT_cloth_brush_store_simulation_state (struct SculptSession *ss, struct SculptClothSimulation *cloth_sim)
 
void SCULPT_cloth_brush_do_simulation_step (struct Sculpt *sd, struct Object *ob, struct SculptClothSimulation *cloth_sim, struct PBVHNode **nodes, int totnode)
 
void SCULPT_cloth_brush_ensure_nodes_constraints (struct Sculpt *sd, struct Object *ob, struct PBVHNode **nodes, int totnode, struct SculptClothSimulation *cloth_sim, float initial_location[3], const float radius)
 
void SCULPT_cloth_simulation_limits_draw (const uint gpuattr, const struct Brush *brush, const float location[3], const float normal[3], const float rds, const float line_width, const float outline_col[3], const float alpha)
 
void SCULPT_cloth_plane_falloff_preview_draw (const uint gpuattr, struct SculptSession *ss, const float outline_col[3], float outline_alpha)
 
PBVHNode ** SCULPT_cloth_brush_affected_nodes_gather (SculptSession *ss, Brush *brush, int *r_totnode)
 
BLI_INLINE bool SCULPT_is_cloth_deform_brush (const Brush *brush)
 
BLI_INLINE bool SCULPT_tool_needs_all_pbvh_nodes (const Brush *brush)
 
void SCULPT_do_pose_brush (struct Sculpt *sd, struct Object *ob, struct PBVHNode **nodes, int totnode)
 
void SCULPT_pose_calc_pose_data (struct Sculpt *sd, struct Object *ob, struct SculptSession *ss, float initial_location[3], float radius, float pose_offset, float *r_pose_origin, float *r_pose_factor)
 
void SCULPT_pose_brush_init (struct Sculpt *sd, struct Object *ob, struct SculptSession *ss, struct Brush *br)
 
struct SculptPoseIKChainSCULPT_pose_ik_chain_init (struct Sculpt *sd, struct Object *ob, struct SculptSession *ss, struct Brush *br, const float initial_location[3], const float radius)
 
void SCULPT_pose_ik_chain_free (struct SculptPoseIKChain *ik_chain)
 
struct SculptBoundarySCULPT_boundary_data_init (Object *object, Brush *brush, const int initial_vertex, const float radius)
 
void SCULPT_boundary_data_free (struct SculptBoundary *boundary)
 
void SCULPT_do_boundary_brush (struct Sculpt *sd, struct Object *ob, struct PBVHNode **nodes, int totnode)
 
void SCULPT_boundary_edges_preview_draw (const uint gpuattr, struct SculptSession *ss, const float outline_col[3], const float outline_alpha)
 
void SCULPT_boundary_pivot_line_preview_draw (const uint gpuattr, struct SculptSession *ss)
 
void SCULPT_do_multiplane_scrape_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
 
void SCULPT_multiplane_scrape_preview_draw (const uint gpuattr, Brush *brush, SculptSession *ss, const float outline_col[3], const float outline_alpha)
 
void SCULPT_do_draw_face_sets_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
 
void SCULPT_do_paint_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
 
void SCULPT_do_smear_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
 
void SCULPT_bmesh_four_neighbor_average (float avg[3], float direction[3], struct BMVert *v)
 
void SCULPT_neighbor_coords_average (SculptSession *ss, float result[3], int index)
 
float SCULPT_neighbor_mask_average (SculptSession *ss, int index)
 
void SCULPT_neighbor_color_average (SculptSession *ss, float result[4], int index)
 
void SCULPT_neighbor_coords_average_interior (SculptSession *ss, float result[3], int index)
 
void SCULPT_smooth (Sculpt *sd, Object *ob, PBVHNode **nodes, const int totnode, float bstrength, const bool smooth_mask)
 
void SCULPT_do_smooth_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
 
void SCULPT_surface_smooth_laplacian_step (SculptSession *ss, float *disp, const float co[3], float(*laplacian_disp)[3], const int v_index, const float origco[3], const float alpha)
 
void SCULPT_surface_smooth_displace_step (SculptSession *ss, float *co, float(*laplacian_disp)[3], const int v_index, const float beta, const float fade)
 
void SCULPT_do_surface_smooth_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
 
void SCULPT_relax_vertex (struct SculptSession *ss, struct PBVHVertexIter *vd, float factor, bool filter_boundary_face_sets, float *r_final_pos)
 
void SCULPT_brush_test_init (struct SculptSession *ss, SculptBrushTest *test)
 
bool SCULPT_brush_test_sphere (SculptBrushTest *test, const float co[3])
 
bool SCULPT_brush_test_sphere_sq (SculptBrushTest *test, const float co[3])
 
bool SCULPT_brush_test_sphere_fast (const SculptBrushTest *test, const float co[3])
 
bool SCULPT_brush_test_cube (SculptBrushTest *test, const float co[3], const float local[4][4], const float roundness)
 
bool SCULPT_brush_test_circle_sq (SculptBrushTest *test, const float co[3])
 
bool SCULPT_search_sphere_cb (PBVHNode *node, void *data_v)
 
bool SCULPT_search_circle_cb (PBVHNode *node, void *data_v)
 
SculptBrushTestFn SCULPT_brush_test_init_with_falloff_shape (SculptSession *ss, SculptBrushTest *test, char falloff_shape)
 
const floatSCULPT_brush_frontface_normal_from_falloff_shape (SculptSession *ss, char falloff_shape)
 
float SCULPT_brush_strength_factor (struct SculptSession *ss, const struct Brush *br, const float point[3], const float len, const short vno[3], const float fno[3], const float mask, const int vertex_index, const int thread_id)
 
void SCULPT_tilt_apply_to_normal (float r_normal[3], struct StrokeCache *cache, const float tilt_strength)
 
void SCULPT_tilt_effective_normal_get (const SculptSession *ss, const Brush *brush, float r_no[3])
 
bool SCULPT_pbvh_calc_area_normal (const struct Brush *brush, Object *ob, PBVHNode **nodes, int totnode, bool use_threading, float r_area_no[3])
 
void SCULPT_filter_to_orientation_space (float r_v[3], struct FilterCache *filter_cache)
 
void SCULPT_filter_to_object_space (float r_v[3], struct FilterCache *filter_cache)
 
void SCULPT_filter_zero_disabled_axis_components (float r_v[3], struct FilterCache *filter_cache)
 
void SCULPT_cache_calc_brushdata_symm (StrokeCache *cache, const char symm, const char axis, const float angle)
 
void SCULPT_cache_free (StrokeCache *cache)
 
SculptUndoNodeSCULPT_undo_push_node (Object *ob, PBVHNode *node, SculptUndoType type)
 
SculptUndoNodeSCULPT_undo_get_node (PBVHNode *node)
 
SculptUndoNodeSCULPT_undo_get_first_node (void)
 
void SCULPT_undo_push_begin (struct Object *ob, const char *name)
 
void SCULPT_undo_push_end (void)
 
void SCULPT_undo_push_end_ex (const bool use_nested_undo)
 
void SCULPT_vertcos_to_key (Object *ob, KeyBlock *kb, const float(*vertCos)[3])
 
void SCULPT_update_object_bounding_box (struct Object *ob)
 
bool SCULPT_get_redraw_rect (struct ARegion *region, struct RegionView3D *rv3d, Object *ob, rcti *rect)
 
void SCULPT_OT_expand (struct wmOperatorType *ot)
 
void sculpt_expand_modal_keymap (struct wmKeyConfig *keyconf)
 
void SCULPT_OT_face_set_lasso_gesture (struct wmOperatorType *ot)
 
void SCULPT_OT_face_set_box_gesture (struct wmOperatorType *ot)
 
void SCULPT_OT_trim_lasso_gesture (struct wmOperatorType *ot)
 
void SCULPT_OT_trim_box_gesture (struct wmOperatorType *ot)
 
void SCULPT_OT_project_line_gesture (struct wmOperatorType *ot)
 
void SCULPT_OT_face_sets_randomize_colors (struct wmOperatorType *ot)
 
void SCULPT_OT_face_sets_change_visibility (struct wmOperatorType *ot)
 
void SCULPT_OT_face_sets_init (struct wmOperatorType *ot)
 
void SCULPT_OT_face_sets_create (struct wmOperatorType *ot)
 
void SCULPT_OT_face_sets_edit (struct wmOperatorType *ot)
 
void SCULPT_OT_set_pivot_position (struct wmOperatorType *ot)
 
void SCULPT_OT_mesh_filter (struct wmOperatorType *ot)
 
void SCULPT_OT_cloth_filter (struct wmOperatorType *ot)
 
void SCULPT_OT_color_filter (struct wmOperatorType *ot)
 
void SCULPT_OT_mask_filter (struct wmOperatorType *ot)
 
void SCULPT_OT_dirty_mask (struct wmOperatorType *ot)
 
void SCULPT_OT_mask_expand (struct wmOperatorType *ot)
 
void SCULPT_OT_mask_init (struct wmOperatorType *ot)
 
void SCULPT_OT_detail_flood_fill (struct wmOperatorType *ot)
 
void SCULPT_OT_sample_detail_size (struct wmOperatorType *ot)
 
void SCULPT_OT_set_detail_size (struct wmOperatorType *ot)
 
void SCULPT_OT_dyntopo_detail_size_edit (struct wmOperatorType *ot)
 
void SCULPT_OT_dynamic_topology_toggle (struct wmOperatorType *ot)
 

Macro Definition Documentation

◆ EXPAND_SYMM_AREAS

#define EXPAND_SYMM_AREAS   8

Definition at line 1114 of file sculpt_intern.h.

◆ FAKE_NEIGHBOR_NONE

#define FAKE_NEIGHBOR_NONE   -1

Definition at line 178 of file sculpt_intern.h.

◆ SCULPT_CLAY_STABILIZER_LEN

#define SCULPT_CLAY_STABILIZER_LEN   10

Definition at line 894 of file sculpt_intern.h.

◆ SCULPT_RAKE_BRUSH_FACTOR

#define SCULPT_RAKE_BRUSH_FACTOR   0.25f

Definition at line 680 of file sculpt_intern.h.

◆ SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN

#define SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN (   ss,
  v_index,
  neighbor_iterator 
)
Value:
SCULPT_vertex_neighbors_get(ss, v_index, true, &neighbor_iterator); \
for (neighbor_iterator.i = neighbor_iterator.size - 1; neighbor_iterator.i >= 0; \
neighbor_iterator.i--) { \
neighbor_iterator.index = neighbor_iterator.neighbors[neighbor_iterator.i]; \
neighbor_iterator.is_duplicate = (neighbor_iterator.i >= \
neighbor_iterator.size - neighbor_iterator.num_duplicates);
void SCULPT_vertex_neighbors_get(struct SculptSession *ss, const int index, const bool include_duplicates, SculptVertexNeighborIter *iter)
Definition: sculpt.c:844

Definition at line 153 of file sculpt_intern.h.

◆ SCULPT_VERTEX_NEIGHBOR_FIXED_CAPACITY

#define SCULPT_VERTEX_NEIGHBOR_FIXED_CAPACITY   256

Definition at line 122 of file sculpt_intern.h.

◆ SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN

#define SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN (   ss,
  v_index,
  neighbor_iterator 
)
Value:
SCULPT_vertex_neighbors_get(ss, v_index, false, &neighbor_iterator); \
for (neighbor_iterator.i = 0; neighbor_iterator.i < neighbor_iterator.size; \
neighbor_iterator.i++) { \
neighbor_iterator.index = neighbor_iterator.neighbors[neighbor_iterator.i];

Definition at line 145 of file sculpt_intern.h.

◆ SCULPT_VERTEX_NEIGHBORS_ITER_END

#define SCULPT_VERTEX_NEIGHBORS_ITER_END (   neighbor_iterator)
Value:
} \
if (neighbor_iterator.neighbors != neighbor_iterator.neighbors_fixed) { \
MEM_freeN(neighbor_iterator.neighbors); \
} \
((void)0)

Definition at line 161 of file sculpt_intern.h.

Typedef Documentation

◆ AutomaskingCache

◆ AutomaskingSettings

◆ eBoundaryAutomaskMode

◆ eSculptExpandFalloffType

◆ eSculptExpandRecursionType

◆ eSculptExpandTargetType

◆ ExpandCache

typedef struct ExpandCache ExpandCache

◆ FilterCache

typedef struct FilterCache FilterCache

◆ SculptBrushTest

◆ SculptBrushTestFn

typedef bool(* SculptBrushTestFn) (SculptBrushTest *test, const float co[3])

Definition at line 823 of file sculpt_intern.h.

◆ SculptCursorGeometryInfo

◆ SculptFilterOrientation

◆ SculptThreadedTaskData

◆ SculptTransformDisplacementMode

◆ SculptUndoNode

◆ SculptUndoNodeGeometry

◆ SculptUpdateType

◆ SculptVertexNeighborIter

◆ StrokeCache

typedef struct StrokeCache StrokeCache

Enumeration Type Documentation

◆ eBoundaryAutomaskMode

Enumerator
AUTOMASK_INIT_BOUNDARY_EDGES 
AUTOMASK_INIT_BOUNDARY_FACE_SETS 

Definition at line 358 of file sculpt_intern.h.

◆ eDynTopoWarnFlag

Enumerator
DYNTOPO_WARN_VDATA 
DYNTOPO_WARN_EDATA 
DYNTOPO_WARN_LDATA 
DYNTOPO_WARN_MODIFIER 

Definition at line 315 of file sculpt_intern.h.

◆ eSculptExpandFalloffType

Enumerator
SCULPT_EXPAND_FALLOFF_GEODESIC 
SCULPT_EXPAND_FALLOFF_TOPOLOGY 
SCULPT_EXPAND_FALLOFF_TOPOLOGY_DIAGONALS 
SCULPT_EXPAND_FALLOFF_NORMALS 
SCULPT_EXPAND_FALLOFF_SPHERICAL 
SCULPT_EXPAND_FALLOFF_BOUNDARY_TOPOLOGY 
SCULPT_EXPAND_FALLOFF_BOUNDARY_FACE_SET 
SCULPT_EXPAND_FALLOFF_ACTIVE_FACE_SET 

Definition at line 1092 of file sculpt_intern.h.

◆ eSculptExpandRecursionType

Enumerator
SCULPT_EXPAND_RECURSION_TOPOLOGY 
SCULPT_EXPAND_RECURSION_GEODESICS 

Definition at line 1109 of file sculpt_intern.h.

◆ eSculptExpandTargetType

Enumerator
SCULPT_EXPAND_TARGET_MASK 
SCULPT_EXPAND_TARGET_FACE_SETS 
SCULPT_EXPAND_TARGET_COLORS 

Definition at line 1103 of file sculpt_intern.h.

◆ SculptFilterOrientation

Enumerator
SCULPT_FILTER_ORIENTATION_LOCAL 
SCULPT_FILTER_ORIENTATION_WORLD 
SCULPT_FILTER_ORIENTATION_VIEW 

Definition at line 1073 of file sculpt_intern.h.

◆ SculptTransformDisplacementMode

Enumerator
SCULPT_TRANSFORM_DISPLACEMENT_ORIGINAL 
SCULPT_TRANSFORM_DISPLACEMENT_INCREMENTAL 

Definition at line 1080 of file sculpt_intern.h.

◆ SculptUndoType

Enumerator
SCULPT_UNDO_COORDS 
SCULPT_UNDO_HIDDEN 
SCULPT_UNDO_MASK 
SCULPT_UNDO_DYNTOPO_BEGIN 
SCULPT_UNDO_DYNTOPO_END 
SCULPT_UNDO_DYNTOPO_SYMMETRIZE 
SCULPT_UNDO_GEOMETRY 
SCULPT_UNDO_FACE_SETS 
SCULPT_UNDO_COLOR 

Definition at line 592 of file sculpt_intern.h.

◆ SculptUpdateType

Enumerator
SCULPT_UPDATE_COORDS 
SCULPT_UPDATE_MASK 
SCULPT_UPDATE_VISIBILITY 
SCULPT_UPDATE_COLOR 

Definition at line 57 of file sculpt_intern.h.

Function Documentation

◆ SCULPT_active_face_set_get()

int SCULPT_active_face_set_get ( SculptSession ss)

◆ SCULPT_active_vertex_co_get()

const float* SCULPT_active_vertex_co_get ( SculptSession ss)

◆ SCULPT_active_vertex_get()

int SCULPT_active_vertex_get ( SculptSession ss)

◆ SCULPT_active_vertex_normal_get()

void SCULPT_active_vertex_normal_get ( SculptSession ss,
float  normal[3] 
)

Definition at line 290 of file sculpt.c.

References normal, SCULPT_active_vertex_get(), and SCULPT_vertex_normal_get().

Referenced by sculpt_mask_expand_invoke().

◆ SCULPT_automasking_active_cache_get()

struct AutomaskingCache* SCULPT_automasking_active_cache_get ( SculptSession ss)

◆ SCULPT_automasking_cache_free()

void SCULPT_automasking_cache_free ( struct AutomaskingCache automasking)

Definition at line 163 of file sculpt_automasking.c.

References AutomaskingCache::factor, and MEM_SAFE_FREE.

Referenced by SCULPT_filter_cache_free(), and sculpt_stroke_done().

◆ SCULPT_automasking_cache_init()

struct AutomaskingCache* SCULPT_automasking_cache_init ( Sculpt sd,
Brush brush,
Object ob 
)

◆ SCULPT_automasking_factor_get()

float SCULPT_automasking_factor_get ( struct AutomaskingCache automasking,
SculptSession ss,
int  vert 
)

◆ SCULPT_bmesh_four_neighbor_average()

void SCULPT_bmesh_four_neighbor_average ( float  avg[3],
float  direction[3],
struct BMVert v 
)

◆ SCULPT_boundary_automasking_init()

float* SCULPT_boundary_automasking_init ( Object ob,
eBoundaryAutomaskMode  mode,
int  propagation_steps,
float automask_factor 
)

◆ SCULPT_boundary_data_free()

void SCULPT_boundary_data_free ( struct SculptBoundary boundary)

◆ SCULPT_boundary_data_init()

struct SculptBoundary* SCULPT_boundary_data_init ( Object object,
Brush brush,
const int  initial_vertex,
const float  radius 
)

◆ SCULPT_boundary_edges_preview_draw()

void SCULPT_boundary_edges_preview_draw ( const uint  gpuattr,
struct SculptSession ss,
const float  outline_col[3],
const float  outline_alpha 
)

◆ SCULPT_boundary_info_ensure()

void SCULPT_boundary_info_ensure ( Object object)

◆ SCULPT_boundary_pivot_line_preview_draw()

void SCULPT_boundary_pivot_line_preview_draw ( const uint  gpuattr,
struct SculptSession ss 
)

◆ SCULPT_brush_deform_target_vertex_co_get()

float* SCULPT_brush_deform_target_vertex_co_get ( SculptSession ss,
const int  deform_target,
PBVHVertexIter iter 
)

◆ SCULPT_brush_frontface_normal_from_falloff_shape()

const float* SCULPT_brush_frontface_normal_from_falloff_shape ( SculptSession ss,
char  falloff_shape 
)

◆ SCULPT_brush_plane_offset_get()

float SCULPT_brush_plane_offset_get ( Sculpt sd,
SculptSession ss 
)

◆ SCULPT_brush_strength_factor()

float SCULPT_brush_strength_factor ( struct SculptSession ss,
const struct Brush br,
const float  point[3],
const float  len,
const short  vno[3],
const float  fno[3],
const float  mask,
const int  vertex_index,
const int  thread_id 
)

◆ SCULPT_brush_test_circle_sq()

bool SCULPT_brush_test_circle_sq ( SculptBrushTest test,
const float  co[3] 
)

◆ SCULPT_brush_test_cube()

bool SCULPT_brush_test_cube ( SculptBrushTest test,
const float  co[3],
const float  local[4][4],
const float  roundness 
)

◆ SCULPT_brush_test_init()

void SCULPT_brush_test_init ( struct SculptSession ss,
SculptBrushTest test 
)

◆ SCULPT_brush_test_init_with_falloff_shape()

SculptBrushTestFn SCULPT_brush_test_init_with_falloff_shape ( SculptSession ss,
SculptBrushTest test,
char  falloff_shape 
)

Definition at line 1770 of file sculpt.c.

References SculptSession::cache, SculptBrushTest::location, PAINT_FALLOFF_SHAPE_SPHERE, plane_from_point_normal_v3(), SculptBrushTest::plane_view, SCULPT_brush_test_circle_sq(), SCULPT_brush_test_init(), SCULPT_brush_test_sphere_sq(), and StrokeCache::view_normal.

Referenced by calc_area_normal_and_center_task_cb(), calc_clay_surface_task_cb(), calc_multiplane_scrape_surface_task_cb(), do_clay_brush_task_cb_ex(), do_clay_thumb_brush_task_cb_ex(), do_cloth_brush_apply_forces_task_cb_ex(), do_color_smooth_task_cb_exec(), do_crease_brush_task_cb_ex(), do_displacement_eraser_brush_task_cb_ex(), do_displacement_smear_brush_task_cb_ex(), do_draw_brush_task_cb_ex(), do_draw_face_sets_brush_task_cb_ex(), do_draw_sharp_brush_task_cb_ex(), do_enhance_details_brush_task_cb_ex(), do_fill_brush_task_cb_ex(), do_flatten_brush_task_cb_ex(), do_grab_brush_task_cb_ex(), do_gravity_task_cb_ex(), do_inflate_brush_task_cb_ex(), do_layer_brush_task_cb_ex(), do_mask_brush_draw_task_cb_ex(), do_multiplane_scrape_brush_task_cb_ex(), do_nudge_brush_task_cb_ex(), do_paint_brush_task_cb_ex(), do_pinch_brush_task_cb_ex(), do_relax_face_sets_brush_task_cb_ex(), do_rotate_brush_task_cb_ex(), do_sample_wet_paint_task_cb(), do_scrape_brush_task_cb_ex(), do_smear_brush_task_cb_exec(), do_smooth_brush_task_cb_ex(), do_snake_hook_brush_task_cb_ex(), do_thumb_brush_task_cb_ex(), do_topology_rake_bmesh_task_cb_ex(), do_topology_relax_task_cb_ex(), do_topology_slide_task_cb_ex(), do_vpaint_brush_blur_task_cb_ex(), do_vpaint_brush_calc_average_color_cb_ex(), do_vpaint_brush_draw_task_cb_ex(), do_vpaint_brush_smear_task_cb_ex(), do_wpaint_brush_blur_task_cb_ex(), do_wpaint_brush_calc_average_weight_cb_ex(), do_wpaint_brush_draw_task_cb_ex(), do_wpaint_brush_smear_task_cb_ex(), SCULPT_do_surface_smooth_brush_displace_task_cb_ex(), and SCULPT_do_surface_smooth_brush_laplacian_task_cb_ex().

◆ SCULPT_brush_test_sphere()

bool SCULPT_brush_test_sphere ( SculptBrushTest test,
const float  co[3] 
)

◆ SCULPT_brush_test_sphere_fast()

bool SCULPT_brush_test_sphere_fast ( const SculptBrushTest test,
const float  co[3] 
)

◆ SCULPT_brush_test_sphere_sq()

bool SCULPT_brush_test_sphere_sq ( SculptBrushTest test,
const float  co[3] 
)

◆ SCULPT_cache_calc_brushdata_symm()

void SCULPT_cache_calc_brushdata_symm ( StrokeCache cache,
const char  symm,
const char  axis,
const float  angle 
)

◆ SCULPT_cache_free()

void SCULPT_cache_free ( StrokeCache cache)

◆ SCULPT_calc_area_normal()

void SCULPT_calc_area_normal ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode,
float  r_area_no[3] 
)

◆ SCULPT_calc_brush_plane()

void SCULPT_calc_brush_plane ( struct Sculpt sd,
struct Object ob,
struct PBVHNode **  nodes,
int  totnode,
float  r_area_no[3],
float  r_area_co[3] 
)

◆ SCULPT_check_vertex_pivot_symmetry()

bool SCULPT_check_vertex_pivot_symmetry ( const float  vco[3],
const float  pco[3],
const char  symm 
)

◆ SCULPT_clip()

void SCULPT_clip ( Sculpt sd,
SculptSession ss,
float  co[3],
const float  val[3] 
)

◆ SCULPT_cloth_brush_affected_nodes_gather()

PBVHNode** SCULPT_cloth_brush_affected_nodes_gather ( SculptSession ss,
Brush brush,
int *  r_totnode 
)

◆ SCULPT_cloth_brush_do_simulation_step()

void SCULPT_cloth_brush_do_simulation_step ( struct Sculpt sd,
struct Object ob,
struct SculptClothSimulation cloth_sim,
struct PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_cloth_brush_ensure_nodes_constraints()

void SCULPT_cloth_brush_ensure_nodes_constraints ( struct Sculpt sd,
struct Object ob,
struct PBVHNode **  nodes,
int  totnode,
struct SculptClothSimulation cloth_sim,
float  initial_location[3],
const float  radius 
)

◆ SCULPT_cloth_brush_simulation_create()

struct SculptClothSimulation* SCULPT_cloth_brush_simulation_create ( struct SculptSession ss,
const float  cloth_mass,
const float  cloth_damping,
const float  cloth_softbody_strength,
const bool  use_collisions,
const bool  needs_deform_coords 
)

◆ SCULPT_cloth_brush_simulation_init()

void SCULPT_cloth_brush_simulation_init ( struct SculptSession ss,
struct SculptClothSimulation cloth_sim 
)

◆ SCULPT_cloth_brush_store_simulation_state()

void SCULPT_cloth_brush_store_simulation_state ( struct SculptSession ss,
struct SculptClothSimulation cloth_sim 
)

◆ SCULPT_cloth_plane_falloff_preview_draw()

void SCULPT_cloth_plane_falloff_preview_draw ( const uint  gpuattr,
struct SculptSession ss,
const float  outline_col[3],
float  outline_alpha 
)

◆ SCULPT_cloth_sim_activate_nodes()

void SCULPT_cloth_sim_activate_nodes ( struct SculptClothSimulation cloth_sim,
PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_cloth_simulation_free()

void SCULPT_cloth_simulation_free ( struct SculptClothSimulation cloth_sim)

◆ SCULPT_cloth_simulation_limits_draw()

void SCULPT_cloth_simulation_limits_draw ( const uint  gpuattr,
const struct Brush brush,
const float  location[3],
const float  normal[3],
const float  rds,
const float  line_width,
const float  outline_col[3],
const float  alpha 
)

◆ SCULPT_connected_components_ensure()

void SCULPT_connected_components_ensure ( Object ob)

◆ SCULPT_cursor_geometry_info_update()

bool SCULPT_cursor_geometry_info_update ( bContext C,
SculptCursorGeometryInfo out,
const float  mouse[2],
bool  use_sampled_normal 
)

Definition at line 7452 of file sculpt.c.

References SculptRaycastData::active_face_grid_index, SculptSession::active_face_index, SculptSession::active_grid_index, SculptCursorGeometryInfo::active_vertex_co, SculptSession::active_vertex_index, SculptRaycastData::active_vertex_index, add_v3_v3(), BKE_brush_size_get(), BKE_brush_unprojected_radius_get(), BKE_brush_use_locked_size(), BKE_paint_brush(), BKE_paint_get_active_from_context(), BKE_pbvh_raycast(), BKE_pbvh_type(), C, copy_m3_m4(), copy_v3_v3(), CTX_data_depsgraph_pointer(), CTX_data_scene(), SculptSession::cursor_location, SculptSession::cursor_normal, SculptSession::cursor_radius, SculptSession::cursor_sampled_normal, SculptSession::cursor_view_normal, depsgraph, SculptRaycastData::depth, ED_view3d_viewcontext_init(), SculptRaycastData::face_normal, SculptRaycastData::hit, Object::imat, invert_m4_m4(), SculptRaycastData::isect_precalc, isect_ray_tri_watertight_v3_precalc(), SculptCursorGeometryInfo::location, MEM_SAFE_FREE, mul_m3_v3(), mul_v3_fl(), SculptCursorGeometryInfo::normal, normalize_v3_v3(), ViewContext::obact, Object::obmat, SculptRaycastData::original, paint_calc_object_space_radius(), SculptSession::pbvh, PBVH_BMESH, PBVH_FACES, PBVH_GRIDS, SculptSession::rv3d, ViewContext::rv3d, scene, Object::sculpt, ToolSettings::sculpt, SCULPT_active_vertex_co_get(), SCULPT_pbvh_calc_area_normal(), sculpt_pbvh_gather_cursor_update(), sculpt_raycast_cb(), SCULPT_raycast_init(), SCULPT_stroke_modifiers_check(), SCULPT_vertex_random_access_ensure(), Scene::toolsettings, SculptSession::v3d, ViewContext::v3d, RegionView3D::viewinv, and zero_v3().

Referenced by ED_sculpt_face_sets_active_update_and_get(), paint_cursor_sculpt_session_update_and_init(), sample_detail_voxel(), sculpt_cloth_filter_invoke(), sculpt_color_filter_invoke(), sculpt_expand_target_vertex_update_and_get(), sculpt_face_set_edit_invoke(), sculpt_face_sets_change_visibility_invoke(), sculpt_mask_by_color_invoke(), sculpt_mask_expand_invoke(), sculpt_mask_expand_modal(), sculpt_mesh_filter_invoke(), sculpt_trim_gesture_box_invoke(), and sculpt_trim_gesture_lasso_invoke().

◆ SCULPT_do_boundary_brush()

void SCULPT_do_boundary_brush ( struct Sculpt sd,
struct Object ob,
struct PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_do_cloth_brush()

void SCULPT_do_cloth_brush ( struct Sculpt sd,
struct Object ob,
struct PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_do_draw_face_sets_brush()

void SCULPT_do_draw_face_sets_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_do_multiplane_scrape_brush()

void SCULPT_do_multiplane_scrape_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
)

Definition at line 233 of file sculpt_multiplane_scrape.c.

References add_v3_v3(), angle_v3v3(), MultiplaneScrapeSampleData::area_cos, MultiplaneScrapeSampleData::area_count, MultiplaneScrapeSampleData::area_nos, BKE_paint_brush(), BKE_pbvh_parallel_range_settings(), BLI_task_parallel_range(), BRUSH_MULTIPLANE_SCRAPE_DYNAMIC, BRUSH_ORIGINAL_NORMAL, StrokeCache::bstrength, SculptSession::cache, calc_multiplane_scrape_surface_reduce(), calc_multiplane_scrape_surface_task_cb(), copy_m4_m4(), copy_v3_v3(), cross_v3_v3v3(), data, DEG2RADF, do_multiplane_scrape_brush_task_cb_ex(), dot_v3v3(), Brush::flag, Brush::flag2, TaskParallelSettings::func_reduce, StrokeCache::grab_delta_symmetry, interpf(), invert_m4(), invert_m4_m4(), is_zero_v3(), StrokeCache::location, mid_v3_v3v3(), StrokeCache::mirror_symmetry_pass, mul_v3_fl(), mul_v3_mat3_m4v3(), mul_v3_v3fl(), mul_v3_v3v3(), StrokeCache::multiplane_scrape_angle, Brush::multiplane_scrape_angle, normalize_m4(), normalize_v3(), NULL, Sculpt::paint, plane_from_point_normal_v3(), StrokeCache::pressure, RAD2DEGF, StrokeCache::radial_symmetry_pass, StrokeCache::radius, rotate_v3_v3v3fl(), StrokeCache::scale, Object::sculpt, SCULPT_brush_plane_offset_get(), SCULPT_calc_area_normal(), SCULPT_calc_brush_plane(), SCULPT_DISP_DIR_AREA, Brush::sculpt_plane, SCULPT_stroke_is_first_brush_step_of_symmetry_pass(), SculptThreadedTaskData::sd, StrokeCache::stroke_local_mat, sub_v3_v3v3(), TaskParallelSettings::userdata_chunk, and TaskParallelSettings::userdata_chunk_size.

Referenced by do_brush_action().

◆ SCULPT_do_paint_brush()

void SCULPT_do_paint_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_do_pose_brush()

void SCULPT_do_pose_brush ( struct Sculpt sd,
struct Object ob,
struct PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_do_smear_brush()

void SCULPT_do_smear_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_do_smooth_brush()

void SCULPT_do_smooth_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_do_surface_smooth_brush()

void SCULPT_do_surface_smooth_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_dynamic_topology_check()

enum eDynTopoWarnFlag SCULPT_dynamic_topology_check ( Scene scene,
Object ob 
)

◆ SCULPT_dynamic_topology_disable()

void SCULPT_dynamic_topology_disable ( bContext C,
struct SculptUndoNode unode 
)

◆ sculpt_dynamic_topology_disable_with_undo()

void sculpt_dynamic_topology_disable_with_undo ( struct Main bmain,
struct Depsgraph depsgraph,
Scene scene,
Object ob 
)

◆ SCULPT_dynamic_topology_enable_ex()

void SCULPT_dynamic_topology_enable_ex ( struct Main bmain,
struct Depsgraph depsgraph,
Scene scene,
Object ob 
)

◆ SCULPT_dynamic_topology_triangulate()

void SCULPT_dynamic_topology_triangulate ( struct BMesh bm)

◆ SCULPT_dyntopo_node_layers_add()

void SCULPT_dyntopo_node_layers_add ( struct SculptSession ss)

◆ sculpt_expand_modal_keymap()

void sculpt_expand_modal_keymap ( struct wmKeyConfig keyconf)

◆ SCULPT_face_set_next_available_get()

int SCULPT_face_set_next_available_get ( SculptSession ss)

◆ SCULPT_face_set_visibility_set()

void SCULPT_face_set_visibility_set ( SculptSession ss,
int  face_set,
bool  visible 
)

◆ SCULPT_face_sets_visibility_all_set()

void SCULPT_face_sets_visibility_all_set ( SculptSession ss,
bool  visible 
)

◆ SCULPT_face_sets_visibility_invert()

void SCULPT_face_sets_visibility_invert ( SculptSession ss)

◆ SCULPT_fake_neighbors_disable()

void SCULPT_fake_neighbors_disable ( Object ob)

◆ SCULPT_fake_neighbors_enable()

void SCULPT_fake_neighbors_enable ( Object ob)

◆ SCULPT_fake_neighbors_ensure()

void SCULPT_fake_neighbors_ensure ( struct Sculpt sd,
Object ob,
const float  max_dist 
)

◆ SCULPT_fake_neighbors_free()

void SCULPT_fake_neighbors_free ( struct Object ob)

Definition at line 9113 of file sculpt.c.

References Object::sculpt, and sculpt_pose_fake_neighbors_free().

Referenced by SCULPT_flush_update_done().

◆ SCULPT_filter_cache_free()

void SCULPT_filter_cache_free ( SculptSession ss)

◆ SCULPT_filter_cache_init()

void SCULPT_filter_cache_init ( struct bContext C,
Object ob,
Sculpt sd,
const int  undo_type 
)

◆ SCULPT_filter_to_object_space()

void SCULPT_filter_to_object_space ( float  r_v[3],
struct FilterCache filter_cache 
)

◆ SCULPT_filter_to_orientation_space()

void SCULPT_filter_to_orientation_space ( float  r_v[3],
struct FilterCache filter_cache 
)

◆ SCULPT_filter_zero_disabled_axis_components()

void SCULPT_filter_zero_disabled_axis_components ( float  r_v[3],
struct FilterCache filter_cache 
)

◆ SCULPT_flip_quat_by_symm_area()

void SCULPT_flip_quat_by_symm_area ( float  quat[3],
const ePaintSymmetryFlags  symm,
const ePaintSymmetryAreas  symmarea,
const float  pivot[3] 
)

Definition at line 4209 of file sculpt.c.

References flip_qt().

Referenced by SCULPT_do_pose_brush(), and sculpt_transform_matrices_init().

◆ SCULPT_flip_v3_by_symm_area()

void SCULPT_flip_v3_by_symm_area ( float  v[3],
const ePaintSymmetryFlags  symm,
const ePaintSymmetryAreas  symmarea,
const float  pivot[3] 
)

◆ SCULPT_floodfill_add_active()

void SCULPT_floodfill_add_active ( struct Sculpt sd,
struct Object ob,
struct SculptSession ss,
SculptFloodFill flood,
float  radius 
)

◆ SCULPT_floodfill_add_and_skip_initial()

void SCULPT_floodfill_add_and_skip_initial ( SculptFloodFill flood,
int  index 
)

◆ SCULPT_floodfill_add_initial()

void SCULPT_floodfill_add_initial ( SculptFloodFill flood,
int  index 
)

◆ SCULPT_floodfill_add_initial_with_symmetry()

void SCULPT_floodfill_add_initial_with_symmetry ( struct Sculpt sd,
struct Object ob,
struct SculptSession ss,
SculptFloodFill flood,
int  index,
float  radius 
)

◆ SCULPT_floodfill_execute()

void SCULPT_floodfill_execute ( struct SculptSession ss,
SculptFloodFill flood,
bool(*)(SculptSession *ss, int from_v, int to_v, bool is_duplicate, void *userdata)  func,
void *  userdata 
)

◆ SCULPT_floodfill_free()

void SCULPT_floodfill_free ( SculptFloodFill flood)

◆ SCULPT_floodfill_init()

void SCULPT_floodfill_init ( struct SculptSession ss,
SculptFloodFill flood 
)

◆ SCULPT_flush_stroke_deform()

void SCULPT_flush_stroke_deform ( struct Sculpt sd,
Object ob,
bool  is_proxy_used 
)

◆ SCULPT_flush_update_done()

void SCULPT_flush_update_done ( const bContext C,
Object ob,
SculptUpdateType  update_flags 
)

◆ SCULPT_flush_update_step()

void SCULPT_flush_update_step ( bContext C,
SculptUpdateType  update_flags 
)

◆ SCULPT_geodesic_distances_create()

float* SCULPT_geodesic_distances_create ( struct Object ob,
struct GSet initial_vertices,
const float  limit_radius 
)

◆ SCULPT_geodesic_from_vertex()

float* SCULPT_geodesic_from_vertex ( Object ob,
const int  vertex,
const float  limit_radius 
)

◆ SCULPT_geodesic_from_vertex_and_symm()

float* SCULPT_geodesic_from_vertex_and_symm ( struct Sculpt sd,
struct Object ob,
const int  vertex,
const float  limit_radius 
)

◆ SCULPT_geometry_preview_lines_update()

void SCULPT_geometry_preview_lines_update ( bContext C,
struct SculptSession ss,
float  radius 
)

◆ SCULPT_get_redraw_rect()

bool SCULPT_get_redraw_rect ( struct ARegion region,
struct RegionView3D rv3d,
Object ob,
rcti rect 
)

◆ SCULPT_get_vertex_symm_area()

ePaintSymmetryAreas SCULPT_get_vertex_symm_area ( const float  co[3])

◆ SCULPT_is_automasking_enabled()

bool SCULPT_is_automasking_enabled ( const Sculpt sd,
const SculptSession ss,
const Brush br 
)

◆ SCULPT_is_automasking_mode_enabled()

bool SCULPT_is_automasking_mode_enabled ( const Sculpt sd,
const Brush br,
const eAutomasking_flag  mode 
)

◆ SCULPT_is_cloth_deform_brush()

BLI_INLINE bool SCULPT_is_cloth_deform_brush ( const Brush brush)

◆ SCULPT_is_symmetry_iteration_valid()

bool SCULPT_is_symmetry_iteration_valid ( char  i,
char  symm 
)

◆ SCULPT_is_vertex_inside_brush_radius_symm()

bool SCULPT_is_vertex_inside_brush_radius_symm ( const float  vertex[3],
const float  br_co[3],
float  radius,
char  symm 
)

Definition at line 1048 of file sculpt.c.

References flip_v3_v3(), len_squared_v3v3(), and SCULPT_is_symmetry_iteration_valid().

Referenced by automask_floodfill_cb().

◆ SCULPT_mask_filter_smooth_apply()

void SCULPT_mask_filter_smooth_apply ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
const int  totnode,
const int  smooth_iterations 
)

◆ SCULPT_mesh_deformed_mverts_get()

struct MVert* SCULPT_mesh_deformed_mverts_get ( SculptSession ss)

◆ SCULPT_mesh_symmetry_xyz_get()

char SCULPT_mesh_symmetry_xyz_get ( Object object)

◆ SCULPT_mode_poll()

bool SCULPT_mode_poll ( struct bContext C)

◆ SCULPT_mode_poll_view3d()

bool SCULPT_mode_poll_view3d ( struct bContext C)

◆ SCULPT_multiplane_scrape_preview_draw()

void SCULPT_multiplane_scrape_preview_draw ( const uint  gpuattr,
Brush brush,
SculptSession ss,
const float  outline_col[3],
const float  outline_alpha 
)

◆ SCULPT_nearest_vertex_get()

int SCULPT_nearest_vertex_get ( struct Sculpt sd,
struct Object ob,
const float  co[3],
float  max_distance,
bool  use_original 
)

◆ SCULPT_neighbor_color_average()

void SCULPT_neighbor_color_average ( SculptSession ss,
float  result[4],
int  index 
)

◆ SCULPT_neighbor_coords_average()

void SCULPT_neighbor_coords_average ( SculptSession ss,
float  result[3],
int  index 
)

◆ SCULPT_neighbor_coords_average_interior()

void SCULPT_neighbor_coords_average_interior ( SculptSession ss,
float  result[3],
int  index 
)

◆ SCULPT_neighbor_mask_average()

float SCULPT_neighbor_mask_average ( SculptSession ss,
int  index 
)

◆ SCULPT_orig_vert_data_init()

void SCULPT_orig_vert_data_init ( SculptOrigVertData data,
Object ob,
PBVHNode node 
)

◆ SCULPT_orig_vert_data_unode_init()

void SCULPT_orig_vert_data_unode_init ( SculptOrigVertData data,
Object ob,
SculptUndoNode unode 
)

Initialize a SculptOrigVertData for accessing original vertex data; handles BMesh, Mesh, and multi-resolution.

Definition at line 1277 of file sculpt.c.

References SculptSession::bm, bm, SculptSession::bm_log, data, and Object::sculpt.

Referenced by paint_mesh_restore_co_task_cb(), and SCULPT_orig_vert_data_init().

◆ SCULPT_orig_vert_data_update()

void SCULPT_orig_vert_data_update ( SculptOrigVertData orig_data,
PBVHVertexIter iter 
)

◆ SCULPT_OT_cloth_filter()

void SCULPT_OT_cloth_filter ( struct wmOperatorType ot)

◆ SCULPT_OT_color_filter()

void SCULPT_OT_color_filter ( struct wmOperatorType ot)

◆ SCULPT_OT_detail_flood_fill()

void SCULPT_OT_detail_flood_fill ( struct wmOperatorType ot)

◆ SCULPT_OT_dirty_mask()

void SCULPT_OT_dirty_mask ( struct wmOperatorType ot)

◆ SCULPT_OT_dynamic_topology_toggle()

void SCULPT_OT_dynamic_topology_toggle ( struct wmOperatorType ot)

◆ SCULPT_OT_dyntopo_detail_size_edit()

void SCULPT_OT_dyntopo_detail_size_edit ( struct wmOperatorType ot)

◆ SCULPT_OT_expand()

void SCULPT_OT_expand ( struct wmOperatorType ot)

◆ SCULPT_OT_face_set_box_gesture()

void SCULPT_OT_face_set_box_gesture ( struct wmOperatorType ot)

◆ SCULPT_OT_face_set_lasso_gesture()

void SCULPT_OT_face_set_lasso_gesture ( struct wmOperatorType ot)

◆ SCULPT_OT_face_sets_change_visibility()

void SCULPT_OT_face_sets_change_visibility ( struct wmOperatorType ot)

◆ SCULPT_OT_face_sets_create()

void SCULPT_OT_face_sets_create ( struct wmOperatorType ot)

◆ SCULPT_OT_face_sets_edit()

void SCULPT_OT_face_sets_edit ( struct wmOperatorType ot)

◆ SCULPT_OT_face_sets_init()

void SCULPT_OT_face_sets_init ( struct wmOperatorType ot)

◆ SCULPT_OT_face_sets_randomize_colors()

void SCULPT_OT_face_sets_randomize_colors ( struct wmOperatorType ot)

◆ SCULPT_OT_mask_expand()

void SCULPT_OT_mask_expand ( struct wmOperatorType ot)

◆ SCULPT_OT_mask_filter()

void SCULPT_OT_mask_filter ( struct wmOperatorType ot)

◆ SCULPT_OT_mask_init()

void SCULPT_OT_mask_init ( struct wmOperatorType ot)

◆ SCULPT_OT_mesh_filter()

void SCULPT_OT_mesh_filter ( struct wmOperatorType ot)

◆ SCULPT_OT_project_line_gesture()

void SCULPT_OT_project_line_gesture ( struct wmOperatorType ot)

◆ SCULPT_OT_sample_detail_size()

void SCULPT_OT_sample_detail_size ( struct wmOperatorType ot)

◆ SCULPT_OT_set_detail_size()

void SCULPT_OT_set_detail_size ( struct wmOperatorType ot)

◆ SCULPT_OT_set_pivot_position()

void SCULPT_OT_set_pivot_position ( struct wmOperatorType ot)

◆ SCULPT_OT_trim_box_gesture()

void SCULPT_OT_trim_box_gesture ( struct wmOperatorType ot)

◆ SCULPT_OT_trim_lasso_gesture()

void SCULPT_OT_trim_lasso_gesture ( struct wmOperatorType ot)

◆ SCULPT_pbvh_calc_area_normal()

bool SCULPT_pbvh_calc_area_normal ( const struct Brush brush,
Object ob,
PBVHNode **  nodes,
int  totnode,
bool  use_threading,
float  r_area_no[3] 
)

◆ SCULPT_pbvh_clear()

void SCULPT_pbvh_clear ( Object ob)

◆ SCULPT_plane_point_side()

int SCULPT_plane_point_side ( const float  co[3],
const float  plane[4] 
)

◆ SCULPT_plane_trim()

int SCULPT_plane_trim ( const struct StrokeCache cache,
const struct Brush brush,
const float  val[3] 
)

◆ SCULPT_poll()

bool SCULPT_poll ( struct bContext C)

Definition at line 6625 of file sculpt.c.

References C, paint_poll(), and SCULPT_mode_poll().

Referenced by SCULPT_OT_brush_stroke(), and SCULPT_poll_view3d().

◆ SCULPT_poll_view3d()

bool SCULPT_poll_view3d ( struct bContext C)

Definition at line 6620 of file sculpt.c.

References C, CTX_wm_region_view3d(), and SCULPT_poll().

◆ SCULPT_pose_brush_init()

void SCULPT_pose_brush_init ( struct Sculpt sd,
struct Object ob,
struct SculptSession ss,
struct Brush br 
)

◆ SCULPT_pose_calc_pose_data()

void SCULPT_pose_calc_pose_data ( Sculpt sd,
Object ob,
SculptSession ss,
float  initial_location[3],
float  radius,
float  pose_offset,
float r_pose_origin,
float r_pose_factor 
)

◆ SCULPT_pose_ik_chain_free()

void SCULPT_pose_ik_chain_free ( struct SculptPoseIKChain ik_chain)

◆ SCULPT_pose_ik_chain_init()

struct SculptPoseIKChain* SCULPT_pose_ik_chain_init ( struct Sculpt sd,
struct Object ob,
struct SculptSession ss,
struct Brush br,
const float  initial_location[3],
const float  radius 
)

◆ SCULPT_raycast_init()

float SCULPT_raycast_init ( struct ViewContext vc,
const float  mouse[2],
float  ray_start[3],
float  ray_end[3],
float  ray_normal[3],
bool  original 
)

◆ SCULPT_relax_vertex()

void SCULPT_relax_vertex ( struct SculptSession ss,
struct PBVHVertexIter vd,
float  factor,
bool  filter_boundary_face_sets,
float r_final_pos 
)

◆ SCULPT_search_circle_cb()

bool SCULPT_search_circle_cb ( PBVHNode node,
void *  data_v 
)

◆ SCULPT_search_sphere_cb()

bool SCULPT_search_sphere_cb ( PBVHNode node,
void *  data_v 
)

◆ SCULPT_smooth()

void SCULPT_smooth ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
const int  totnode,
float  bstrength,
const bool  smooth_mask 
)

◆ SCULPT_stroke_get_location()

bool SCULPT_stroke_get_location ( struct bContext C,
float  out[3],
const float  mouse[2] 
)

◆ SCULPT_stroke_is_dynamic_topology()

bool SCULPT_stroke_is_dynamic_topology ( const SculptSession ss,
const Brush brush 
)

◆ SCULPT_stroke_is_first_brush_step()

bool SCULPT_stroke_is_first_brush_step ( StrokeCache cache)

Return true only once per stroke on the first symmetry pass, regardless of the symmetry passes enabled.

This should be used for functionality that needs to be computed once per stroke of a particular tool (allocating memory, updating random seeds...).

Definition at line 926 of file sculpt.c.

References StrokeCache::first_time, StrokeCache::mirror_symmetry_pass, StrokeCache::radial_symmetry_pass, and StrokeCache::tile_pass.

Referenced by do_brush_action(), SCULPT_do_cloth_brush(), SCULPT_do_paint_brush(), SCULPT_do_smear_brush(), and SCULPT_enhance_details_brush().

◆ SCULPT_stroke_is_first_brush_step_of_symmetry_pass()

bool SCULPT_stroke_is_first_brush_step_of_symmetry_pass ( StrokeCache cache)

◆ SCULPT_stroke_is_main_symmetry_pass()

bool SCULPT_stroke_is_main_symmetry_pass ( StrokeCache cache)

Returns true when the step belongs to the stroke that is directly performed by the brush and not by one of the symmetry passes.

Definition at line 913 of file sculpt.c.

References StrokeCache::mirror_symmetry_pass, StrokeCache::radial_symmetry_pass, and StrokeCache::tile_pass.

Referenced by calc_sculpt_plane(), do_brush_action(), do_clay_thumb_brush(), and SCULPT_calc_brush_plane().

◆ SCULPT_stroke_modifiers_check()

void SCULPT_stroke_modifiers_check ( const bContext C,
Object ob,
const Brush brush 
)

◆ SCULPT_surface_smooth_displace_step()

void SCULPT_surface_smooth_displace_step ( SculptSession ss,
float co,
float(*)  laplacian_disp[3],
const int  v_index,
const float  beta,
const float  fade 
)

◆ SCULPT_surface_smooth_laplacian_step()

void SCULPT_surface_smooth_laplacian_step ( SculptSession ss,
float disp,
const float  co[3],
float(*)  laplacian_disp[3],
const int  v_index,
const float  origco[3],
const float  alpha 
)

◆ SCULPT_tag_update_overlays()

void SCULPT_tag_update_overlays ( bContext C)

◆ SCULPT_tilt_apply_to_normal()

void SCULPT_tilt_apply_to_normal ( float  r_normal[3],
struct StrokeCache cache,
const float  tilt_strength 
)

◆ SCULPT_tilt_effective_normal_get()

void SCULPT_tilt_effective_normal_get ( const SculptSession ss,
const Brush brush,
float  r_no[3] 
)

◆ SCULPT_tool_needs_all_pbvh_nodes()

BLI_INLINE bool SCULPT_tool_needs_all_pbvh_nodes ( const Brush brush)

◆ SCULPT_undo_get_first_node()

SculptUndoNode* SCULPT_undo_get_first_node ( void  )

Definition at line 941 of file sculpt_undo.c.

References ListBase::first, UndoSculpt::nodes, NULL, and sculpt_undo_get_nodes().

Referenced by sculpt_restore_mesh().

◆ SCULPT_undo_get_node()

SculptUndoNode* SCULPT_undo_get_node ( PBVHNode node)

◆ SCULPT_undo_push_begin()

void SCULPT_undo_push_begin ( struct Object ob,
const char *  name 
)

◆ SCULPT_undo_push_end()

void SCULPT_undo_push_end ( void  )

◆ SCULPT_undo_push_end_ex()

void SCULPT_undo_push_end_ex ( const bool  use_nested_undo)

◆ SCULPT_undo_push_node()

SculptUndoNode* SCULPT_undo_push_node ( Object ob,
PBVHNode node,
SculptUndoType  type 
)

Definition at line 1292 of file sculpt_undo.c.

References BKE_pbvh_node_get_grids(), BKE_pbvh_node_get_verts(), BKE_pbvh_node_num_verts(), BLI_assert, BLI_strncpy(), BLI_thread_lock(), BLI_thread_unlock(), SculptSession::bm, copy_v3_v3(), ELEM, SculptUndoNode::grids, SculptUndoNode::index, LOCK_CUSTOM1, KeyBlock::name, SculptSession::needs_flush_to_id, node, NULL, SculptSession::pbvh, SculptSession::pivot_pos, SculptUndoNode::pivot_pos, SculptSession::pivot_rot, SculptUndoNode::pivot_rot, Object::sculpt, sculpt_undo_alloc_node(), sculpt_undo_bmesh_push(), SCULPT_UNDO_COLOR, SCULPT_UNDO_COORDS, SCULPT_UNDO_DYNTOPO_BEGIN, SCULPT_UNDO_DYNTOPO_END, SCULPT_UNDO_DYNTOPO_SYMMETRIZE, SCULPT_UNDO_FACE_SETS, sculpt_undo_face_sets_push(), SCULPT_UNDO_GEOMETRY, sculpt_undo_geometry_push(), SCULPT_undo_get_node(), SCULPT_UNDO_HIDDEN, SCULPT_UNDO_MASK, sculpt_undo_store_color(), sculpt_undo_store_coords(), sculpt_undo_store_hidden(), sculpt_undo_store_mask(), SculptSession::shapekey_active, SculptUndoNode::shapeName, SculptUndoNode::totvert, and type.

Referenced by calc_area_normal_and_center_task_cb(), do_brush_action(), do_brush_action_task_cb(), do_mask_by_color_contiguous_update_nodes_cb(), do_mask_by_color_task_cb(), ED_object_sculptmode_enter_ex(), ED_sculpt_undo_geometry_begin(), ED_sculpt_undo_geometry_end(), ED_sculpt_undo_push_multires_mesh_begin(), ED_sculpt_undo_push_multires_mesh_end(), filter_cache_init_task_cb(), mask_flood_fill_task_cb(), mask_gesture_apply_task_cb(), mask_init_task_cb(), paint_mesh_restore_co_task_cb(), partialvis_update_bmesh(), partialvis_update_grids(), partialvis_update_mesh(), project_line_gesture_apply_task_cb(), sculpt_combine_proxies_task_cb(), sculpt_detail_flood_fill_exec(), sculpt_dirty_mask_exec(), sculpt_dynamic_topology_disable_with_undo(), sculpt_dynamic_topology_enable_with_undo(), sculpt_expand_undo_push(), sculpt_face_set_create_exec(), sculpt_face_set_edit_modify_coordinates(), sculpt_face_set_edit_modify_face_sets(), sculpt_face_set_init_exec(), sculpt_face_sets_change_visibility_exec(), sculpt_gesture_face_set_begin(), sculpt_gesture_trim_begin(), sculpt_gesture_trim_end(), sculpt_mask_expand_invoke(), sculpt_mask_filter_exec(), SCULPT_orig_vert_data_init(), sculpt_symmetrize_exec(), sculpt_topology_update(), sculpt_transform_task_cb(), and sculpt_undo_push_all_grids().

◆ SCULPT_update_object_bounding_box()

void SCULPT_update_object_bounding_box ( struct Object ob)

◆ SCULPT_vertcos_to_key()

void SCULPT_vertcos_to_key ( Object ob,
KeyBlock kb,
const float(*)  vertCos[3] 
)

◆ SCULPT_vertex_all_face_sets_visible_get()

bool SCULPT_vertex_all_face_sets_visible_get ( const SculptSession ss,
int  index 
)

◆ SCULPT_vertex_any_face_set_visible_get()

bool SCULPT_vertex_any_face_set_visible_get ( SculptSession ss,
int  index 
)

◆ SCULPT_vertex_co_for_grab_active_get()

const float* SCULPT_vertex_co_for_grab_active_get ( SculptSession ss,
int  index 
)

◆ SCULPT_vertex_co_get()

const float* SCULPT_vertex_co_get ( struct SculptSession ss,
int  index 
)

Definition at line 134 of file sculpt.c.

References BKE_pbvh_get_bmesh(), BKE_pbvh_get_grid_key(), BKE_pbvh_get_grids(), BKE_pbvh_get_verts(), BKE_pbvh_type(), BM_vert_at_index(), CCG_elem_co(), CCG_elem_offset(), BMVert::co, MVert::co, SculptSession::deform_modifiers_active, CCGKey::grid_area, SculptSession::mvert, NULL, SculptSession::pbvh, PBVH_BMESH, PBVH_FACES, PBVH_GRIDS, and SculptSession::shapekey_active.

Referenced by automask_floodfill_cb(), boundary_floodfill_cb(), boundary_initial_vertex_floodfill_cb(), cloth_brush_add_length_constraint(), do_boundary_brush_smooth_task_cb_ex(), do_displacement_smear_brush(), do_displacement_smear_store_prev_disp_task_cb_ex(), do_smear_brush_task_cb_exec(), do_topology_slide_task_cb_ex(), dyntopo_detail_size_sample_from_surface(), mesh_filter_enhance_details_init_directions(), mesh_filter_sharpen_init(), mesh_filter_task_cb(), neighbor_dirty_mask(), paint_cursor_draw_3d_view_brush_cursor_inactive(), paint_cursor_preview_boundary_data_pivot_draw(), pose_face_sets_floodfill_cb(), pose_ik_chain_init_face_sets(), pose_ik_chain_init_face_sets_fk(), pose_topology_floodfill_cb(), sample_detail_voxel(), SCULPT_active_vertex_co_get(), sculpt_boundary_bend_data_init(), SCULPT_boundary_edges_preview_draw(), sculpt_boundary_edit_data_init(), sculpt_boundary_indices_init(), SCULPT_boundary_pivot_line_preview_draw(), sculpt_boundary_slide_data_init(), sculpt_boundary_twist_data_init(), SCULPT_cloth_brush_simulation_init(), SCULPT_cloth_brush_store_simulation_state(), sculpt_cloth_filter_modal(), SCULPT_enhance_details_brush(), sculpt_expand_falloff_value_vertex_get(), sculpt_expand_get_vertex_index_for_symmetry_pass(), sculpt_expand_reposition_pivot(), sculpt_expand_spherical_falloff_create(), SCULPT_fake_neighbor_search(), SCULPT_floodfill_add_initial_with_symmetry(), SCULPT_geodesic_fallback_create(), SCULPT_geodesic_from_vertex_and_symm(), sculpt_gesture_trim_calculate_depth(), SCULPT_neighbor_coords_average(), SCULPT_neighbor_coords_average_interior(), SCULPT_relax_vertex(), sculpt_set_persistent_base_exec(), SCULPT_vertex_co_for_grab_active_get(), SCULPT_vertex_limit_surface_get(), and SCULPT_vertex_persistent_co_get().

◆ SCULPT_vertex_color_get()

const float* SCULPT_vertex_color_get ( SculptSession ss,
int  index 
)

◆ SCULPT_vertex_colors_poll()

bool SCULPT_vertex_colors_poll ( struct bContext C)

◆ SCULPT_vertex_count_get()

int SCULPT_vertex_count_get ( struct SculptSession ss)

Definition at line 120 of file sculpt.c.

References BKE_pbvh_get_bmesh(), BKE_pbvh_get_grid_num_vertices(), BKE_pbvh_type(), BM_mesh_elem_count(), BM_VERT, SculptSession::pbvh, PBVH_BMESH, PBVH_FACES, PBVH_GRIDS, and SculptSession::totvert.

Referenced by cloth_brush_apply_brush_foces(), do_brush_action(), do_displacement_smear_brush(), do_layer_brush(), mesh_filter_enhance_details_init_directions(), mesh_filter_init_limit_surface_co(), mesh_filter_sharpen_init(), mesh_filter_surface_smooth_init(), pose_ik_chain_init_face_sets(), pose_ik_chain_init_face_sets_fk(), pose_ik_chain_init_topology(), SCULPT_automasking_cache_init(), SCULPT_boundary_automasking_init(), sculpt_boundary_bend_data_init(), sculpt_boundary_edit_data_init(), sculpt_boundary_falloff_factor_init(), sculpt_boundary_get_closest_boundary_vertex(), sculpt_boundary_indices_init(), sculpt_boundary_slide_data_init(), SCULPT_cloth_brush_simulation_create(), SCULPT_cloth_brush_simulation_init(), SCULPT_cloth_brush_store_simulation_state(), sculpt_cloth_filter_modal(), SCULPT_connected_components_ensure(), SCULPT_do_smear_brush(), SCULPT_enhance_details_brush(), sculpt_expand_bitmap_from_enabled(), sculpt_expand_boundary_from_enabled(), sculpt_expand_boundary_topology_falloff_create(), sculpt_expand_diagonals_falloff_create(), sculpt_expand_geodesics_from_state_boundary(), sculpt_expand_initialize_from_face_set_boundary(), sculpt_expand_invoke(), sculpt_expand_modal(), sculpt_expand_normal_falloff_create(), sculpt_expand_original_state_store(), sculpt_expand_reposition_pivot(), sculpt_expand_spherical_falloff_create(), sculpt_expand_topology_falloff_create(), sculpt_expand_topology_from_state_boundary(), sculpt_expand_update_max_vert_falloff_value(), sculpt_face_set_create_exec(), sculpt_face_set_edit_fair_face_set(), sculpt_face_sets_automasking_init(), sculpt_face_sets_change_visibility_exec(), SCULPT_fake_neighbor_init(), SCULPT_fake_neighbors_ensure(), SCULPT_floodfill_init(), SCULPT_geometry_preview_lines_update(), sculpt_gesture_trim_calculate_depth(), sculpt_mask_by_color_contiguous(), sculpt_mask_expand_invoke(), sculpt_mask_filter_exec(), sculpt_pose_grow_pose_factor(), sculpt_set_persistent_base_exec(), and SCULPT_topology_automasking_init().

◆ SCULPT_vertex_face_set_get()

int SCULPT_vertex_face_set_get ( SculptSession ss,
int  index 
)

◆ SCULPT_vertex_face_set_set()

void SCULPT_vertex_face_set_set ( SculptSession ss,
int  index,
int  face_set 
)

◆ SCULPT_vertex_has_face_set()

bool SCULPT_vertex_has_face_set ( SculptSession ss,
int  index,
int  face_set 
)

◆ SCULPT_vertex_has_unique_face_set()

bool SCULPT_vertex_has_unique_face_set ( SculptSession ss,
int  index 
)

◆ SCULPT_vertex_is_boundary()

bool SCULPT_vertex_is_boundary ( const SculptSession ss,
const int  index 
)

◆ SCULPT_vertex_limit_surface_get()

void SCULPT_vertex_limit_surface_get ( SculptSession ss,
int  index,
float  r_co[3] 
)

◆ SCULPT_vertex_mask_get()

float SCULPT_vertex_mask_get ( struct SculptSession ss,
int  index 
)

◆ SCULPT_vertex_neighbors_get()

void SCULPT_vertex_neighbors_get ( struct SculptSession ss,
const int  index,
const bool  include_duplicates,
SculptVertexNeighborIter iter 
)

◆ SCULPT_vertex_normal_get()

void SCULPT_vertex_normal_get ( SculptSession ss,
int  index,
float  no[3] 
)

◆ SCULPT_vertex_persistent_co_get()

const float* SCULPT_vertex_persistent_co_get ( SculptSession ss,
int  index 
)

◆ SCULPT_vertex_persistent_normal_get()

void SCULPT_vertex_persistent_normal_get ( SculptSession ss,
int  index,
float  no[3] 
)

◆ SCULPT_vertex_random_access_ensure()

void SCULPT_vertex_random_access_ensure ( struct SculptSession ss)

◆ SCULPT_vertex_visible_get()

bool SCULPT_vertex_visible_get ( SculptSession ss,
int  index 
)

◆ SCULPT_vertex_visible_set()

void SCULPT_vertex_visible_set ( SculptSession ss,
int  index,
bool  visible 
)

◆ SCULPT_visibility_sync_all_face_sets_to_vertices()

void SCULPT_visibility_sync_all_face_sets_to_vertices ( struct Object ob)

◆ SCULPT_visibility_sync_all_vertex_to_face_sets()

void SCULPT_visibility_sync_all_vertex_to_face_sets ( struct SculptSession ss)