Blender V5.0
blender::ed::sculpt_paint::StrokeCache Struct Reference

#include <sculpt_intern.hh>

Public Member Functions

 StrokeCache ()
 ~StrokeCache ()

Public Attributes

float initial_radius = 0.0f
float3 scale = float3(0)
struct { 
   uint8_t   flag = 0 
   float3   tolerance = float3(0) 
   float4x4   mat = float4x4::identity() 
   float4x4   mat_inv = float4x4::identity() 
mirror_modifier_clip
float2 initial_mouse = float2(0)
bool initial_direction_flipped = false
float radius = 0.0f
float radius_squared = 0.0f
float3 location = float3(0)
float3 last_location = float3(0)
float3 location_symm = float3(0)
float3 last_location_symm = float3(0)
float stroke_distance = 0.0f
int iteration_count = 0
float dyntopo_pixel_radius = 0.0f
bool is_last_valid = false
bool pen_flip = false
bool invert = false
float pressure = 0.0f
float hardness = 0.0f
float bstrength = 0.0f
float normal_weight = 0.0f
float2 tilt = float2(0)
float2 mouse = float2(0)
float2 mouse_event = float2(0)
struct { 
   Array< float3 >   prev_displacement 
   Array< float3 >   limit_surface_co 
displacement_smear
std::optional< blender::float3initial_hsv_jitter
bool first_time = false
float4x4 projection_mat = float4x4::identity()
ViewContextvc = nullptr
const Brushbrush = nullptr
const Paintpaint = nullptr
float special_rotation = 0.0f
float3 grab_delta = float3(0)
float3 grab_delta_symm = float3(0)
float3 old_grab_location = float3(0)
float3 orig_grab_location = float3(0)
std::optional< math::Quaternionrake_rotation
std::optional< math::Quaternionrake_rotation_symm
SculptRakeData rake_data
int paint_face_set = SCULPT_FACE_SET_NONE
int symmetry = 0
ePaintSymmetryFlags mirror_symmetry_pass = ePaintSymmetryFlags(0)
float3 view_normal = float3(0)
float3 view_normal_symm = float3(0)
float3 sculpt_normal = float3(0)
float3 sculpt_normal_symm = float3(0)
float4x4 brush_local_mat = float4x4::identity()
float4x4 brush_local_mat_inv = float4x4::identity()
float3 plane_offset = float3(0)
int tile_pass = 0
float3 last_center = float3(0)
int radial_symmetry_pass = 0
float4x4 symm_rot_mat = float4x4::identity()
float4x4 symm_rot_mat_inv = float4x4::identity()
bool accum = false
struct { 
   float   flow = 0.0f 
   float4   wet_mix_prev_color = float4(0) 
   float   wet_mix = 0.0f 
   float   wet_persistence = 0.0f 
   std::optional< float >   density_seed 
   float   density = 0.0f 
   Array< float4 >   mix_colors 
   Array< float4 >   prev_colors 
paint_brush
std::unique_ptr< pose::IKChainpose_ik_chain
Array< float3detail_directions
struct { 
   float   front_angle = 0.0f 
   std::array< float, 10 >   pressure_stabilizer 
   int   stabilizer_index = 0 
clay_thumb_brush
struct { 
   std::optional< float3 >   last_normal 
   std::optional< float3 >   last_center 
   Array< float3 >   normals 
   Array< float3 >   centers 
   int   normal_index = 0 
   int   center_index = 0 
   bool   first_time = false 
plane_brush
std::unique_ptr< cloth::SimulationDatacloth_sim
float3 initial_location_symm = float3(0)
float3 initial_location = float3(0)
float3 initial_normal_symm = float3(0)
float3 initial_normal = float3(0)
std::array< std::unique_ptr< boundary::SculptBoundary >, PAINT_SYMM_AREASboundaries
Array< float3surface_smooth_laplacian_disp
Array< floatlayer_displacement_factor
float vertex_rotation = 0.0f
Dialdial = nullptr
Brushsaved_active_brush = nullptr
char saved_mask_brush_tool = 0
int saved_smooth_size = 0
bool alt_smooth = false
float plane_trim_squared = 0.0f
bool supports_gravity = false
float3 gravity_direction = float3(0)
float3 gravity_direction_symm = float3(0)
std::unique_ptr< auto_mask::Cacheautomasking
float4x4 stroke_local_mat = float4x4::identity()
float multiplane_scrape_angle = 0.0f

Detailed Description

This structure contains all the temporary data needed for individual brush strokes.

Definition at line 156 of file sculpt_intern.hh.

Constructor & Destructor Documentation

◆ StrokeCache()

blender::ed::sculpt_paint::StrokeCache::StrokeCache ( )
default

◆ ~StrokeCache()

blender::ed::sculpt_paint::StrokeCache::~StrokeCache ( )

Definition at line 3814 of file sculpt.cc.

References BLI_dial_free(), and dial.

Member Data Documentation

◆ accum

◆ alt_smooth

◆ automasking

std::unique_ptr<auto_mask::Cache> blender::ed::sculpt_paint::StrokeCache::automasking

Definition at line 405 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::auto_mask::active_cache_get(), blender::ed::sculpt_paint::boundary::calc_bend_bmesh(), blender::ed::sculpt_paint::boundary::calc_bend_grids(), blender::ed::sculpt_paint::boundary::calc_bend_mesh(), blender::ed::sculpt_paint::brushes::calc_bmesh(), blender::ed::sculpt_paint::pose::calc_bmesh(), blender::ed::sculpt_paint::brushes::calc_faces(), blender::ed::sculpt_paint::calc_factors_common_bmesh(), blender::ed::sculpt_paint::calc_factors_common_from_orig_data_bmesh(), blender::ed::sculpt_paint::calc_factors_common_from_orig_data_grids(), blender::ed::sculpt_paint::calc_factors_common_from_orig_data_mesh(), blender::ed::sculpt_paint::calc_factors_common_grids(), blender::ed::sculpt_paint::calc_factors_common_mesh(), blender::ed::sculpt_paint::calc_factors_common_mesh_indexed(), blender::ed::sculpt_paint::boundary::calc_grab_bmesh(), blender::ed::sculpt_paint::boundary::calc_grab_grids(), blender::ed::sculpt_paint::boundary::calc_grab_mesh(), blender::ed::sculpt_paint::brushes::calc_grids(), blender::ed::sculpt_paint::pose::calc_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_bmesh(), blender::ed::sculpt_paint::boundary::calc_inflate_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_mesh(), blender::ed::sculpt_paint::pose::calc_mesh(), blender::ed::sculpt_paint::boundary::calc_slide_bmesh(), blender::ed::sculpt_paint::boundary::calc_slide_grids(), blender::ed::sculpt_paint::boundary::calc_slide_mesh(), blender::ed::sculpt_paint::boundary::calc_twist_bmesh(), blender::ed::sculpt_paint::boundary::calc_twist_grids(), blender::ed::sculpt_paint::boundary::calc_twist_mesh(), blender::ed::sculpt_paint::color::do_color_smooth_task(), blender::ed::sculpt_paint::color::do_paint_brush_task(), blender::ed::sculpt_paint::color::do_smear_brush_task(), blender::ed::sculpt_paint::brushes::sample_node_surface_bmesh(), blender::ed::sculpt_paint::brushes::sample_node_surface_grids(), blender::ed::sculpt_paint::brushes::sample_node_surface_mesh(), and blender::ed::sculpt_paint::auto_mask::stroke_cache_ensure().

◆ boundaries

◆ brush

◆ brush_local_mat

float4x4 blender::ed::sculpt_paint::StrokeCache::brush_local_mat = float4x4::identity()

Used for area texture mode, local_mat gets calculated by calc_brush_local_mat() and used in sculpt_apply_texture(). Transforms from model-space coords to local area coords.

Definition at line 288 of file sculpt_intern.hh.

Referenced by sculpt_apply_texture(), and update_brush_local_mat().

◆ brush_local_mat_inv

float4x4 blender::ed::sculpt_paint::StrokeCache::brush_local_mat_inv = float4x4::identity()

The matrix from local area coords to model-space coords is used to calculate the vector displacement in area plane mode.

Definition at line 293 of file sculpt_intern.hh.

Referenced by SCULPT_calc_vertex_displacement(), and update_brush_local_mat().

◆ bstrength

float blender::ed::sculpt_paint::StrokeCache::bstrength = 0.0f

Depending on the mode, can either be the raw brush strength, or a scaled (possibly negative) value.

See also
brush_strength for Sculpt Mode.

Definition at line 214 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::cloth::calc_forces_bmesh(), blender::ed::sculpt_paint::cloth::calc_forces_grids(), blender::ed::sculpt_paint::cloth::calc_forces_mesh(), blender::ed::sculpt_paint::brushes::clay_strips::calc_node_mask(), blender::ed::sculpt_paint::pose::calc_twist_deform(), blender::ed::sculpt_paint::do_brush_action(), blender::ed::sculpt_paint::brushes::do_clay_brush(), blender::ed::sculpt_paint::brushes::do_clay_strips_brush(), blender::ed::sculpt_paint::brushes::do_clay_thumb_brush(), blender::ed::sculpt_paint::color::do_color_smooth_task(), blender::ed::sculpt_paint::brushes::do_displacement_eraser_brush(), blender::ed::sculpt_paint::brushes::do_displacement_smear_brush(), blender::ed::sculpt_paint::brushes::do_draw_brush(), blender::ed::sculpt_paint::brushes::do_draw_sharp_brush(), blender::ed::sculpt_paint::brushes::do_elastic_deform_brush(), blender::ed::sculpt_paint::brushes::do_enhance_details_brush(), blender::ed::sculpt_paint::brushes::do_grab_brush(), blender::ed::sculpt_paint::brushes::do_inflate_brush(), blender::ed::sculpt_paint::brushes::do_mask_brush(), blender::ed::sculpt_paint::brushes::do_multiplane_scrape_brush(), blender::ed::sculpt_paint::brushes::do_nudge_brush(), blender::ed::sculpt_paint::color::do_paint_brush_task(), blender::ed::sculpt_paint::paint::image::do_paint_pixels(), blender::ed::sculpt_paint::brushes::do_pinch_brush(), blender::ed::sculpt_paint::brushes::do_plane_brush(), blender::ed::sculpt_paint::brushes::do_relax_face_sets_brush(), blender::ed::sculpt_paint::color::do_smear_brush(), blender::ed::sculpt_paint::color::do_smear_brush_task(), blender::ed::sculpt_paint::brushes::do_snake_hook_brush(), blender::ed::sculpt_paint::do_symmetrical_brush_actions(), blender::ed::sculpt_paint::brushes::do_thumb_brush(), blender::ed::sculpt_paint::brushes::do_topology_relax_brush(), do_vpaint_brush_blur_loops(), do_vpaint_brush_blur_verts(), do_vpaint_brush_smear(), do_wpaint_brush_smear(), blender::ed::sculpt_paint::boundary::get_mesh_strength(), SCULPT_calc_vertex_displacement(), blender::ed::sculpt_paint::sculpt_update_cache_variants(), blender::ed::sculpt_paint::vwpaint::update_cache_invariants(), and vpaint_do_draw().

◆ center_index

int blender::ed::sculpt_paint::StrokeCache::center_index = 0

Definition at line 352 of file sculpt_intern.hh.

◆ centers

Array<float3> blender::ed::sculpt_paint::StrokeCache::centers

Definition at line 350 of file sculpt_intern.hh.

◆ [struct]

◆ cloth_sim

std::unique_ptr<cloth::SimulationData> blender::ed::sculpt_paint::StrokeCache::cloth_sim

Definition at line 366 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::boundary::calc_bend_bmesh(), blender::ed::sculpt_paint::boundary::calc_bend_grids(), blender::ed::sculpt_paint::boundary::calc_bend_mesh(), blender::ed::sculpt_paint::pose::calc_bmesh(), blender::ed::sculpt_paint::cloth::calc_forces_bmesh(), blender::ed::sculpt_paint::cloth::calc_forces_grids(), blender::ed::sculpt_paint::cloth::calc_forces_mesh(), blender::ed::sculpt_paint::boundary::calc_grab_bmesh(), blender::ed::sculpt_paint::boundary::calc_grab_grids(), blender::ed::sculpt_paint::boundary::calc_grab_mesh(), blender::ed::sculpt_paint::pose::calc_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_bmesh(), blender::ed::sculpt_paint::boundary::calc_inflate_grids(), blender::ed::sculpt_paint::boundary::calc_inflate_mesh(), blender::ed::sculpt_paint::pose::calc_mesh(), blender::ed::sculpt_paint::boundary::calc_slide_bmesh(), blender::ed::sculpt_paint::boundary::calc_slide_grids(), blender::ed::sculpt_paint::boundary::calc_slide_mesh(), blender::ed::sculpt_paint::boundary::calc_smooth_bmesh(), blender::ed::sculpt_paint::boundary::calc_smooth_grids(), blender::ed::sculpt_paint::boundary::calc_smooth_mesh(), blender::ed::sculpt_paint::boundary::calc_twist_bmesh(), blender::ed::sculpt_paint::boundary::calc_twist_grids(), blender::ed::sculpt_paint::boundary::calc_twist_mesh(), blender::ed::sculpt_paint::cloth::cloth_brush_apply_brush_forces(), blender::ed::sculpt_paint::do_brush_action(), blender::ed::sculpt_paint::cloth::do_cloth_brush(), and blender::ed::sculpt_paint::cloth::sculpt_cloth_ensure_constraints_in_simulation_area().

◆ density

float blender::ed::sculpt_paint::StrokeCache::density = 0.0f

◆ density_seed

std::optional<float> blender::ed::sculpt_paint::StrokeCache::density_seed

◆ detail_directions

Array<float3> blender::ed::sculpt_paint::StrokeCache::detail_directions

◆ dial

◆ [struct]

struct { ... } blender::ed::sculpt_paint::StrokeCache::displacement_smear

◆ dyntopo_pixel_radius

float blender::ed::sculpt_paint::StrokeCache::dyntopo_pixel_radius = 0.0f

◆ first_time

bool blender::ed::sculpt_paint::StrokeCache::first_time = false

True if the current step is the first time the Plane brush is being evaluated.

We cannot use the generic first_time variable used by other brushes because the Plane brush uses grab_delta to compute its local matrix. Since grab_delta requires at least two stroke steps, the first step (and successive steps if the user does not move the cursor) of the Plane brush is always skipped.

Definition at line 237 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::color::do_paint_brush(), SCULPT_stroke_is_first_brush_step(), SCULPT_stroke_is_first_brush_step_of_symmetry_pass(), blender::ed::sculpt_paint::sculpt_update_cache_invariants(), blender::ed::sculpt_paint::sculpt_update_cache_variants(), blender::ed::sculpt_paint::stroke_update_step(), blender::ed::sculpt_paint::vwpaint::update_cache_invariants(), and blender::ed::sculpt_paint::vwpaint::update_cache_variants().

◆ flag

◆ flow

float blender::ed::sculpt_paint::StrokeCache::flow = 0.0f

◆ front_angle

float blender::ed::sculpt_paint::StrokeCache::front_angle = 0.0f

◆ grab_delta

◆ grab_delta_symm

◆ gravity_direction

float3 blender::ed::sculpt_paint::StrokeCache::gravity_direction = float3(0)

◆ gravity_direction_symm

float3 blender::ed::sculpt_paint::StrokeCache::gravity_direction_symm = float3(0)

◆ hardness

◆ initial_direction_flipped

bool blender::ed::sculpt_paint::StrokeCache::initial_direction_flipped = false

Some brushes change behavior drastically depending on the directional value (i.e. the smooth and enhance details functionality being bound to the Smooth brush).

Storing the initial direction allows discerning the behavior without checking the sign of the brush direction at every step, which would have ambiguity at 0.

Definition at line 175 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::do_brush_action(), blender::ed::sculpt_paint::brushes::do_plane_brush(), and blender::ed::sculpt_paint::sculpt_update_cache_invariants().

◆ initial_hsv_jitter

◆ initial_location

◆ initial_location_symm

◆ initial_mouse

◆ initial_normal

◆ initial_normal_symm

◆ initial_radius

◆ invert

◆ is_last_valid

◆ iteration_count

int blender::ed::sculpt_paint::StrokeCache::iteration_count = 0

Used for alternating between deformations in brushes that need to apply different ones to achieve certain effects.

Definition at line 190 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::brushes::do_relax_face_sets_brush(), and blender::ed::sculpt_paint::sculpt_update_cache_variants().

◆ last_center [1/2]

std::optional<float3> blender::ed::sculpt_paint::StrokeCache::last_center

Definition at line 348 of file sculpt_intern.hh.

◆ last_center [2/2]

float3 blender::ed::sculpt_paint::StrokeCache::last_center = float3(0)

Definition at line 299 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::calc_brush_plane().

◆ last_location

◆ last_location_symm

◆ last_normal

std::optional<float3> blender::ed::sculpt_paint::StrokeCache::last_normal

Definition at line 347 of file sculpt_intern.hh.

◆ layer_displacement_factor

Array<float> blender::ed::sculpt_paint::StrokeCache::layer_displacement_factor

◆ limit_surface_co

Array<float3> blender::ed::sculpt_paint::StrokeCache::limit_surface_co

◆ location

◆ location_symm

float3 blender::ed::sculpt_paint::StrokeCache::location_symm = float3(0)

Definition at line 182 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::cloth::add_constraints_for_verts(), blender::ed::sculpt_paint::cloth::brush_affected_nodes_gather(), blender::ed::sculpt_paint::calc_area_normal_and_center_node_bmesh(), blender::ed::sculpt_paint::calc_area_normal_and_center_node_grids(), blender::ed::sculpt_paint::calc_area_normal_and_center_node_mesh(), blender::ed::sculpt_paint::calc_brush_distances_squared(), blender::ed::sculpt_paint::calc_brush_distances_squared(), blender::ed::sculpt_paint::calc_brush_local_mat(), blender::ed::sculpt_paint::cloth::calc_forces_bmesh(), blender::ed::sculpt_paint::cloth::calc_forces_grids(), blender::ed::sculpt_paint::cloth::calc_forces_mesh(), blender::ed::sculpt_paint::brushes::clay_strips::calc_node_mask(), blender::ed::sculpt_paint::brushes::plane::calc_node_mask(), blender::ed::sculpt_paint::cloth::cloth_brush_apply_brush_forces(), blender::ed::sculpt_paint::cloth::cloth_brush_simulation_location_get(), blender::ed::sculpt_paint::do_brush_action(), blender::ed::sculpt_paint::brushes::do_clay_brush(), blender::ed::sculpt_paint::brushes::do_clay_thumb_brush(), blender::ed::sculpt_paint::brushes::do_multiplane_scrape_brush(), blender::ed::sculpt_paint::color::do_paint_brush(), blender::ed::sculpt_paint::brushes::do_pinch_brush(), blender::ed::sculpt_paint::color::do_smear_brush_task(), blender::ed::sculpt_paint::do_tiled(), do_vpaint_brush_smear(), do_wpaint_brush_smear(), blender::ed::sculpt_paint::dynamic_topology_update(), blender::ed::sculpt_paint::paint::image::init_uv_primitives_brush_test(), blender::ed::sculpt_paint::pbvh_gather_cursor_update(), blender::ed::sculpt_paint::pbvh_gather_generic(), blender::ed::sculpt_paint::vwpaint::pbvh_gather_generic(), and SCULPT_cache_calc_brushdata_symm().

◆ mat

◆ mat_inv

◆ [struct]

◆ mirror_symmetry_pass

◆ mix_colors

Array<float4> blender::ed::sculpt_paint::StrokeCache::mix_colors

Used by the color attribute paint brush tool to store the brush color during a stroke and composite it over the original color.

Definition at line 325 of file sculpt_intern.hh.

Referenced by restore_from_undo_step_if_necessary().

◆ mouse

◆ mouse_event

◆ multiplane_scrape_angle

float blender::ed::sculpt_paint::StrokeCache::multiplane_scrape_angle = 0.0f

◆ normal_index

int blender::ed::sculpt_paint::StrokeCache::normal_index = 0

Definition at line 351 of file sculpt_intern.hh.

◆ normal_weight

◆ normals

Array<float3> blender::ed::sculpt_paint::StrokeCache::normals

Definition at line 349 of file sculpt_intern.hh.

◆ old_grab_location

float3 blender::ed::sculpt_paint::StrokeCache::old_grab_location = float3(0)

Definition at line 250 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::brush_delta_update().

◆ orig_grab_location

float3 blender::ed::sculpt_paint::StrokeCache::orig_grab_location = float3(0)

◆ paint

◆ [struct]

◆ paint_face_set

◆ pen_flip

◆ [struct]

struct { ... } blender::ed::sculpt_paint::StrokeCache::plane_brush

◆ plane_offset

float3 blender::ed::sculpt_paint::StrokeCache::plane_offset = float3(0)

◆ plane_trim_squared

float blender::ed::sculpt_paint::StrokeCache::plane_trim_squared = 0.0f

◆ pose_ik_chain

◆ pressure

◆ pressure_stabilizer

std::array<float, 10> blender::ed::sculpt_paint::StrokeCache::pressure_stabilizer

◆ prev_colors

Array<float4> blender::ed::sculpt_paint::StrokeCache::prev_colors

◆ prev_displacement

Array<float3> blender::ed::sculpt_paint::StrokeCache::prev_displacement

◆ projection_mat

◆ radial_symmetry_pass

◆ radius

float blender::ed::sculpt_paint::StrokeCache::radius = 0.0f

Definition at line 178 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::cloth::add_constraints_for_verts(), blender::ed::sculpt_paint::apply_hardness_to_distances(), blender::ed::sculpt_paint::area_normal_and_center_get_normal_radius(), blender::ed::sculpt_paint::area_normal_and_center_get_position_radius(), blender::ed::sculpt_paint::cloth::brush_affected_nodes_gather(), blender::ed::sculpt_paint::brush_delta_update(), blender::ed::sculpt_paint::brushes::calc_bmesh(), blender::ed::sculpt_paint::calc_brush_local_mat(), blender::ed::sculpt_paint::calc_brush_strength_factors(), blender::ed::sculpt_paint::cloth::calc_constraint_factors(), blender::ed::sculpt_paint::brushes::calc_faces(), blender::ed::sculpt_paint::calc_factors_common_bmesh(), blender::ed::sculpt_paint::calc_factors_common_from_orig_data_bmesh(), blender::ed::sculpt_paint::calc_factors_common_from_orig_data_grids(), blender::ed::sculpt_paint::calc_factors_common_from_orig_data_mesh(), blender::ed::sculpt_paint::calc_factors_common_grids(), blender::ed::sculpt_paint::calc_factors_common_mesh(), blender::ed::sculpt_paint::calc_factors_common_mesh_indexed(), blender::ed::sculpt_paint::cloth::calc_forces_bmesh(), blender::ed::sculpt_paint::cloth::calc_forces_grids(), blender::ed::sculpt_paint::cloth::calc_forces_mesh(), blender::ed::sculpt_paint::brushes::calc_grids(), blender::ed::sculpt_paint::brushes::clay_strips::calc_local_matrix(), blender::ed::sculpt_paint::brushes::clay_strips::calc_node_mask(), calc_overlap(), calculate_average_color(), blender::ed::sculpt_paint::cloth::cloth_brush_apply_brush_forces(), blender::ed::sculpt_paint::brushes::do_clay_strips_brush(), blender::ed::sculpt_paint::brushes::do_clay_thumb_brush(), blender::ed::sculpt_paint::color::do_color_smooth_task(), blender::ed::sculpt_paint::brushes::do_draw_brush(), blender::ed::sculpt_paint::brushes::do_draw_sharp_brush(), blender::ed::sculpt_paint::brushes::do_elastic_deform_brush(), blender::ed::sculpt_paint::brushes::do_inflate_brush(), blender::ed::sculpt_paint::brushes::do_multiplane_scrape_brush(), blender::ed::sculpt_paint::color::do_paint_brush_task(), blender::ed::sculpt_paint::paint::image::do_paint_pixels(), blender::ed::sculpt_paint::brushes::do_plane_brush(), blender::ed::sculpt_paint::color::do_sample_wet_paint_task(), blender::ed::sculpt_paint::color::do_smear_brush_task(), blender::ed::sculpt_paint::do_tiled(), do_vpaint_brush_blur_loops(), do_vpaint_brush_blur_verts(), do_vpaint_brush_smear(), do_wpaint_brush_smear(), blender::ed::sculpt_paint::dynamic_topology_update(), blender::ed::sculpt_paint::auto_mask::fill_topology_automasking_factors_bmesh(), blender::ed::sculpt_paint::auto_mask::fill_topology_automasking_factors_grids(), blender::ed::sculpt_paint::auto_mask::fill_topology_automasking_factors_mesh(), blender::ed::sculpt_paint::boundary::get_mesh_strength(), blender::ed::sculpt_paint::paint::image::init_uv_primitives_brush_test(), blender::ed::sculpt_paint::brushes::multiplane_scrape_preview_draw(), blender::ed::sculpt_paint::paint_cursor_cursor_draw_3d_view_brush_cursor_active(), blender::ed::sculpt_paint::pbvh_gather_generic(), blender::ed::sculpt_paint::cloth::plane_falloff_preview_draw(), blender::ed::sculpt_paint::pose::pose_brush_init(), blender::ed::sculpt_paint::brushes::sample_node_surface_bmesh(), blender::ed::sculpt_paint::brushes::sample_node_surface_grids(), blender::ed::sculpt_paint::brushes::sample_node_surface_mesh(), SCULPT_cube_tip_init(), blender::ed::sculpt_paint::sculpt_update_cache_variants(), blender::ed::sculpt_paint::cloth::solve_verts_simulation(), blender::ed::sculpt_paint::vwpaint::update_cache_variants(), and vpaint_do_draw().

◆ radius_squared

◆ rake_data

SculptRakeData blender::ed::sculpt_paint::StrokeCache::rake_data

Definition at line 256 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::brush_delta_update().

◆ rake_rotation

std::optional<math::Quaternion> blender::ed::sculpt_paint::StrokeCache::rake_rotation

◆ rake_rotation_symm

std::optional<math::Quaternion> blender::ed::sculpt_paint::StrokeCache::rake_rotation_symm

◆ saved_active_brush

◆ saved_mask_brush_tool

char blender::ed::sculpt_paint::StrokeCache::saved_mask_brush_tool = 0

◆ saved_smooth_size

◆ scale

◆ sculpt_normal

float3 blender::ed::sculpt_paint::StrokeCache::sculpt_normal = float3(0)

The primary direction of influence for a brush stroke.

May be unused for some brushes (e.g. Smooth) May be only calculated at the beginning of a stroke (e.g. Grab)

Calculated by either calc_sculpt_normal or calc_brush_plane.

Definition at line 280 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::calc_brush_local_mat(), blender::ed::sculpt_paint::calc_brush_plane(), and blender::ed::sculpt_paint::update_sculpt_normal().

◆ sculpt_normal_symm

◆ special_rotation

float blender::ed::sculpt_paint::StrokeCache::special_rotation = 0.0f

◆ stabilizer_index

int blender::ed::sculpt_paint::StrokeCache::stabilizer_index = 0

◆ stroke_distance

float blender::ed::sculpt_paint::StrokeCache::stroke_distance = 0.0f

◆ stroke_local_mat

◆ supports_gravity

◆ surface_smooth_laplacian_disp

Array<float3> blender::ed::sculpt_paint::StrokeCache::surface_smooth_laplacian_disp

◆ symm_rot_mat

◆ symm_rot_mat_inv

◆ symmetry

int blender::ed::sculpt_paint::StrokeCache::symmetry = 0

Symmetry index between 0 and 7 bit combo.

0 is Brush only; 1 is X mirror; 2 is Y mirror; 3 is XY; 4 is Z; 5 is XZ; 6 is YZ; 7 is XYZ.

Definition at line 266 of file sculpt_intern.hh.

Referenced by calc_symmetry_feather(), blender::ed::sculpt_paint::do_symmetrical_brush_actions(), vpaint_do_symmetrical_brush_actions(), and wpaint_do_symmetrical_brush_actions().

◆ tile_pass

int blender::ed::sculpt_paint::StrokeCache::tile_pass = 0

◆ tilt

float2 blender::ed::sculpt_paint::StrokeCache::tilt = float2(0)

◆ tolerance

◆ vc

◆ vertex_rotation

float blender::ed::sculpt_paint::StrokeCache::vertex_rotation = 0.0f

◆ view_normal

◆ view_normal_symm

float3 blender::ed::sculpt_paint::StrokeCache::view_normal_symm = float3(0)

Definition at line 270 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::calc_area_normal_and_center_node_bmesh(), blender::ed::sculpt_paint::calc_area_normal_and_center_node_grids(), blender::ed::sculpt_paint::calc_area_normal_and_center_node_mesh(), blender::ed::sculpt_paint::brushes::calc_bmesh(), blender::ed::sculpt_paint::calc_brush_distances_squared(), blender::ed::sculpt_paint::calc_brush_distances_squared(), blender::ed::sculpt_paint::calc_brush_plane(), blender::ed::sculpt_paint::brushes::calc_faces(), blender::ed::sculpt_paint::calc_factors_common_bmesh(), blender::ed::sculpt_paint::calc_factors_common_from_orig_data_bmesh(), blender::ed::sculpt_paint::calc_factors_common_from_orig_data_grids(), blender::ed::sculpt_paint::calc_factors_common_from_orig_data_mesh(), blender::ed::sculpt_paint::calc_factors_common_grids(), blender::ed::sculpt_paint::calc_factors_common_mesh(), blender::ed::sculpt_paint::calc_factors_common_mesh_indexed(), blender::ed::sculpt_paint::cloth::calc_forces_bmesh(), blender::ed::sculpt_paint::cloth::calc_forces_grids(), blender::ed::sculpt_paint::cloth::calc_forces_mesh(), blender::ed::sculpt_paint::brushes::calc_grids(), blender::ed::sculpt_paint::brushes::clay_strips::calc_node_mask(), blender::ed::sculpt_paint::brushes::plane::calc_node_mask(), blender::ed::sculpt_paint::auto_mask::calc_view_normal_factor(), blender::ed::sculpt_paint::color::do_color_smooth_task(), blender::ed::sculpt_paint::color::do_paint_brush_task(), blender::ed::sculpt_paint::color::do_smear_brush_task(), do_vpaint_brush_smear(), do_wpaint_brush_smear(), blender::ed::sculpt_paint::dynamic_topology_update(), blender::ed::sculpt_paint::pbvh_gather_generic(), blender::ed::sculpt_paint::vwpaint::pbvh_gather_generic(), blender::ed::sculpt_paint::brushes::sample_node_surface_bmesh(), blender::ed::sculpt_paint::brushes::sample_node_surface_grids(), blender::ed::sculpt_paint::brushes::sample_node_surface_mesh(), SCULPT_brush_frontface_normal_from_falloff_shape(), SCULPT_cache_calc_brushdata_symm(), sculpt_project_v3_normal_align(), blender::ed::sculpt_paint::vwpaint::update_cache_invariants(), and blender::ed::sculpt_paint::update_sculpt_normal().

◆ wet_mix

◆ wet_mix_prev_color

float4 blender::ed::sculpt_paint::StrokeCache::wet_mix_prev_color = float4(0)

Definition at line 314 of file sculpt_intern.hh.

Referenced by blender::ed::sculpt_paint::color::do_paint_brush().

◆ wet_persistence

float blender::ed::sculpt_paint::StrokeCache::wet_persistence = 0.0f

The documentation for this struct was generated from the following files: