Blender V5.0
blender::ed::curves::CurvesGeometry Class Reference

#include <BKE_curves.hh>

Inherits CurvesGeometry.

Classes

struct  BlendWriteData

Public Member Functions

template<typename T>
VArray< Tadapt_domain (const VArray< T > &varray, AttrDomain from, AttrDomain to) const
Constructors/Destructor
 CurvesGeometry ()
 CurvesGeometry (int point_num, int curve_num)
 CurvesGeometry (const CurvesGeometry &other)
 CurvesGeometry (CurvesGeometry &&other)
CurvesGeometryoperator= (const CurvesGeometry &other)
CurvesGeometryoperator= (CurvesGeometry &&other)
 ~CurvesGeometry ()
Accessors
Span< int > offsets () const
MutableSpan< int > offsets_for_write ()
VArray< int8_t > curve_types () const
MutableSpan< int8_t > curve_types_for_write ()
void fill_curve_types (CurveType type)
void fill_curve_types (const IndexMask &selection, CurveType type)
void update_curve_types ()
Span< float3positions () const
MutableSpan< float3positions_for_write ()
VArray< floatradius () const
MutableSpan< floatradius_for_write ()
VArray< bool > cyclic () const
MutableSpan< bool > cyclic_for_write ()
VArray< int > resolution () const
MutableSpan< int > resolution_for_write ()
VArray< floattilt () const
MutableSpan< floattilt_for_write ()
VArray< int8_t > normal_mode () const
MutableSpan< int8_t > normal_mode_for_write ()
VArray< int8_t > handle_types_left () const
MutableSpan< int8_t > handle_types_left_for_write ()
VArray< int8_t > handle_types_right () const
MutableSpan< int8_t > handle_types_right_for_write ()
std::optional< Span< float3 > > handle_positions_left () const
MutableSpan< float3handle_positions_left_for_write ()
std::optional< Span< float3 > > handle_positions_right () const
MutableSpan< float3handle_positions_right_for_write ()
VArray< int8_t > nurbs_orders () const
MutableSpan< int8_t > nurbs_orders_for_write ()
VArray< int8_t > nurbs_knots_modes () const
MutableSpan< int8_t > nurbs_knots_modes_for_write ()
std::optional< Span< float > > nurbs_weights () const
MutableSpan< floatnurbs_weights_for_write ()
std::optional< Span< float2 > > surface_uv_coords () const
MutableSpan< float2surface_uv_coords_for_write ()
Span< floatnurbs_custom_knots () const
MutableSpan< floatnurbs_custom_knots_for_write ()
OffsetIndices< int > nurbs_custom_knots_by_curve () const
IndexMask nurbs_custom_knot_curves (IndexMaskMemory &memory) const
void nurbs_custom_knots_update_size ()
void nurbs_custom_knots_resize (int knots_num)
Span< MDeformVertdeform_verts () const
MutableSpan< MDeformVertdeform_verts_for_write ()
Operations
std::optional< Bounds< float3 > > bounds_min_max (bool use_radius=true) const
void count_memory (MemoryCounter &memory) const
std::optional< int > material_index_max () const
void resize (int points_num, int curves_num)
void tag_positions_changed ()
void tag_topology_changed ()
void tag_normals_changed ()
void tag_radii_changed ()
void tag_material_index_changed ()
void translate (const float3 &translation)
void transform (const float4x4 &matrix)
void calculate_bezier_auto_handles ()
void remove_points (const IndexMask &points_to_delete, const AttributeFilter &attribute_filter)
void remove_curves (const IndexMask &curves_to_delete, const AttributeFilter &attribute_filter)
void reverse_curves (const IndexMask &curves_to_reverse)
void remove_attributes_based_on_types ()
Domain Interpolation
AttributeAccessor attributes () const
MutableAttributeAccessor attributes_for_write ()
GVArray adapt_domain (const GVArray &varray, AttrDomain from, AttrDomain to) const
File reading/writing.
void blend_read (BlendDataReader &reader)
void blend_write_prepare (BlendWriteData &write_data)
void blend_write (BlendWriter &writer, ID &id, const BlendWriteData &write_data)

