|
Blender V5.0
|
#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_legacy |
| 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 attribute 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 104 of file DNA_curves_types.h.
| char CurvesGeometry::_pad[4] |
Definition at line 166 of file DNA_curves_types.h.
| struct AttributeStorage CurvesGeometry::attribute_storage |
Curve and point domain attributes.
Definition at line 122 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::count_memory(), blender::bke::CurvesGeometry::curve_types(), blender::bke::CurvesGeometry::curve_types_for_write(), curves_foreach_working_space_color(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::CurvesGeometry(), blender::bke::CurvesGeometry::cyclic(), blender::bke::CurvesGeometry::cyclic_for_write(), blender::geometry::debug_randomize_curve_order(), AttributeOwner::get_storage(), blender::bke::CurvesGeometry::handle_positions_left(), blender::bke::CurvesGeometry::handle_positions_left_for_write(), blender::bke::CurvesGeometry::handle_positions_right(), blender::bke::CurvesGeometry::handle_positions_right_for_write(), blender::bke::CurvesGeometry::handle_types_left(), blender::bke::CurvesGeometry::handle_types_left_for_write(), blender::bke::CurvesGeometry::handle_types_right(), blender::bke::CurvesGeometry::handle_types_right_for_write(), blender::bke::CurvesGeometry::normal_mode(), blender::bke::CurvesGeometry::normal_mode_for_write(), blender::bke::CurvesGeometry::nurbs_knots_modes(), blender::bke::CurvesGeometry::nurbs_knots_modes_for_write(), blender::bke::CurvesGeometry::nurbs_orders(), blender::bke::CurvesGeometry::nurbs_orders_for_write(), blender::bke::CurvesGeometry::nurbs_weights(), blender::bke::CurvesGeometry::nurbs_weights_for_write(), blender::bke::CurvesGeometry::positions(), blender::bke::CurvesGeometry::positions_for_write(), blender::bke::CurvesGeometry::radius(), blender::bke::CurvesGeometry::radius_for_write(), blender::bke::CurvesGeometry::resize(), blender::bke::CurvesGeometry::resolution(), blender::bke::CurvesGeometry::resolution_for_write(), blender::bke::CurvesGeometry::surface_uv_coords(), blender::bke::CurvesGeometry::surface_uv_coords_for_write(), blender::bke::CurvesGeometry::tilt(), blender::bke::CurvesGeometry::tilt_for_write(), and blender::bke::CurvesGeometry::~CurvesGeometry().
| int CurvesGeometry::attributes_active_index |
Set to -1 when none is active.
Definition at line 149 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_legacy |
Used only for backward compatibility with old files.
Definition at line 130 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::blend_read(), blender::bke::CurvesGeometry::blend_write_prepare(), convert_grease_pencil_stroke_hardness_to_softness(), and blender::bke::CurvesGeometry::CurvesGeometry().
| int CurvesGeometry::curve_num |
The number of curves.
Definition at line 139 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::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::extract_curves(), blender::geometry::gather_realize_tasks_recursive(), 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 119 of file DNA_curves_types.h.
Referenced by blender::bke::CurvesGeometry::blend_read(), blender::bke::CurvesGeometry::blend_write(), blender::geometry::create_curves_for_faces(), curves_blend_write(), 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 164 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::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 162 of file DNA_curves_types.h.
Referenced by curves_blend_write(), 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(), blender::io::obj::OBJCurvesTest::run_nurbs_test(), and blender::bke::CurvesGeometry::~CurvesGeometry().
| CustomData CurvesGeometry::point_data |
Generic attributes are stored in attribute_storage. This is still used for vertex groups.
Definition at line 127 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::count_memory(), 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::bke::CurvesGeometry::resize(), and blender::bke::CurvesGeometry::~CurvesGeometry().
| int CurvesGeometry::point_num |
The total number of control points in all curves.
Definition at line 135 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::extract_curves_points(), blender::geometry::gather_realize_tasks_recursive(), 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 154 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::draw::CurvesEvalCache::ensure_bezier(), blender::bke::CurvesGeometry::ensure_evaluated_lengths(), blender::draw::CurvesEvalCache::ensure_nurbs(), 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(), handle_curves_knot_mode(), handle_curves_order(), blender::bke::CurvesGeometry::has_cyclic_curve(), 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 146 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 144 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::curves::pen_tool::extrude_curves(), blender::ed::greasepencil::extrude_grease_pencil_curves(), blender::geometry::fit_poly_to_bezier_curves(), blender::ed::curves::pen_tool::insert_point_to_curve(), blender::ed::sculpt_paint::greasepencil::interpolate_between_curves(), blender::geometry::join_curves_ranges(), MOD_lineart_gpencil_generate_v3(), 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().