|
Blender V4.3
|
Public Member Functions | |
| AddOperationExecutor (const bContext &C) | |
| void | execute (AddOperation &self, const bContext &C, const StrokeExtension &stroke_extension) |
| void | sample_in_center_with_symmetry (Vector< float2 > &r_sampled_uvs) |
| void | sample_in_center (Vector< float2 > &r_sampled_uvs, const float3 &ray_start_su, const float3 &ray_end_su) |
| void | sample_projected_with_symmetry (RandomNumberGenerator &rng, Vector< float2 > &r_sampled_uvs) |
| void | sample_projected (RandomNumberGenerator &rng, Vector< float2 > &r_sampled_uvs, const float4x4 &brush_transform) |
| void | sample_spherical_with_symmetry (RandomNumberGenerator &rng, Vector< float2 > &r_sampled_uvs) |
| void | sample_spherical (RandomNumberGenerator &rng, Vector< float2 > &r_sampled_uvs, const float3 &brush_pos_su, const float brush_radius_su, const float3 &view_direction_su) |
| void | ensure_curve_roots_kdtree () |
Public Attributes | |
| AddOperation * | self_ = nullptr |
| CurvesSculptCommonContext | ctx_ |
| Object * | curves_ob_orig_ = nullptr |
| Curves * | curves_id_orig_ = nullptr |
| CurvesGeometry * | curves_orig_ = nullptr |
| Object * | surface_ob_eval_ = nullptr |
| Mesh * | surface_eval_ = nullptr |
| Span< float3 > | surface_positions_eval_ |
| Span< int > | surface_corner_verts_eval_ |
| Span< int3 > | surface_corner_tris_eval_ |
| VArraySpan< float2 > | surface_uv_map_eval_ |
| BVHTreeFromMesh | surface_bvh_eval_ |
| const CurvesSculpt * | curves_sculpt_ = nullptr |
| const Brush * | brush_ = nullptr |
| const BrushCurvesSculptSettings * | brush_settings_ = nullptr |
| int | add_amount_ |
| bool | use_front_face_ |
| float | brush_radius_re_ |
| float2 | brush_pos_re_ |
| CurvesSurfaceTransforms | transforms_ |
Utility class that actually executes the update when the stroke is updated. That's useful because it avoids passing a very large number of parameters between functions.
Definition at line 82 of file curves_sculpt_add.cc.
|
inline |
Definition at line 109 of file curves_sculpt_add.cc.
|
inline |
Definition at line 493 of file curves_sculpt_add.cc.
References blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::offsets(), and blender::bke::CurvesGeometry::positions().
Referenced by execute().
|
inline |
Definition at line 111 of file curves_sculpt_add.cc.
References BrushCurvesSculptSettings::add_amount, add_amount_, blender::geometry::add_curves_on_mesh(), blender::bke::CurvesGeometry::attributes(), Geometry::attributes, blender::bke::CurvesGeometry::attributes_for_write(), BKE_bvhtree_from_mesh_get(), BKE_object_get_evaluated_mesh(), BKE_paint_brush_for_read(), BLI_assert_unreachable, BLI_SCOPED_DEFER, brush_, BRUSH_CURVES_SCULPT_FLAG_INTERPOLATE_LENGTH, BRUSH_CURVES_SCULPT_FLAG_INTERPOLATE_POINT_COUNT, BRUSH_CURVES_SCULPT_FLAG_INTERPOLATE_RADIUS, BRUSH_CURVES_SCULPT_FLAG_INTERPOLATE_SHAPE, BRUSH_FRONTFACE, brush_pos_re_, blender::ed::sculpt_paint::brush_radius_get(), brush_radius_re_, brush_settings_, BVHTREE_FROM_CORNER_TRIS, blender::bke::AttributeAccessor::contains(), blender::bke::Corner, blender::geometry::AddCurvesOnMeshInputs::corner_normals_su, ctx_, CTX_data_active_object(), BrushCurvesSculptSettings::curve_length, BrushCurvesSculptSettings::curve_radius, curves_id_orig_, curves_ob_orig_, curves_orig_, ToolSettings::curves_sculpt, curves_sculpt_, Brush::curves_sculpt_settings, Object::data, DEG_get_evaluated_object(), DEG_id_tag_update(), blender::ed::sculpt_paint::CurvesSculptCommonContext::depsgraph, ED_region_tag_redraw(), ensure_curve_roots_kdtree(), Mesh::faces_num, blender::geometry::AddCurvesOnMeshInputs::fallback_curve_length, blender::geometry::AddCurvesOnMeshInputs::fallback_curve_radius, blender::geometry::AddCurvesOnMeshInputs::fallback_point_count, Brush::falloff_shape, blender::ed::curves::fill_selection_true(), Brush::flag, BrushCurvesSculptSettings::flag, free_bvhtree_from_mesh(), blender::RandomNumberGenerator::from_random_seed(), Curves::geometry, Curves::id, ID_RECALC_GEOMETRY, blender::geometry::AddCurvesOnMeshInputs::interpolate_length, blender::geometry::AddCurvesOnMeshInputs::interpolate_point_count, blender::geometry::AddCurvesOnMeshInputs::interpolate_radius, blender::geometry::AddCurvesOnMeshInputs::interpolate_resolution, blender::geometry::AddCurvesOnMeshInputs::interpolate_shape, blender::Span< T >::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::ed::sculpt_paint::StrokeExtension::mouse_position, NC_GEOM, ND_DATA, blender::geometry::AddCurvesOnMeshOutputs::new_curves_range, blender::geometry::AddCurvesOnMeshOutputs::new_points_range, OB_MESH, blender::geometry::AddCurvesOnMeshInputs::old_roots_kdtree, CurvesSculpt::paint, PAINT_FALLOFF_SHAPE_SPHERE, PAINT_FALLOFF_SHAPE_TUBE, blender::bke::Point, BrushCurvesSculptSettings::points_per_curve, blender::ed::sculpt_paint::CurvesSculptCommonContext::region, blender::ed::sculpt_paint::report_empty_evaluated_surface(), blender::ed::sculpt_paint::report_empty_original_surface(), blender::ed::sculpt_paint::report_invalid_uv_map(), blender::ed::sculpt_paint::report_missing_surface(), blender::ed::sculpt_paint::report_missing_uv_map_on_evaluated_surface(), blender::ed::sculpt_paint::report_missing_uv_map_on_original_surface(), blender::ed::sculpt_paint::StrokeExtension::reports, blender::geometry::AddCurvesOnMeshInputs::reverse_uv_sampler, sample_in_center_with_symmetry(), sample_projected_with_symmetry(), sample_spherical_with_symmetry(), blender::ed::sculpt_paint::CurvesSculptCommonContext::scene, self, self_, blender::geometry::AddCurvesOnMeshInputs::surface, Curves::surface, surface_bvh_eval_, blender::geometry::AddCurvesOnMeshInputs::surface_corner_tris, surface_corner_tris_eval_, surface_corner_verts_eval_, surface_eval_, surface_ob_eval_, surface_positions_eval_, Curves::surface_uv_map, surface_uv_map_eval_, Scene::toolsettings, blender::geometry::AddCurvesOnMeshInputs::transforms, transforms_, Object::type, use_front_face_, blender::geometry::AddCurvesOnMeshOutputs::uv_error, blender::geometry::AddCurvesOnMeshInputs::uvs, and WM_main_add_notifier().
Referenced by blender::ed::sculpt_paint::AddOperation::on_stroke_extended().
|
inline |
Definition at line 275 of file curves_sculpt_add.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_bvhtree_ray_cast(), BVHTreeRayHit::co, blender::bke::mesh_surface_sample::compute_bary_coord_in_triangle(), BVHTreeRayHit::dist, FLT_MAX, BVHTreeRayHit::index, blender::math::normalize(), BVHTreeFromMesh::raycast_callback, blender::bke::mesh_surface_sample::sample_corner_attribute_with_bary_coords(), surface_bvh_eval_, surface_corner_tris_eval_, surface_corner_verts_eval_, surface_positions_eval_, surface_uv_map_eval_, and BVHTreeFromMesh::tree.
Referenced by sample_in_center_with_symmetry().
|
inline |
Sample a single point exactly at the mouse position.
Definition at line 256 of file curves_sculpt_add.cc.
References brush_pos_re_, ctx_, curves_id_orig_, blender::bke::CurvesSurfaceTransforms::curves_to_surface, blender::ed::sculpt_paint::CurvesSculptCommonContext::depsgraph, ED_view3d_win_to_segment_clipped(), blender::ed::sculpt_paint::get_symmetry_brush_transforms(), blender::ed::sculpt_paint::CurvesSculptCommonContext::region, sample_in_center(), Curves::symmetry, blender::math::transform_point(), transforms_, blender::ed::sculpt_paint::CurvesSculptCommonContext::v3d, and blender::bke::CurvesSurfaceTransforms::world_to_curves.
Referenced by execute().
|
inline |
Definition at line 319 of file curves_sculpt_add.cc.
References add_amount_, blender::Vector< T, InlineBufferCapacity, Allocator >::append(), brush_pos_re_, brush_radius_re_, ctx_, blender::bke::CurvesSurfaceTransforms::curves_to_surface, blender::ed::sculpt_paint::CurvesSculptCommonContext::depsgraph, ED_view3d_win_to_segment_clipped(), blender::ed::sculpt_paint::CurvesSculptCommonContext::region, blender::bke::mesh_surface_sample::sample_corner_attribute_with_bary_coords(), blender::bke::mesh_surface_sample::sample_surface_points_projected(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), surface_bvh_eval_, surface_corner_tris_eval_, surface_eval_, surface_uv_map_eval_, blender::math::transform_point(), transforms_, use_front_face_, blender::ed::sculpt_paint::CurvesSculptCommonContext::v3d, and blender::bke::CurvesSurfaceTransforms::world_to_curves.
Referenced by sample_projected_with_symmetry().
|
inline |
Sample points by shooting rays within the brush radius in the 3D view.
Definition at line 310 of file curves_sculpt_add.cc.
References curves_id_orig_, blender::ed::sculpt_paint::get_symmetry_brush_transforms(), sample_projected(), and Curves::symmetry.
Referenced by execute().
|
inline |
Definition at line 413 of file curves_sculpt_add.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), pow2f(), surface_bvh_eval_, BVHTreeFromMesh::tree, and use_front_face_.
Referenced by sample_spherical_with_symmetry().
|
inline |
Sample points in a 3D sphere around the surface position that the mouse hovers over.
Definition at line 370 of file curves_sculpt_add.cc.
References brush_pos_re_, brush_radius_re_, ctx_, curves_id_orig_, blender::bke::CurvesSurfaceTransforms::curves_to_surface, blender::ed::sculpt_paint::CurvesSculptCommonContext::depsgraph, ED_view3d_win_to_segment_clipped(), blender::ed::sculpt_paint::get_symmetry_brush_transforms(), blender::math::normalize(), blender::ed::sculpt_paint::CurvesSculptCommonContext::region, blender::ed::sculpt_paint::sample_curves_surface_3d_brush(), sample_spherical(), surface_bvh_eval_, Curves::symmetry, blender::ed::sculpt_paint::transform_brush_radius(), blender::math::transform_point(), transforms_, blender::ed::sculpt_paint::CurvesSculptCommonContext::v3d, and blender::bke::CurvesSurfaceTransforms::world_to_curves.
Referenced by execute().
| int blender::ed::sculpt_paint::AddOperationExecutor::add_amount_ |
Definition at line 101 of file curves_sculpt_add.cc.
Referenced by execute(), and sample_projected().
| const Brush* blender::ed::sculpt_paint::AddOperationExecutor::brush_ = nullptr |
Definition at line 99 of file curves_sculpt_add.cc.
Referenced by execute().
| float2 blender::ed::sculpt_paint::AddOperationExecutor::brush_pos_re_ |
Definition at line 105 of file curves_sculpt_add.cc.
Referenced by execute(), sample_in_center_with_symmetry(), sample_projected(), and sample_spherical_with_symmetry().
| float blender::ed::sculpt_paint::AddOperationExecutor::brush_radius_re_ |
Definition at line 104 of file curves_sculpt_add.cc.
Referenced by execute(), sample_projected(), and sample_spherical_with_symmetry().
| const BrushCurvesSculptSettings* blender::ed::sculpt_paint::AddOperationExecutor::brush_settings_ = nullptr |
Definition at line 100 of file curves_sculpt_add.cc.
Referenced by execute().
| CurvesSculptCommonContext blender::ed::sculpt_paint::AddOperationExecutor::ctx_ |
Definition at line 84 of file curves_sculpt_add.cc.
Referenced by execute(), sample_in_center_with_symmetry(), sample_projected(), and sample_spherical_with_symmetry().
| Curves* blender::ed::sculpt_paint::AddOperationExecutor::curves_id_orig_ = nullptr |
Definition at line 87 of file curves_sculpt_add.cc.
Referenced by execute(), sample_in_center_with_symmetry(), sample_projected_with_symmetry(), and sample_spherical_with_symmetry().
| Object* blender::ed::sculpt_paint::AddOperationExecutor::curves_ob_orig_ = nullptr |
Definition at line 86 of file curves_sculpt_add.cc.
Referenced by execute().
| CurvesGeometry* blender::ed::sculpt_paint::AddOperationExecutor::curves_orig_ = nullptr |
Definition at line 88 of file curves_sculpt_add.cc.
Referenced by execute().
| const CurvesSculpt* blender::ed::sculpt_paint::AddOperationExecutor::curves_sculpt_ = nullptr |
Definition at line 98 of file curves_sculpt_add.cc.
Referenced by execute().
| AddOperation* blender::ed::sculpt_paint::AddOperationExecutor::self_ = nullptr |
Definition at line 83 of file curves_sculpt_add.cc.
Referenced by execute().
| BVHTreeFromMesh blender::ed::sculpt_paint::AddOperationExecutor::surface_bvh_eval_ |
Definition at line 96 of file curves_sculpt_add.cc.
Referenced by execute(), sample_in_center(), sample_projected(), sample_spherical(), and sample_spherical_with_symmetry().
Definition at line 94 of file curves_sculpt_add.cc.
Referenced by execute(), sample_in_center(), and sample_projected().
Definition at line 93 of file curves_sculpt_add.cc.
Referenced by execute(), and sample_in_center().
| Mesh* blender::ed::sculpt_paint::AddOperationExecutor::surface_eval_ = nullptr |
Definition at line 91 of file curves_sculpt_add.cc.
Referenced by execute(), and sample_projected().
| Object* blender::ed::sculpt_paint::AddOperationExecutor::surface_ob_eval_ = nullptr |
Definition at line 90 of file curves_sculpt_add.cc.
Referenced by execute().
Definition at line 92 of file curves_sculpt_add.cc.
Referenced by execute(), and sample_in_center().
| VArraySpan<float2> blender::ed::sculpt_paint::AddOperationExecutor::surface_uv_map_eval_ |
Definition at line 95 of file curves_sculpt_add.cc.
Referenced by execute(), sample_in_center(), and sample_projected().
| CurvesSurfaceTransforms blender::ed::sculpt_paint::AddOperationExecutor::transforms_ |
Definition at line 107 of file curves_sculpt_add.cc.
Referenced by execute(), sample_in_center_with_symmetry(), sample_projected(), and sample_spherical_with_symmetry().
| bool blender::ed::sculpt_paint::AddOperationExecutor::use_front_face_ |
Definition at line 102 of file curves_sculpt_add.cc.
Referenced by execute(), sample_projected(), and sample_spherical().