#CurvesGeometry Inline Methods

int points_num () const
int curves_num () const
bool is_empty () const
IndexRange points_range () const
IndexRange curves_range () const
OffsetIndices< int > points_by_curve () const
bool has_curve_with_type (CurveType type) const
bool has_curve_with_type (Span< CurveType > types) const
bool is_single_type (CurveType type) const
const std::array< int, CURVE_TYPES_NUM > & curve_type_counts () const
bool nurbs_has_custom_knots () const
int evaluated_points_num () const
Span< int > bezier_evaluated_offsets_for_curve (int curve_index) const
Span< floatevaluated_lengths_for_curve (int curve_index, bool cyclic) const
float evaluated_length_total_for_curve (int curve_index, bool cyclic) const

Evaluation

IndexMask indices_for_curve_type (CurveType type, IndexMaskMemory &memory) const
IndexMask indices_for_curve_type (CurveType type, const IndexMask &selection, IndexMaskMemory &memory) const
Array< int > point_to_curve_map () const
OffsetIndices< int > evaluated_points_by_curve () const
bool has_cyclic_curve () const
Span< float3evaluated_positions () const
Span< float3evaluated_tangents () const
Span< float3evaluated_normals () const
void ensure_evaluated_lengths () const
void ensure_can_interpolate_to_evaluated () const
void interpolate_to_evaluated (int curve_index, GSpan src, GMutableSpan dst) const
void interpolate_to_evaluated (GSpan src, GMutableSpan dst) const

Additional Inherited Members

Public Attributes inherited from CurvesGeometry
int * curve_offsets
struct AttributeStorage attribute_storage
CustomData point_data
CustomData curve_data_legacy
int point_num
int curve_num
ListBase vertex_group_names
int vertex_group_active_index
int attributes_active_index
CurvesGeometryRuntimeHandleruntime
floatcustom_knots
int custom_knot_num
char _pad [4]

Detailed Description

A C++ class that wraps the DNA struct for better encapsulation and ease of use. It inherits directly from the struct rather than storing a pointer to avoid more complicated ownership handling.

Definition at line 155 of file BKE_curves.hh.

Constructor & Destructor Documentation

◆ CurvesGeometry() [1/4]

CurvesGeometry::CurvesGeometry ( )

Definition at line 65 of file curves_geometry.cc.

◆ CurvesGeometry() [2/4]

CurvesGeometry::CurvesGeometry ( int point_num,
int curve_num )

Create curves with the given size. Only the position attribute is created, along with the offsets.

Definition at line 67 of file curves_geometry.cc.

◆ CurvesGeometry() [3/4]

CurvesGeometry::CurvesGeometry ( const CurvesGeometry & other)

Definition at line 103 of file curves_geometry.cc.

◆ CurvesGeometry() [4/4]

CurvesGeometry::CurvesGeometry ( CurvesGeometry && other)

Definition at line 163 of file curves_geometry.cc.

◆ ~CurvesGeometry()

CurvesGeometry::~CurvesGeometry ( )

Definition at line 209 of file curves_geometry.cc.

Member Function Documentation

◆ adapt_domain() [1/2]

GVArray CurvesGeometry::adapt_domain ( const GVArray & varray,
AttrDomain from,
AttrDomain to ) const

Definition at line 1835 of file curves_geometry.cc.

◆ adapt_domain() [2/2]

template<typename T>
VArray< T > blender::bke::CurvesGeometry::adapt_domain ( const VArray< T > & varray,
AttrDomain from,
AttrDomain to ) const
inline

Definition at line 491 of file BKE_curves.hh.

◆ attributes()

AttributeAccessor CurvesGeometry::attributes ( ) const

Definition at line 1865 of file curves_geometry.cc.

◆ attributes_for_write()

MutableAttributeAccessor CurvesGeometry::attributes_for_write ( )

Definition at line 1870 of file curves_geometry.cc.

