|
Blender V5.0
|
#include "DNA_ID.h"#include "DNA_attribute_types.h"#include "DNA_customdata_types.h"#include "DNA_listBase.h"#include "BLI_utildefines.h"Go to the source code of this file.
Classes | |
| struct | CurvesGeometry |
| struct | Curves |
Macros | |
| #define | CURVE_TYPES_NUM 4 |
| #define | BEZIER_HANDLES_NUM 4 |
| #define | CURVES_MATERIAL_NR 1 |
Typedefs | |
| typedef struct CurvesGeometryRuntimeHandle | CurvesGeometryRuntimeHandle |
| typedef enum CurveType | CurveType |
| typedef enum HandleType | HandleType |
| typedef enum KnotsMode | KnotsMode |
| typedef enum NormalMode | NormalMode |
| typedef struct CurvesGeometry | CurvesGeometry |
| typedef struct Curves | Curves |
| typedef enum eCurvesSymmetryType | eCurvesSymmetryType |
Enumerations | |
| enum | CurveType { CURVE_TYPE_CATMULL_ROM = 0 , CURVE_TYPE_POLY = 1 , CURVE_TYPE_BEZIER = 2 , CURVE_TYPE_NURBS = 3 } |
| enum | HandleType { BEZIER_HANDLE_FREE = 0 , BEZIER_HANDLE_AUTO = 1 , BEZIER_HANDLE_VECTOR = 2 , BEZIER_HANDLE_ALIGN = 3 } |
| enum | KnotsMode { NURBS_KNOT_MODE_NORMAL = 0 , NURBS_KNOT_MODE_ENDPOINT = 1 , NURBS_KNOT_MODE_BEZIER = 2 , NURBS_KNOT_MODE_ENDPOINT_BEZIER = 3 , NURBS_KNOT_MODE_CUSTOM = 4 } |
| enum | NormalMode { NORMAL_MODE_MINIMUM_TWIST = 0 , NORMAL_MODE_Z_UP = 1 , NORMAL_MODE_FREE = 2 } |
| enum | { HA_DS_EXPAND = (1 << 0) , CV_SCULPT_COLLISION_ENABLED = (1 << 1) } |
| enum | eCurvesSymmetryType { CURVES_SYMMETRY_X = 1 << 0 , CURVES_SYMMETRY_Y = 1 << 1 , CURVES_SYMMETRY_Z = 1 << 2 } |
| #define BEZIER_HANDLES_NUM 4 |
Definition at line 71 of file DNA_curves_types.h.
| #define CURVE_TYPES_NUM 4 |
Definition at line 59 of file DNA_curves_types.h.
Referenced by blender::bke::curves::builtin_attributes().
| #define CURVES_MATERIAL_NR 1 |
Definition at line 250 of file DNA_curves_types.h.
Referenced by blender::eevee::SyncModule::sync_curves().
| typedef struct Curves Curves |
A data-block corresponding to a number of curves of various types with various attributes. Geometry data (as opposed to pointers to other data-blocks and higher level data for user interaction) is embedded in the CurvesGeometry struct.
| typedef struct CurvesGeometry CurvesGeometry |
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 25 of file DNA_curves_types.h.
| typedef enum HandleType HandleType |
| typedef enum NormalMode NormalMode |
Method used to calculate the normals of a curve's evaluated points.
| anonymous enum |
| Enumerator | |
|---|---|
| HA_DS_EXPAND | |
| CV_SCULPT_COLLISION_ENABLED | |
Definition at line 236 of file DNA_curves_types.h.
| enum CurveType |
| Enumerator | |
|---|---|
| CURVE_TYPE_CATMULL_ROM | Catmull Rom curves provide automatic smoothness, like Bezier curves with automatic handle positions. This is the default type for the hair system because of the simplicity of interaction and data storage. |
| CURVE_TYPE_POLY | Poly curves (often called "polylines") have no interpolation at all. They evaluate to the same set of points as the original control points. They are a good choice for high-resolution data-sets or when constrained by performance. |
| CURVE_TYPE_BEZIER | Bezier curves provide a common intuitive control system made up of handles and control points. Handles are stored separately from positions, and do not store extra generic attribute values. Bezier curves also give the flexibility to set handle types (see HandleType) that influence the number of evaluated points in each segment. |
| CURVE_TYPE_NURBS | NURBS curves offer the most flexibility at the cost of increased complexity. Given the choice of different knot modes (see KnotsMode) and different orders (see "nurbs_order" attribute), any of the other types can theoretically be created with a NURBS curve. Note that Blender currently does not support custom knot vectors, though that should be supported in the long term. |
Definition at line 28 of file DNA_curves_types.h.
| enum eCurvesSymmetryType |
| Enumerator | |
|---|---|
| CURVES_SYMMETRY_X | |
| CURVES_SYMMETRY_Y | |
| CURVES_SYMMETRY_Z | |
Definition at line 242 of file DNA_curves_types.h.
| enum HandleType |
Definition at line 61 of file DNA_curves_types.h.
| enum KnotsMode |
Method used to calculate a NURBS curve's knot vector.
| Enumerator | |
|---|---|
| NURBS_KNOT_MODE_NORMAL | |
| NURBS_KNOT_MODE_ENDPOINT | |
| NURBS_KNOT_MODE_BEZIER | |
| NURBS_KNOT_MODE_ENDPOINT_BEZIER | |
| NURBS_KNOT_MODE_CUSTOM | |
Definition at line 74 of file DNA_curves_types.h.
| enum NormalMode |
Method used to calculate the normals of a curve's evaluated points.
Definition at line 83 of file DNA_curves_types.h.