Blender V4.3
blender::bke::CurvesGeometryRuntime Class Reference

#include <BKE_curves.hh>

Classes

struct  EvaluatedOffsets
 

Public Attributes

const ImplicitSharingInfocurve_offsets_sharing_info = nullptr
 
std::array< int, CURVE_TYPES_NUMtype_counts
 
SharedCache< EvaluatedOffsetsevaluated_offsets_cache
 
SharedCache< Vector< curves::nurbs::BasisCache > > nurbs_basis_cache
 
SharedCache< Vector< float3 > > evaluated_position_cache
 
SharedCache< Bounds< float3 > > bounds_cache
 
SharedCache< Vector< float > > evaluated_length_cache
 
SharedCache< Vector< float3 > > evaluated_tangent_cache
 
SharedCache< Vector< float3 > > evaluated_normal_cache
 
std::unique_ptr< bake::BakeMaterialsListbake_materials
 
bool check_type_counts = true
 

Detailed Description

Contains derived data, caches, and other information not saved in files.

Definition at line 69 of file BKE_curves.hh.

Member Data Documentation

◆ bake_materials

std::unique_ptr<bake::BakeMaterialsList> blender::bke::CurvesGeometryRuntime::bake_materials

Stores weak references to material data blocks.

Definition at line 119 of file BKE_curves.hh.

◆ bounds_cache

SharedCache<Bounds<float3> > blender::bke::CurvesGeometryRuntime::bounds_cache
mutable

A cache of bounds shared between data-blocks with unchanged positions. When data changes affect the bounds, the cache is "un-shared" with other geometries. See #SharedCache comments.

Definition at line 103 of file BKE_curves.hh.

Referenced by blender::bke::CurvesGeometry::bounds_min_max(), blender::bke::CurvesGeometry::tag_positions_changed(), and blender::bke::CurvesGeometry::translate().

◆ check_type_counts

bool blender::bke::CurvesGeometryRuntime::check_type_counts = true

Type counts have to be set eagerly after each operation. It's checked with asserts that the type counts are correct when accessed. However, this check is expensive and shouldn't be done all the time because it makes debug builds unusable in some situations that would be fine otherwise.

Definition at line 127 of file BKE_curves.hh.

Referenced by blender::bke::CurvesGeometry::tag_topology_changed().

◆ curve_offsets_sharing_info

◆ evaluated_length_cache

SharedCache<Vector<float> > blender::bke::CurvesGeometryRuntime::evaluated_length_cache
mutable

Cache of lengths along each evaluated curve for each evaluated point. If a curve is cyclic, it needs one more length value to correspond to the last segment, so in order to make slicing this array for a curve fast, an extra float is stored for every curve.

Definition at line 110 of file BKE_curves.hh.

Referenced by blender::bke::CurvesGeometry::ensure_evaluated_lengths(), and blender::bke::CurvesGeometry::tag_positions_changed().

◆ evaluated_normal_cache

SharedCache<Vector<float3> > blender::bke::CurvesGeometryRuntime::evaluated_normal_cache
mutable

◆ evaluated_offsets_cache

◆ evaluated_position_cache

SharedCache<Vector<float3> > blender::bke::CurvesGeometryRuntime::evaluated_position_cache
mutable

Cache of evaluated positions for all curves. The positions span will be used directly rather than the cache when all curves are poly type.

Definition at line 96 of file BKE_curves.hh.

Referenced by blender::bke::CurvesGeometry::evaluated_positions(), and blender::bke::CurvesGeometry::tag_positions_changed().

◆ evaluated_tangent_cache

SharedCache<Vector<float3> > blender::bke::CurvesGeometryRuntime::evaluated_tangent_cache
mutable

Direction of the curve at each evaluated point.

Definition at line 113 of file BKE_curves.hh.

Referenced by blender::bke::CurvesGeometry::evaluated_tangents(), and blender::bke::CurvesGeometry::tag_positions_changed().

◆ nurbs_basis_cache

◆ type_counts

std::array<int, CURVE_TYPES_NUM> blender::bke::CurvesGeometryRuntime::type_counts

The cached number of curves with each type. Unlike other caches here, this is not computed lazily, since it is needed so often and types are not adjusted much anyway.

Definition at line 78 of file BKE_curves.hh.


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