Blender V5.0
blender::bke::CurvesGeometryRuntime Class Reference

#include <BKE_curves.hh>

Classes

struct  EvaluatedOffsets

Public Attributes

const ImplicitSharingInfocurve_offsets_sharing_info = nullptr
const ImplicitSharingInfocustom_knots_sharing_info = nullptr
std::array< int, CURVE_TYPES_NUMtype_counts
SharedCache< EvaluatedOffsetsevaluated_offsets_cache
SharedCache< bool > has_cyclic_curve_cache
SharedCache< Vector< curves::nurbs::BasisCache > > nurbs_basis_cache
SharedCache< Vector< float3 > > evaluated_position_cache
SharedCache< Bounds< float3 > > bounds_cache
SharedCache< Bounds< float3 > > bounds_with_radius_cache
SharedCache< Vector< float > > evaluated_length_cache
SharedCache< Vector< float3 > > evaluated_tangent_cache
SharedCache< Vector< float3 > > evaluated_normal_cache
SharedCache< std::optional< int > > max_material_index_cache
SharedCache< Vector< int > > custom_knot_offsets_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 74 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 139 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 113 of file BKE_curves.hh.

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

◆ bounds_with_radius_cache

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

◆ 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 147 of file BKE_curves.hh.

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

◆ curve_offsets_sharing_info

const ImplicitSharingInfo* blender::bke::CurvesGeometryRuntime::curve_offsets_sharing_info = nullptr

◆ custom_knot_offsets_cache

SharedCache<Vector<int> > blender::bke::CurvesGeometryRuntime::custom_knot_offsets_cache
mutable

Offsets of custom knots in CurvesGeometry::custom_knots for each curve in CurvesGeometry. For curves with no custom knots next offset value stays the same.

Definition at line 136 of file BKE_curves.hh.

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

◆ custom_knots_sharing_info

const ImplicitSharingInfo* blender::bke::CurvesGeometryRuntime::custom_knots_sharing_info = nullptr

◆ 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 121 of file BKE_curves.hh.

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

◆ evaluated_normal_cache

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

◆ evaluated_offsets_cache

SharedCache<EvaluatedOffsets> blender::bke::CurvesGeometryRuntime::evaluated_offsets_cache
mutable

Definition at line 96 of file BKE_curves.hh.

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

◆ 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 106 of file BKE_curves.hh.

Referenced by 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 124 of file BKE_curves.hh.

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

◆ has_cyclic_curve_cache

SharedCache<bool> blender::bke::CurvesGeometryRuntime::has_cyclic_curve_cache
mutable

Definition at line 98 of file BKE_curves.hh.

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

◆ max_material_index_cache

SharedCache<std::optional<int> > blender::bke::CurvesGeometryRuntime::max_material_index_cache
mutable

◆ nurbs_basis_cache

SharedCache<Vector<curves::nurbs::BasisCache> > blender::bke::CurvesGeometryRuntime::nurbs_basis_cache
mutable

Definition at line 100 of file BKE_curves.hh.

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

◆ 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 86 of file BKE_curves.hh.


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