|
Blender V4.5
|
#include <DNA_curves_types.h>
Inherited by blender::bke::CurvesGeometry.
Public Attributes | |
| int * | curve_offsets |
| struct AttributeStorage | attribute_storage |
| CustomData | point_data |
| CustomData | curve_data |
| int | point_num |
| int | curve_num |
| ListBase | vertex_group_names |
| int | vertex_group_active_index |
| int | attributes_active_index |
| CurvesGeometryRuntimeHandle * | runtime |
| float * | custom_knots |
| int | custom_knot_num |
| char | _pad [4] |
A reusable data structure for geometry consisting of many curves. All control point data is stored contiguously for better efficiency when there are many curves. Multiple curve types are supported, as described in CurveType. Data for each curve is accessed by slicing the main point_data arrays.
The data structure is meant to separate geometry data storage and processing from Blender focused ID data-block handling. The struct can also be embedded to allow reusing it.
Definition at line 103 of file DNA_curves_types.h.
| char CurvesGeometry::_pad[4] |
Definition at line 171 of file DNA_curves_types.h.
| struct AttributeStorage CurvesGeometry::attribute_storage |
Curve and point domain attributes. Currently unused at runtime, but used for forward compatibility when reading files (see #122398).
Definition at line 124 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::blend_read(), blender::bke::CurvesGeometry::blend_write(), blender::bke::CurvesGeometry::blend_write_prepare(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), and blender::bke::CurvesGeometry::~CurvesGeometry().
| int CurvesGeometry::attributes_active_index |
Set to -1 when none is active.
Definition at line 154 of file DNA_curves_types.h.
Referenced by BKE_attributes_active_index_p(), curves_blend_write(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), and blender::geometry::join_curves_ranges().
| CustomData CurvesGeometry::curve_data |
All attributes stored on curves (#AttrDomain::Curve).
Definition at line 135 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::blend_read(), blender::bke::CurvesGeometry::blend_write(), convert_grease_pencil_stroke_hardness_to_softness(), blender::bke::curves::copy_only_curve_domain(), blender::bke::CurvesGeometry::count_memory(), blender::draw::curves_sub_pass_setup_implementation(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::geometry::debug_randomize_curve_order(), blender::draw::ensure_attributes(), get_domains(), blender::bke::CurvesGeometry::resize(), and blender::bke::CurvesGeometry::~CurvesGeometry().
| int CurvesGeometry::curve_num |
The number of curves.
Definition at line 144 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::blend_read(), blender::bke::CurvesGeometry::blend_write(), convert_grease_pencil_stroke_hardness_to_softness(), blender::bke::CurvesGeometry::count_memory(), blender::geometry::create_curves_for_faces(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::geometry::debug_randomize_curve_order(), blender::geometry::execute_realize_curve_tasks(), blender::geometry::extract_curves(), blender::geometry::gather_realize_tasks_recursive(), get_domains(), blender::bke::CurvesGeometry::is_empty(), blender::modify_drawing(), blender::modify_drawing(), blender::modify_drawing(), blender::modify_drawing(), blender::nodes::node_geo_interpolate_curves_cc::node_geo_exec(), blender::bke::CurvesGeometry::nurbs_custom_knots_by_curve(), blender::bke::CurvesGeometry::offsets(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::points_by_curve(), blender::io::usd::populate_curve_props(), blender::io::usd::populate_curve_props_for_bezier(), blender::io::usd::populate_curve_props_for_nurbs(), and blender::bke::CurvesGeometry::resize().
| int* CurvesGeometry::curve_offsets |
The start index of each curve in the point data. The size of each curve can be calculated by subtracting the offset from the next offset. That is valid even for the last curve because this array is allocated with a length one larger than the number of curves. This is allowed to be null when there are no curves.
Every curve offset must be at least one larger than the previous. In other words, every curve must have at least one point. The first value is 0 and the last value is point_num.
This array is shared based on the bke::CurvesGeometryRuntime::curve_offsets_sharing_info. Avoid accessing directly when possible.
Definition at line 118 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::blend_read(), blender::bke::CurvesGeometry::blend_write(), blender::geometry::create_curves_for_faces(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::offsets(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::resize(), and blender::bke::CurvesGeometry::~CurvesGeometry().
| int CurvesGeometry::custom_knot_num |
Definition at line 169 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::blend_read(), blender::bke::CurvesGeometry::blend_write(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::geometry::execute_realize_curve_tasks(), blender::geometry::gather_realize_tasks_recursive(), blender::bke::CurvesGeometry::nurbs_custom_knots(), blender::bke::CurvesGeometry::nurbs_custom_knots_for_write(), blender::bke::CurvesGeometry::nurbs_custom_knots_resize(), blender::bke::CurvesGeometry::nurbs_custom_knots_update_size(), and blender::bke::CurvesGeometry::nurbs_has_custom_knots().
| float* CurvesGeometry::custom_knots |
Knot values for NURBS curves with NURBS_KNOT_MODE_CUSTOM mode. Array is allocated with bke::CurvesGeometry::nurbs_custom_knots_update_size() or bke::CurvesGeometry::nurbs_custom_knots_resize(). Indexed with bke::CurvesGeometry::nurbs_custom_knots_by_curve().
Definition at line 167 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::nurbs_custom_knots(), blender::bke::CurvesGeometry::nurbs_custom_knots_for_write(), blender::bke::CurvesGeometry::nurbs_custom_knots_resize(), blender::bke::CurvesGeometry::nurbs_custom_knots_update_size(), blender::bke::CurvesGeometry::reverse_curves(), and blender::bke::CurvesGeometry::~CurvesGeometry().
| CustomData CurvesGeometry::point_data |
All attributes stored on control points (#AttrDomain::Point). This might not contain a layer for positions if there are no points.
Definition at line 130 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::blend_read(), blender::bke::CurvesGeometry::blend_write(), blender::bke::CurvesGeometry::count_memory(), blender::draw::curves_sub_pass_setup_implementation(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::geometry::debug_randomize_curve_order(), blender::bke::CurvesGeometry::deform_verts(), blender::bke::CurvesGeometry::deform_verts_for_write(), blender::draw::ensure_attributes(), get_domains(), blender::bke::CurvesGeometry::resize(), and blender::bke::CurvesGeometry::~CurvesGeometry().
| int CurvesGeometry::point_num |
The total number of control points in all curves.
Definition at line 140 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::blend_read(), blender::bke::CurvesGeometry::count_memory(), blender::create_envelope_strokes(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::deform_verts(), blender::bke::CurvesGeometry::deform_verts_for_write(), blender::geometry::execute_realize_curve_tasks(), blender::geometry::extract_curves_points(), blender::geometry::gather_realize_tasks_recursive(), get_domains(), blender::geometry::get_final_points_num(), blender::modifier::greasepencil::get_influence_vertex_weights(), blender::bke::CurvesGeometry::is_empty(), blender::nodes::node_geo_deform_curves_on_surface_cc::node_geo_exec(), blender::bke::CurvesGeometry::points_num(), blender::bke::remember_deformed_curve_positions_if_necessary(), blender::bke::CurvesGeometry::resize(), and blender::geometry::seed_from_curves().
| CurvesGeometryRuntimeHandle* CurvesGeometry::runtime |
Runtime data for curves, stored as a pointer to allow defining this as a C++ class.
Definition at line 159 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::bezier_evaluated_offsets_for_curve(), blender::bke::curves::copy_only_curve_domain(), blender::geometry::create_curves_for_faces(), blender::bke::CurvesGeometry::curve_type_counts(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::ensure_evaluated_lengths(), blender::bke::CurvesGeometry::evaluated_lengths_for_curve(), blender::bke::CurvesGeometry::evaluated_normals(), blender::bke::CurvesGeometry::evaluated_points_by_curve(), blender::bke::CurvesGeometry::evaluated_positions(), blender::bke::CurvesGeometry::evaluated_tangents(), blender::bke::CurvesGeometry::fill_curve_types(), blender::bke::CurvesGeometry::interpolate_to_evaluated(), blender::bke::CurvesGeometry::interpolate_to_evaluated(), blender::bke::CurvesGeometry::nurbs_custom_knots_by_curve(), blender::bke::CurvesGeometry::nurbs_custom_knots_for_write(), blender::bke::CurvesGeometry::nurbs_custom_knots_resize(), blender::bke::CurvesGeometry::nurbs_custom_knots_update_size(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::CurvesGeometry::update_curve_types(), and blender::bke::CurvesGeometry::~CurvesGeometry().
| int CurvesGeometry::vertex_group_active_index |
The active index in the vertex_group_names list.
Definition at line 151 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::CurvesGeometry(), and blender::bke::CurvesGeometry::CurvesGeometry().
| ListBase CurvesGeometry::vertex_group_names |
List of vertex group (bDeformGroup) names and flags only.
Definition at line 149 of file DNA_curves_types.h.
Referenced by blender::ed::greasepencil::apply_eval_grease_pencil_data(), blender::bke::CurvesGeometry::blend_read(), blender::bke::CurvesGeometry::blend_write(), blender::geometry::convert_curves_to_bezier(), blender::geometry::convert_curves_to_catmull_rom_or_poly(), blender::geometry::convert_curves_to_nurbs(), blender::ed::curves::copy_data_to_geometry(), blender::geometry::copy_vertex_group_names(), blender::geometry::create_curves_for_faces(), blender::bke::curves_copy_curve_selection(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::geometry::fit_poly_to_bezier_curves(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::geometry::join_curves_ranges(), blender::modify_curves(), blender::ed::greasepencil::remap_vertex_groups(), blender::geometry::remove_points_and_split(), blender::geometry::reorder_curves_geometry(), blender::geometry::resample_to_count(), blender::geometry::resample_to_evaluated(), blender::geometry::resample_to_length(), blender::geometry::resample_to_uniform(), blender::geometry::subdivide_curves(), blender::ed::greasepencil::weight_sample_invoke(), blender::write_weights_for_drawing(), and blender::bke::CurvesGeometry::~CurvesGeometry().