Blender V5.0
DNA_curves_types.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "DNA_ID.h"
12#include "DNA_attribute_types.h"
14#include "DNA_listBase.h"
15
16#include "BLI_utildefines.h"
17
18#ifdef __cplusplus
19namespace blender::bke {
20class CurvesGeometry;
22} // namespace blender::bke
24#else
26#endif
27
58/* The number of supported curve types. */
59#define CURVE_TYPES_NUM 4
60
71#define BEZIER_HANDLES_NUM 4
72
81
94
173
179typedef struct Curves {
180#ifdef __cplusplus
182 static constexpr ID_Type id_type = ID_CV;
183#endif
184
187 struct AnimData *adt;
188
191
192 int flag;
194
195 /* Materials. */
196 struct Material **mat;
197 short totcol;
198
209 char _pad[4];
210
219
226
227 /* Distance to keep the curves away from the surface. */
229 char _pad2[4];
230
231 /* Draw cache to store data used for viewport drawing. */
234
236enum {
237 HA_DS_EXPAND = (1 << 0),
239};
240
248
249/* Only one material supported currently. */
250#define CURVES_MATERIAL_NR 1
#define ENUM_OPERATORS(_type, _max)
ID and Library types, which are fundamental for SDNA.
ID_Type
@ ID_CV
NormalMode
@ NORMAL_MODE_MINIMUM_TWIST
@ NORMAL_MODE_FREE
@ NORMAL_MODE_Z_UP
@ CV_SCULPT_COLLISION_ENABLED
@ HA_DS_EXPAND
HandleType
@ BEZIER_HANDLE_FREE
@ BEZIER_HANDLE_ALIGN
@ BEZIER_HANDLE_VECTOR
@ BEZIER_HANDLE_AUTO
eCurvesSymmetryType
@ CURVES_SYMMETRY_Y
@ CURVES_SYMMETRY_Z
@ CURVES_SYMMETRY_X
struct CurvesGeometryRuntimeHandle CurvesGeometryRuntimeHandle
KnotsMode
@ NURBS_KNOT_MODE_ENDPOINT
@ NURBS_KNOT_MODE_NORMAL
@ NURBS_KNOT_MODE_BEZIER
@ NURBS_KNOT_MODE_ENDPOINT_BEZIER
@ NURBS_KNOT_MODE_CUSTOM
These structs are the foundation for all linked lists in the library system.
float wrap(float value, float max, float min)
Definition node_math.h:103
CustomData curve_data_legacy
CustomData point_data
CurvesGeometryRuntimeHandle * runtime
ListBase vertex_group_names
struct AttributeStorage attribute_storage
CurvesGeometry geometry
char selection_domain
void * batch_cache
int attributes_active_index_legacy
struct Object * surface
struct Material ** mat
float surface_collision_distance
char _pad2[4]
struct AnimData * adt
char * surface_uv_map
char _pad[4]
Definition DNA_ID.h:414