Blender
V3.3
|
#include <BKE_spline.hh>
Protected Member Functions | |
void | correct_end_tangents () const final |
void | copy_settings (Spline &dst) const final |
void | copy_data (Spline &dst) const final |
void | reverse_impl () override |
Additional Inherited Members | |
![]() | |
static void | copy_base_settings (const Spline &src, Spline &dst) |
![]() | |
NormalMode | normal_mode = NORMAL_MODE_MINIMUM_TWIST |
blender::bke::CustomDataAttributes | attributes |
![]() | |
CurveType | type_ |
bool | is_cyclic_ = false |
blender::Vector< blender::float3 > | evaluated_tangents_cache_ |
std::mutex | tangent_cache_mutex_ |
bool | tangent_cache_dirty_ = true |
blender::Vector< blender::float3 > | evaluated_normals_cache_ |
std::mutex | normal_cache_mutex_ |
bool | normal_cache_dirty_ = true |
blender::Vector< float > | evaluated_lengths_cache_ |
std::mutex | length_cache_mutex_ |
bool | length_cache_dirty_ = true |
A Poly spline is like a Bezier spline with a resolution of one. The main reason to distinguish the two is for reduced complexity and increased performance, since interpolating data to control points does not change it.
Poly spline code is very simple, since it doesn't do anything that the base Spline doesn't handle. Mostly it just worries about storing the data used by the base class.
Definition at line 557 of file BKE_spline.hh.
|
inline |
Definition at line 563 of file BKE_spline.hh.
|
inline |
Definition at line 566 of file BKE_spline.hh.
Implements Spline.
Definition at line 18 of file spline_poly.cc.
Implements Spline.
Definition at line 13 of file spline_poly.cc.
|
finalprotectedvirtual |
Implements Spline.
Definition at line 84 of file spline_poly.cc.
|
finalvirtual |
|
finalvirtual |
Poly spline interpolation from control points to evaluated points is a special case, since the result data is the same as the input data. This function returns a #GVArray that points to the original data. Therefore the lifetime of the returned virtual array must not be longer than the source data.
Implements Spline.
Definition at line 93 of file spline_poly.cc.
References BLI_assert, and src.
|
finalvirtual |
Mark all caches for re-computation. This must be called after any operation that would change the generated positions, tangents, normals, mapping, etc. of the evaluated points.
Implements Spline.
Definition at line 72 of file spline_poly.cc.
References Spline::length_cache_dirty_, Spline::normal_cache_dirty_, and Spline::tangent_cache_dirty_.
Referenced by resize().
Implements Spline.
Definition at line 47 of file spline_poly.cc.
|
finalvirtual |
Implements Spline.
Definition at line 43 of file spline_poly.cc.
Referenced by evaluated_positions(), blender::nodes::node_geo_curve_trim_cc::to_single_point_nurbs(), and blender::nodes::node_geo_curve_trim_cc::trim_nurbs_spline().
Implements Spline.
Definition at line 55 of file spline_poly.cc.
|
finalvirtual |
Implements Spline.
Definition at line 51 of file spline_poly.cc.
Referenced by blender::nodes::node_geo_curve_trim_cc::to_single_point_nurbs(), and blender::nodes::node_geo_curve_trim_cc::trim_nurbs_spline().
|
finalvirtual |
Implements Spline.
Definition at line 34 of file spline_poly.cc.
References Spline::attributes, mark_cache_invalid(), blender::bke::CustomDataAttributes::reallocate(), blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), and size().
Referenced by blender::nodes::node_geo_curve_trim_cc::to_single_point_nurbs(), and blender::nodes::node_geo_curve_trim_cc::trim_nurbs_spline().
|
overrideprotectedvirtual |
Implements Spline.
Definition at line 68 of file spline_poly.cc.
|
finalvirtual |
Return the number of control points.
Implements Spline.
Definition at line 26 of file spline_poly.cc.
References BLI_assert, and blender::Vector< T, InlineBufferCapacity, Allocator >::size().
Referenced by evaluated_points_num(), and resize().
Implements Spline.
Definition at line 63 of file spline_poly.cc.
|
finalvirtual |
Implements Spline.
Definition at line 59 of file spline_poly.cc.
Referenced by blender::nodes::node_geo_curve_trim_cc::to_single_point_nurbs(), and blender::nodes::node_geo_curve_trim_cc::trim_nurbs_spline().