◆ bezier_evaluated_offsets_for_curve()

Span< int > CurvesGeometry::bezier_evaluated_offsets_for_curve ( int curve_index) const
inline

Retrieve offsets into a Bezier curve's evaluated points for each control point. Stored in the same format as OffsetIndices. Call evaluated_points_by_curve() first to ensure that the evaluated offsets cache is current.

Definition at line 1051 of file BKE_curves.hh.

◆ blend_read()

void CurvesGeometry::blend_read ( BlendDataReader & reader)

Definition at line 1881 of file curves_geometry.cc.

◆ blend_write()

void CurvesGeometry::blend_write ( BlendWriter & writer,
ID & id,
const BlendWriteData & write_data )

Definition at line 1938 of file curves_geometry.cc.

◆ blend_write_prepare()

void CurvesGeometry::blend_write_prepare ( BlendWriteData & write_data)

This function needs to be called before blend_write and before the CurvesGeometry struct is written because it can mutate the CustomData and AttributeStorage structs.

Definition at line 1919 of file curves_geometry.cc.

◆ bounds_min_max()

std::optional< Bounds< float3 > > CurvesGeometry::bounds_min_max ( bool use_radius = true) const

The largest and smallest position values of evaluated points.

Definition at line 1336 of file curves_geometry.cc.

◆ calculate_bezier_auto_handles()

void CurvesGeometry::calculate_bezier_auto_handles ( )

Definition at line 1263 of file curves_geometry.cc.

◆ count_memory()

void CurvesGeometry::count_memory ( MemoryCounter & memory) const

Definition at line 1383 of file curves_geometry.cc.

◆ curve_type_counts()

const std::array< int, CURVE_TYPES_NUM > & CurvesGeometry::curve_type_counts ( ) const
inline

Return the number of curves with each type.

Definition at line 1025 of file BKE_curves.hh.

◆ curve_types()

VArray< int8_t > CurvesGeometry::curve_types ( ) const

The type (CurveType) of each curve, or potentially a single if all are the same type.

Definition at line 229 of file curves_geometry.cc.

◆ curve_types_for_write()

MutableSpan< int8_t > CurvesGeometry::curve_types_for_write ( )

Mutable access to curve types. Call tag_topology_changed and update_curve_types after changing any type. Consider using the other methods to change types below.

Definition at line 238 of file curves_geometry.cc.

◆ curves_num()

int CurvesGeometry::curves_num ( ) const
inline

The number of curves in the data-block.

Definition at line 986 of file BKE_curves.hh.

◆ curves_range()

IndexRange CurvesGeometry::curves_range ( ) const
inline

Definition at line 1004 of file BKE_curves.hh.

◆ cyclic()

VArray< bool > CurvesGeometry::cyclic ( ) const

Whether the curve loops around to connect to itself, on the curve domain.

Definition at line 353 of file curves_geometry.cc.

◆ cyclic_for_write()

MutableSpan< bool > CurvesGeometry::cyclic_for_write ( )

Mutable access to curve cyclic values. Call tag_topology_changed after changes.

Definition at line 358 of file curves_geometry.cc.

◆ deform_verts()

Span< MDeformVert > CurvesGeometry::deform_verts ( ) const

Vertex group data, encoded as an array of indices and weights for every vertex.

Warning
: May be empty.

Definition at line 604 of file curves_geometry.cc.

◆ deform_verts_for_write()

MutableSpan< MDeformVert > CurvesGeometry::deform_verts_for_write ( )

Definition at line 614 of file curves_geometry.cc.

◆ ensure_can_interpolate_to_evaluated()

void CurvesGeometry::ensure_can_interpolate_to_evaluated ( ) const

Definition at line 1186 of file curves_geometry.cc.

◆ ensure_evaluated_lengths()

void CurvesGeometry::ensure_evaluated_lengths ( ) const

Calculates the data described by evaluated_lengths_for_curve if necessary.

Definition at line 1159 of file curves_geometry.cc.

◆ evaluated_length_total_for_curve()

