Blender  V3.3
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
GeometryComponentEditData Class Referencefinal

#include <BKE_geometry_set.hh>

Inheritance diagram for GeometryComponentEditData:
GeometryComponent

Public Member Functions

 GeometryComponentEditData ()
 
GeometryComponentcopy () const final
 
bool owns_direct_data () const final
 
void ensure_owns_direct_data () final
 
- Public Member Functions inherited from GeometryComponent
virtual ~GeometryComponent ()=default
 
 GeometryComponent (GeometryComponentType type)
 
int attribute_domain_size (eAttrDomain domain) const
 
virtual std::optional< blender::bke::AttributeAccessorattributes () const
 
virtual std::optional< blender::bke::MutableAttributeAccessorattributes_for_write ()
 
void user_add () const
 
void user_remove () const
 
bool is_mutable () const
 
GeometryComponentType type () const
 
virtual bool is_empty () const
 

Static Public Member Functions

static void remember_deformed_curve_positions_if_necessary (GeometrySet &geometry)
 
- Static Public Member Functions inherited from GeometryComponent
static GeometryComponentcreate (GeometryComponentType component_type)
 

Public Attributes

std::unique_ptr< blender::bke::CurvesEditHintscurves_edit_hints_
 

Static Public Attributes

static constexpr GeometryComponentType static_type = GEO_COMPONENT_TYPE_EDIT
 

Detailed Description

When the original data is in some edit mode, we want to propagate some additional information through object evaluation. This information can be used by edit modes to support working on evaluated data.

This component is added at the beginning of modifier evaluation.

Definition at line 851 of file BKE_geometry_set.hh.

Constructor & Destructor Documentation

◆ GeometryComponentEditData()

GeometryComponentEditData::GeometryComponentEditData ( )

Definition at line 9 of file geometry_component_edit_data.cc.

Referenced by copy().

Member Function Documentation

◆ copy()

GeometryComponent * GeometryComponentEditData::copy ( ) const
finalvirtual

◆ ensure_owns_direct_data()

void GeometryComponentEditData::ensure_owns_direct_data ( )
finalvirtual

Implements GeometryComponent.

Definition at line 27 of file geometry_component_edit_data.cc.

◆ owns_direct_data()

bool GeometryComponentEditData::owns_direct_data ( ) const
finalvirtual

Implements GeometryComponent.

Definition at line 22 of file geometry_component_edit_data.cc.

◆ remember_deformed_curve_positions_if_necessary()

void GeometryComponentEditData::remember_deformed_curve_positions_if_necessary ( GeometrySet geometry)
static

The first node that does topology changing operations on curves should store the curve point positions it retrieved as input. Without this, information about the deformed positions is lost, which would make curves sculpt mode fall back to using original curve positions instead of deformed ones.

Definition at line 32 of file geometry_component_edit_data.cc.

References curves, curves_edit_hints_, Curves::geometry, GeometrySet::get_component_for_write(), GeometrySet::get_curves_for_read(), GeometrySet::has(), and blender::bke::image::partial_update::wrap().

Referenced by blender::nodes::node_geo_duplicate_elements_cc::duplicate_curves(), blender::nodes::node_geo_curve_to_mesh_cc::geometry_set_curve_to_mesh(), blender::nodes::node_geo_curve_resample_cc::node_geo_exec(), blender::nodes::node_geo_curve_subdivide_cc::node_geo_exec(), blender::nodes::node_geo_curve_to_points_cc::node_geo_exec(), and blender::nodes::node_geo_curve_trim_cc::node_geo_exec().

Member Data Documentation

◆ curves_edit_hints_

std::unique_ptr<blender::bke::CurvesEditHints> GeometryComponentEditData::curves_edit_hints_

Information about how original curves are manipulated during evaluation. This data is used so that curve sculpt tools can work on evaluated data. It is not stored in CurveComponent because the data remains valid even when there is no actual curves geometry anymore, for example, when the curves have been converted to a mesh.

Definition at line 859 of file BKE_geometry_set.hh.

Referenced by BKE_curves_data_update(), copy(), blender::bke::crazyspace::get_evaluated_curves_deformation(), and remember_deformed_curve_positions_if_necessary().

◆ static_type

constexpr GeometryComponentType GeometryComponentEditData::static_type = GEO_COMPONENT_TYPE_EDIT
inlinestaticconstexpr

Definition at line 875 of file BKE_geometry_set.hh.


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