Blender V4.3
sculpt_transform.cc File Reference
#include "MEM_guardedalloc.h"
#include "BLI_array_utils.hh"
#include "BLI_enumerable_thread_specific.hh"
#include "BLI_math_matrix.h"
#include "BLI_math_matrix.hh"
#include "BLI_math_rotation.h"
#include "BLI_math_vector.h"
#include "BLI_math_vector_types.hh"
#include "BLI_span.hh"
#include "BKE_brush.hh"
#include "BKE_context.hh"
#include "BKE_kelvinlet.h"
#include "BKE_layer.hh"
#include "BKE_mesh.hh"
#include "BKE_paint.hh"
#include "BKE_pbvh_api.hh"
#include "BKE_subdiv_ccg.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "ED_screen.hh"
#include "ED_sculpt.hh"
#include "ED_view3d.hh"
#include "mesh_brush_common.hh"
#include "paint_intern.hh"
#include "paint_mask.hh"
#include "sculpt_automask.hh"
#include "sculpt_filter.hh"
#include "sculpt_intern.hh"
#include "sculpt_undo.hh"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "bmesh.hh"
#include <cmath>
#include <cstdlib>

Go to the source code of this file.

Classes

struct  blender::ed::sculpt_paint::TransformLocalData
 
struct  blender::ed::sculpt_paint::AveragePositionAccumulation
 

Namespaces

namespace  blender
 
namespace  blender::ed
 
namespace  blender::ed::sculpt_paint
 

Enumerations

enum class  blender::ed::sculpt_paint::PivotPositionMode {
  blender::ed::sculpt_paint::Origin = 0 , blender::ed::sculpt_paint::Unmasked = 1 , blender::ed::sculpt_paint::MaskBorder = 2 , blender::ed::sculpt_paint::ActiveVert = 3 ,
  blender::ed::sculpt_paint::CursorSurface = 4
}
 

Functions

void blender::ed::sculpt_paint::init_transform (bContext *C, Object &ob, const float mval_fl[2], const char *undo_name)
 
static std::array< float4x4, 8 > blender::ed::sculpt_paint::transform_matrices_init (const SculptSession &ss, const ePaintSymmetryFlags symm, const TransformDisplacementMode t_mode)
 
static BLI_NOINLINE void blender::ed::sculpt_paint::calc_symm_area_transform_translations (const Span< float3 > positions, const std::array< float4x4, 8 > &transform_mats, const MutableSpan< float3 > translations)
 
static BLI_NOINLINE void blender::ed::sculpt_paint::filter_translations_with_symmetry (const Span< float3 > positions, const ePaintSymmetryFlags symm, const MutableSpan< float3 > translations)
 
static void blender::ed::sculpt_paint::transform_node_mesh (const Sculpt &sd, const std::array< float4x4, 8 > &transform_mats, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, TransformLocalData &tls, const PositionDeformData &position_data)
 
static void blender::ed::sculpt_paint::transform_node_grids (const Sculpt &sd, const std::array< float4x4, 8 > &transform_mats, const bke::pbvh::GridsNode &node, Object &object, TransformLocalData &tls)
 
static void blender::ed::sculpt_paint::transform_node_bmesh (const Sculpt &sd, const std::array< float4x4, 8 > &transform_mats, bke::pbvh::BMeshNode &node, Object &object, TransformLocalData &tls)
 
static void blender::ed::sculpt_paint::sculpt_transform_all_vertices (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob)
 
static BLI_NOINLINE void blender::ed::sculpt_paint::calc_transform_translations (const float4x4 &elastic_transform_mat, const Span< float3 > positions, const MutableSpan< float3 > r_translations)
 
static BLI_NOINLINE void blender::ed::sculpt_paint::apply_kelvinet_to_translations (const KelvinletParams &params, const float3 &elastic_transform_pivot, const Span< float3 > positions, const MutableSpan< float3 > translations)
 
static void blender::ed::sculpt_paint::elastic_transform_node_mesh (const Sculpt &sd, const KelvinletParams &params, const float4x4 &elastic_transform_mat, const float3 &elastic_transform_pivot, const MeshAttributeData &attribute_data, const bke::pbvh::MeshNode &node, Object &object, TransformLocalData &tls, const PositionDeformData &position_data)
 
static void blender::ed::sculpt_paint::elastic_transform_node_grids (const Sculpt &sd, const KelvinletParams &params, const float4x4 &elastic_transform_mat, const float3 &elastic_transform_pivot, const bke::pbvh::GridsNode &node, Object &object, TransformLocalData &tls)
 
static void blender::ed::sculpt_paint::elastic_transform_node_bmesh (const Sculpt &sd, const KelvinletParams &params, const float4x4 &elastic_transform_mat, const float3 &elastic_transform_pivot, bke::pbvh::BMeshNode &node, Object &object, TransformLocalData &tls)
 
static void blender::ed::sculpt_paint::transform_radius_elastic (const Depsgraph &depsgraph, const Sculpt &sd, Object &ob, const float transform_radius)
 
void blender::ed::sculpt_paint::update_modal_transform (bContext *C, Object &ob)
 
void blender::ed::sculpt_paint::end_transform (bContext *C, Object &ob)
 
static bool blender::ed::sculpt_paint::set_pivot_depends_on_cursor (bContext &, wmOperatorType &, PointerRNA *ptr)
 
static AveragePositionAccumulation blender::ed::sculpt_paint::combine_average_position_accumulation (const AveragePositionAccumulation &a, const AveragePositionAccumulation &b)
 
static BLI_NOINLINE void blender::ed::sculpt_paint::accumulate_weighted_average_position (const Span< float3 > positions, const Span< float > factors, AveragePositionAccumulation &total)
 
static float3 blender::ed::sculpt_paint::average_unmasked_position (const Depsgraph &depsgraph, const Object &object, const float3 &pivot, const ePaintSymmetryFlags symm)
 
static BLI_NOINLINE void blender::ed::sculpt_paint::mask_border_weight_calc (const Span< float > masks, const MutableSpan< float > factors)
 
static float3 blender::ed::sculpt_paint::average_mask_border_position (const Depsgraph &depsgraph, const Object &object, const float3 &pivot, const ePaintSymmetryFlags symm)
 
static int blender::ed::sculpt_paint::set_pivot_position_exec (bContext *C, wmOperator *op)
 
static int blender::ed::sculpt_paint::set_pivot_position_invoke (bContext *C, wmOperator *op, const wmEvent *event)
 
static bool blender::ed::sculpt_paint::set_pivot_position_poll_property (const bContext *, wmOperator *op, const PropertyRNA *prop)
 
void blender::ed::sculpt_paint::SCULPT_OT_set_pivot_position (wmOperatorType *ot)
 

Variables

static constexpr float blender::ed::sculpt_paint::transform_mirror_max_distance_eps = 0.00002f
 
static EnumPropertyItem blender::ed::sculpt_paint::prop_sculpt_pivot_position_types []