float CurvesGeometry::evaluated_length_total_for_curve ( int curve_index,
bool cyclic ) const
inline

Definition at line 1076 of file BKE_curves.hh.

◆ evaluated_lengths_for_curve()

Span< float > CurvesGeometry::evaluated_lengths_for_curve ( int curve_index,
bool cyclic ) const
inline

Return a cache of accumulated lengths along the curve. Each item is the length of the subsequent segment (the first value is the length of the first segment rather than 0). This calculation is rather trivial, and only depends on the evaluated positions, but the results are used often, and it is necessarily single threaded per curve, so it is cached.

Parameters
cyclicThis argument is redundant with the data stored for the curve, but is passed for performance reasons to avoid looking up the attribute.

Definition at line 1069 of file BKE_curves.hh.

◆ evaluated_normals()

Span< float3 > CurvesGeometry::evaluated_normals ( ) const

Definition at line 1018 of file curves_geometry.cc.

◆ evaluated_points_by_curve()

OffsetIndices< int > CurvesGeometry::evaluated_points_by_curve ( ) const

The offsets of every curve's evaluated points.

Definition at line 698 of file curves_geometry.cc.

◆ evaluated_points_num()

int CurvesGeometry::evaluated_points_num ( ) const
inline

The total number of points in the evaluated poly curve. This can depend on the resolution attribute if it exists.

Definition at line 1045 of file BKE_curves.hh.

◆ evaluated_positions()

Span< float3 > CurvesGeometry::evaluated_positions ( ) const

Definition at line 818 of file curves_geometry.cc.

◆ evaluated_tangents()

Span< float3 > CurvesGeometry::evaluated_tangents ( ) const

Definition at line 898 of file curves_geometry.cc.

◆ fill_curve_types() [1/2]

void CurvesGeometry::fill_curve_types ( const IndexMask & selection,
CurveType type )

Set the types for the curves in the selection and call update_curve_types.

Definition at line 259 of file curves_geometry.cc.

◆ fill_curve_types() [2/2]

void CurvesGeometry::fill_curve_types ( CurveType type)

Set all curve types to the value and call update_curve_types.

Definition at line 244 of file curves_geometry.cc.

◆ handle_positions_left()

std::optional< Span< float3 > > CurvesGeometry::handle_positions_left ( ) const

The positions of Bezier curve handles. Though these are really control points for the Bezier segments, they are stored in separate arrays to better reflect user expectations. Note that values may be generated automatically based on the handle types. Call tag_positions_changed after changes.

Definition at line 431 of file curves_geometry.cc.

◆ handle_positions_left_for_write()

MutableSpan< float3 > CurvesGeometry::handle_positions_left_for_write ( )

Definition at line 438 of file curves_geometry.cc.

◆ handle_positions_right()

std::optional< Span< float3 > > CurvesGeometry::handle_positions_right ( ) const

Definition at line 446 of file curves_geometry.cc.

◆ handle_positions_right_for_write()

MutableSpan< float3 > CurvesGeometry::handle_positions_right_for_write ( )

Definition at line 453 of file curves_geometry.cc.

◆ handle_types_left()

VArray< int8_t > CurvesGeometry::handle_types_left ( ) const

Handle types for Bezier control points. Call tag_topology_changed after changes.

Definition at line 397 of file curves_geometry.cc.

◆ handle_types_left_for_write()

MutableSpan< int8_t > CurvesGeometry::handle_types_left_for_write ( )

Definition at line 405 of file curves_geometry.cc.

◆ handle_types_right()

VArray< int8_t > CurvesGeometry::handle_types_right ( ) const

Definition at line 414 of file curves_geometry.cc.

◆ handle_types_right_for_write()

MutableSpan< int8_t > CurvesGeometry::handle_types_right_for_write ( )

Definition at line 422 of file curves_geometry.cc.

◆ has_curve_with_type() [1/2]

bool CurvesGeometry::has_curve_with_type ( CurveType type) const
inline

Definition at line 1014 of file BKE_curves.hh.

