33 using bke::CurvesSurfaceTransforms;
89 const Object &curves_object,
90 const float2 &brush_pos_re,
91 const float brush_radius_re);
124 const float2 &brush_pos_re,
125 const float brush_radius_re);
128 const float3 &brush_position,
129 const float old_radius);
Generic geometry attributes built on CustomData.
Low-level operations for curves.
struct Depsgraph Depsgraph
struct CurvesGeometry CurvesGeometry
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
const Depsgraph * depsgraph
CurvesSculptCommonContext(const bContext &C)
virtual ~CurvesSculptStrokeOperation()=default
virtual void on_stroke_extended(const bContext &C, const StrokeExtension &stroke_extension)=0
const Depsgraph * depsgraph
std::unique_ptr< CurvesSculptStrokeOperation > new_add_operation()
std::optional< CurvesBrush3D > sample_curves_surface_3d_brush(const Depsgraph &depsgraph, const ARegion ®ion, const View3D &v3d, const CurvesSurfaceTransforms &transforms, const BVHTreeFromMesh &surface_bvh, const float2 &brush_pos_re, const float brush_radius_re)
std::unique_ptr< CurvesSculptStrokeOperation > new_pinch_operation(const BrushStrokeMode brush_mode, const bContext &C)
void report_invalid_uv_map(ReportList *reports)
std::unique_ptr< CurvesSculptStrokeOperation > new_comb_operation()
void report_empty_evaluated_surface(ReportList *reports)
float brush_radius_get(const Scene &scene, const Brush &brush, const StrokeExtension &stroke_extension)
VArray< float > get_curves_selection(const Curves &curves_id)
std::optional< CurvesBrush3D > sample_curves_3d_brush(const Depsgraph &depsgraph, const ARegion ®ion, const View3D &v3d, const RegionView3D &rv3d, const Object &curves_object, const float2 &brush_pos_re, const float brush_radius_re)
void move_last_point_and_resample(MutableSpan< float3 > positions, const float3 &new_last_position)
void report_missing_uv_map_on_original_surface(ReportList *reports)
VArray< float > get_point_selection(const Curves &curves_id)
std::unique_ptr< CurvesSculptStrokeOperation > new_snake_hook_operation()
std::unique_ptr< CurvesSculptStrokeOperation > new_grow_shrink_operation(const BrushStrokeMode brush_mode, const bContext &C)
void report_missing_uv_map_on_evaluated_surface(ReportList *reports)
std::unique_ptr< CurvesSculptStrokeOperation > new_smooth_operation()
std::unique_ptr< CurvesSculptStrokeOperation > new_delete_operation()
void report_missing_surface(ReportList *reports)
std::unique_ptr< CurvesSculptStrokeOperation > new_selection_paint_operation(const BrushStrokeMode brush_mode, const bContext &C)
void report_empty_original_surface(ReportList *reports)
float brush_strength_get(const Scene &scene, const Brush &brush, const StrokeExtension &stroke_extension)
Vector< float4x4 > get_symmetry_brush_transforms(const eCurvesSymmetryType symmetry)
std::unique_ptr< CurvesSculptStrokeOperation > new_slide_operation()
std::unique_ptr< CurvesSculptStrokeOperation > new_puff_operation()
float brush_strength_factor(const Brush &brush, const StrokeExtension &stroke_extension)
float brush_radius_factor(const Brush &brush, const StrokeExtension &stroke_extension)
std::unique_ptr< CurvesSculptStrokeOperation > new_density_operation(const BrushStrokeMode brush_mode, const bContext &C, const StrokeExtension &stroke_start)
float transform_brush_radius(const float4x4 &transform, const float3 &brush_position, const float old_radius)
MutableSpan< float3 > positions