Blender V5.0
CurvesGeometry Struct Reference

#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
CurvesGeometryRuntimeHandleruntime
floatcustom_knots
int custom_knot_num
char _pad [4]

Detailed Description

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.

Member Data Documentation

◆ _pad

char CurvesGeometry::_pad[4]

Definition at line 166 of file DNA_curves_types.h.

◆ attribute_storage

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().

◆ attributes_active_index

◆ curve_data_legacy

◆ curve_num

◆ curve_offsets

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.

Note
This is not stored as an attribute because its size is one larger than curve_num.

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().

◆ custom_knot_num

◆ custom_knots

◆ point_data

◆ point_num

◆ runtime

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().

◆ vertex_group_active_index

int CurvesGeometry::vertex_group_active_index

◆ vertex_group_names

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().


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