◆ has_curve_with_type() [2/2]

bool CurvesGeometry::has_curve_with_type ( Span< CurveType > types) const
inline

Definition at line 1019 of file BKE_curves.hh.

◆ has_cyclic_curve()

bool CurvesGeometry::has_cyclic_curve ( ) const

Definition at line 727 of file curves_geometry.cc.

◆ indices_for_curve_type() [1/2]

IndexMask CurvesGeometry::indices_for_curve_type ( CurveType type,
const IndexMask & selection,
IndexMaskMemory & memory ) const

Definition at line 741 of file curves_geometry.cc.

◆ indices_for_curve_type() [2/2]

IndexMask CurvesGeometry::indices_for_curve_type ( CurveType type,
IndexMaskMemory & memory ) const

All of the curve indices for curves with a specific type.

Definition at line 735 of file curves_geometry.cc.

◆ interpolate_to_evaluated() [1/2]

void CurvesGeometry::interpolate_to_evaluated ( GSpan src,
GMutableSpan dst ) const

Evaluate generic data for curve control points to the standard evaluated points of the curves.

Definition at line 1133 of file curves_geometry.cc.

◆ interpolate_to_evaluated() [2/2]

void CurvesGeometry::interpolate_to_evaluated ( int curve_index,
GSpan src,
GMutableSpan dst ) const

Evaluate a generic data to the standard evaluated points of a specific curve, defined by the resolution attribute or other factors, depending on the curve type.

Warning
This function expects offsets to the evaluated points for each curve to be calculated. That can be ensured with ensure_can_interpolate_to_evaluated.

Definition at line 1113 of file curves_geometry.cc.

◆ is_empty()

bool CurvesGeometry::is_empty ( ) const
inline

Return true if there are no curves in the geometry.

Definition at line 994 of file BKE_curves.hh.

◆ is_single_type()

bool CurvesGeometry::is_single_type ( CurveType type) const
inline

Return true if all of the curves have the provided type.

Definition at line 1009 of file BKE_curves.hh.

◆ material_index_max()

std::optional< int > CurvesGeometry::material_index_max ( ) const

Get the largest material index used by the geometry or nullopt if there are none. The returned value is clamped between 0 and MAXMAT even if the stored material indices may be out of that range.

Definition at line 1369 of file curves_geometry.cc.

◆ normal_mode()

VArray< int8_t > CurvesGeometry::normal_mode ( ) const

Which method to use for calculating the normals of evaluated points (NormalMode). Call tag_normals_changed after changes.

Definition at line 375 of file curves_geometry.cc.

◆ normal_mode_for_write()

MutableSpan< int8_t > CurvesGeometry::normal_mode_for_write ( )

Definition at line 380 of file curves_geometry.cc.

◆ nurbs_custom_knot_curves()

IndexMask CurvesGeometry::nurbs_custom_knot_curves ( IndexMaskMemory & memory) const

Builds mask of NURBS curves with knot mode NURBS_KNOT_MODE_CUSTOM.

Definition at line 537 of file curves_geometry.cc.

◆ nurbs_custom_knots()

Span< float > CurvesGeometry::nurbs_custom_knots ( ) const

Custom knots for NURBS curves with knots mode NURBS_KNOT_MODE_CUSTOM.

Definition at line 519 of file curves_geometry.cc.

◆ nurbs_custom_knots_by_curve()

OffsetIndices< int > CurvesGeometry::nurbs_custom_knots_by_curve ( ) const

The offsets of every curve into arrays on #CurvesGeometry::nurbs_custom_knots. Curves with knot mode other than NURBS_KNOT_MODE_CUSTOM will have zero sized IndexRange.

Definition at line 548 of file curves_geometry.cc.

◆ nurbs_custom_knots_for_write()

MutableSpan< float > CurvesGeometry::nurbs_custom_knots_for_write ( )

Definition at line 527 of file curves_geometry.cc.

◆ nurbs_custom_knots_resize()

void CurvesGeometry::nurbs_custom_knots_resize ( int knots_num)

Resizes custom knots array. Used when knots number is known in advance and knot values are set together with topological data.

Definition at line 594 of file curves_geometry.cc.

◆ nurbs_custom_knots_update_size()

void CurvesGeometry::nurbs_custom_knots_update_size ( )

Resizes custom knots array depending on topological data. Depends on curve offsets, knot modes, orders and cyclic data. Used to resize internal knots array before writing knots.

Definition at line 580 of file curves_geometry.cc.

◆ nurbs_has_custom_knots()

bool CurvesGeometry::nurbs_has_custom_knots ( ) const
inline

Definition at line 990 of file BKE_curves.hh.

◆ nurbs_knots_modes()

VArray< int8_t > CurvesGeometry::nurbs_knots_modes ( ) const

The automatic generation mode for each NURBS curve's knots vector, on the curve domain. Call tag_topology_changed after changes.

Definition at line 486 of file curves_geometry.cc.

◆ nurbs_knots_modes_for_write()

MutableSpan< int8_t > CurvesGeometry::nurbs_knots_modes_for_write ( )

Definition at line 494 of file curves_geometry.cc.

◆ nurbs_orders()

VArray< int8_t > CurvesGeometry::nurbs_orders ( ) const

The order (degree plus one) of each NURBS curve, on the curve domain. Call tag_topology_changed after changes.

Definition at line 461 of file curves_geometry.cc.

◆ nurbs_orders_for_write()

MutableSpan< int8_t > CurvesGeometry::nurbs_orders_for_write ( )

Definition at line 466 of file curves_geometry.cc.

◆ nurbs_weights()

std::optional< Span< float > > CurvesGeometry::nurbs_weights ( ) const

The weight for each control point for NURBS curves. Call tag_positions_changed after changes.

Definition at line 472 of file curves_geometry.cc.

◆ nurbs_weights_for_write()

MutableSpan< float > CurvesGeometry::nurbs_weights_for_write ( )

Definition at line 477 of file curves_geometry.cc.

◆ offsets()

Span< int > CurvesGeometry::offsets ( ) const

The index of the first point in every curve. The size of this span is one larger than the number of curves, but the spans will be empty if there are no curves/points.

Consider using points_by_curve rather than these offsets directly.

Definition at line 336 of file curves_geometry.cc.

◆ offsets_for_write()

MutableSpan< int > CurvesGeometry::offsets_for_write ( )

Definition at line 343 of file curves_geometry.cc.

◆ operator=() [1/2]

CurvesGeometry & CurvesGeometry::operator= ( const CurvesGeometry & other)

Definition at line 153 of file curves_geometry.cc.

◆ operator=() [2/2]

CurvesGeometry & CurvesGeometry::operator= ( CurvesGeometry && other)

Definition at line 199 of file curves_geometry.cc.

◆ point_to_curve_map()

Array< int > CurvesGeometry::point_to_curve_map ( ) const

Definition at line 749 of file curves_geometry.cc.

◆ points_by_curve()

OffsetIndices< int > CurvesGeometry::points_by_curve ( ) const
inline

The offsets of every curve into arrays on the points domain.

Definition at line 1039 of file BKE_curves.hh.

◆ points_num()

int CurvesGeometry::points_num ( ) const
inline

The total number of control points in all curves.

Definition at line 982 of file BKE_curves.hh.

◆ points_range()

IndexRange CurvesGeometry::points_range ( ) const
inline

Definition at line 1000 of file BKE_curves.hh.

◆ positions()

Span< float3 > CurvesGeometry::positions ( ) const

Definition at line 314 of file curves_geometry.cc.

◆ positions_for_write()

MutableSpan< float3 > CurvesGeometry::positions_for_write ( )

Definition at line 319 of file curves_geometry.cc.

◆ radius()

VArray< float > CurvesGeometry::radius ( ) const

Definition at line 325 of file curves_geometry.cc.

◆ radius_for_write()

MutableSpan< float > CurvesGeometry::radius_for_write ( )

Definition at line 330 of file curves_geometry.cc.

◆ remove_attributes_based_on_types()

void CurvesGeometry::remove_attributes_based_on_types ( )

Remove any attributes that are unused based on the types in the curves.

Definition at line 1707 of file curves_geometry.cc.

◆ remove_curves()

void CurvesGeometry::remove_curves ( const IndexMask & curves_to_delete,
const AttributeFilter & attribute_filter )

Definition at line 1586 of file curves_geometry.cc.

◆ remove_points()

void CurvesGeometry::remove_points ( const IndexMask & points_to_delete,
const AttributeFilter & attribute_filter )

Definition at line 1506 of file curves_geometry.cc.

◆ resize()

void CurvesGeometry::resize ( int points_num,
int curves_num )

Change the number of curves and/or points.

Warning
To avoid redundant writes, newly created attribute values are not initialized. They must be initialized by the caller afterwards.

Definition at line 1198 of file curves_geometry.cc.

◆ resolution()

VArray< int > CurvesGeometry::resolution ( ) const

How many evaluated points to create for each segment when evaluating Bezier, Catmull Rom, and NURBS curves. On the curve domain. Values must be one or greater.

Definition at line 364 of file curves_geometry.cc.

◆ resolution_for_write()

MutableSpan< int > CurvesGeometry::resolution_for_write ( )

Mutable access to curve resolution. Call tag_topology_changed after changes.

Definition at line 369 of file curves_geometry.cc.

◆ reverse_curves()

void CurvesGeometry::reverse_curves ( const IndexMask & curves_to_reverse)

Change the direction of selected curves (switch the start and end) without changing their shape.

Definition at line 1644 of file curves_geometry.cc.

◆ surface_uv_coords()

std::optional< Span< float2 > > CurvesGeometry::surface_uv_coords ( ) const

UV coordinate for each curve that encodes where the curve is attached to the surface mesh.

Definition at line 503 of file curves_geometry.cc.

◆ surface_uv_coords_for_write()

MutableSpan< float2 > CurvesGeometry::surface_uv_coords_for_write ( )

Definition at line 511 of file curves_geometry.cc.

◆ tag_material_index_changed()

void CurvesGeometry::tag_material_index_changed ( )

Call after changing the "material_index" attribute.

Definition at line 1249 of file curves_geometry.cc.

◆ tag_normals_changed()

void CurvesGeometry::tag_normals_changed ( )

Call after changing the "tilt" or "up" attributes.

Definition at line 1241 of file curves_geometry.cc.

◆ tag_positions_changed()

void CurvesGeometry::tag_positions_changed ( )

Call after deforming the position attribute.

Definition at line 1222 of file curves_geometry.cc.

◆ tag_radii_changed()

void CurvesGeometry::tag_radii_changed ( )

Call when making manual changes to the "radius" attribute. The attribute API will also call this in #finish() calls.

Definition at line 1245 of file curves_geometry.cc.

◆ tag_topology_changed()

void CurvesGeometry::tag_topology_changed ( )

Call after any operation that changes the topology (number of points, evaluated points, or the total count).

Definition at line 1231 of file curves_geometry.cc.

◆ tilt()

VArray< float > CurvesGeometry::tilt ( ) const

The angle used to rotate evaluated normals around the tangents after their calculation. Call tag_normals_changed after changes.

Definition at line 386 of file curves_geometry.cc.

◆ tilt_for_write()

MutableSpan< float > CurvesGeometry::tilt_for_write ( )

Definition at line 391 of file curves_geometry.cc.

◆ transform()

void CurvesGeometry::transform ( const float4x4 & matrix)

Definition at line 1322 of file curves_geometry.cc.

◆ translate()

void CurvesGeometry::translate ( const float3 & translation)

Definition at line 1295 of file curves_geometry.cc.

◆ update_curve_types()

void CurvesGeometry::update_curve_types ( )

Update the cached count of curves of each type, necessary after curve_types_for_write.

Definition at line 309 of file curves_geometry.cc.


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