Blender  V2.93
Classes | Macros | Typedefs | Enumerations
DNA_curve_types.h File Reference
#include "DNA_ID.h"
#include "DNA_defs.h"
#include "DNA_listBase.h"
#include "DNA_vec_types.h"

Go to the source code of this file.

Classes

struct  BevPoint
 
struct  BevList
 
struct  BezTriple
 
struct  BPoint
 
struct  Nurb
 
struct  CharInfo
 
struct  TextBox
 
struct  EditNurb
 
struct  Curve
 

Macros

#define MAXTEXTBOX   256 /* used in readfile.c and editfont.c */
 
#define CURVE_VFONT_ANY(cu)   ((cu)->vfont), ((cu)->vfontb), ((cu)->vfonti), ((cu)->vfontbi)
 
#define CU_ACT_NONE   -1
 
#define BEZT_ISSEL_ANY(bezt)    (((bezt)->f2 & SELECT) || ((bezt)->f1 & SELECT) || ((bezt)->f3 & SELECT))
 
#define BEZT_ISSEL_ALL(bezt)    (((bezt)->f2 & SELECT) && ((bezt)->f1 & SELECT) && ((bezt)->f3 & SELECT))
 
#define BEZT_ISSEL_ALL_HIDDENHANDLES(v3d, bezt)
 
#define BEZT_ISSEL_ANY_HIDDENHANDLES(v3d, bezt)
 
#define BEZT_ISSEL_IDX(bezt, i)
 
#define BEZT_SEL_ALL(bezt)
 
#define BEZT_DESEL_ALL(bezt)
 
#define BEZT_SEL_INVERT(bezt)
 
#define BEZT_SEL_IDX(bezt, i)
 
#define BEZT_DESEL_IDX(bezt, i)
 
#define BEZT_IS_AUTOH(bezt)    (ELEM((bezt)->h1, HD_AUTO, HD_AUTO_ANIM) && ELEM((bezt)->h2, HD_AUTO, HD_AUTO_ANIM))
 
#define KEY_CU_EASE   3
 
#define SURF_SEEN   4
 

Typedefs

typedef struct BevPoint BevPoint
 
typedef struct BevList BevList
 
typedef struct BezTriple BezTriple
 
typedef struct BPoint BPoint
 
typedef struct Nurb Nurb
 
typedef struct CharInfo CharInfo
 
typedef struct TextBox TextBox
 
typedef struct EditNurb EditNurb
 
typedef struct Curve Curve
 
typedef enum eBezTriple_Flag eBezTriple_Flag
 
typedef enum eBezTriple_Handle eBezTriple_Handle
 
typedef enum eBezTriple_Auto_Type eBezTriple_Auto_Type
 
typedef enum eBezTriple_Interpolation eBezTriple_Interpolation
 
typedef enum eBezTriple_Easing eBezTriple_Easing
 
typedef enum eBezTriple_KeyframeType eBezTriple_KeyframeType
 

Enumerations

enum  { CU_AUTOSPACE = 1 , CU_AUTOSPACE_EVALUATED = 2 }
 
enum  {
  CU_3D = 1 << 0 , CU_FRONT = 1 << 1 , CU_BACK = 1 << 2 , CU_PATH = 1 << 3 ,
  CU_FOLLOW = 1 << 4 , CU_PATH_CLAMP = 1 << 5 , CU_DEFORM_BOUNDS_OFF = 1 << 6 , CU_STRETCH = 1 << 7 ,
  CU_FAST = 1 << 9 , CU_DS_EXPAND = 1 << 11 , CU_PATH_RADIUS = 1 << 12 , CU_DEFORM_FILL = 1 << 13 ,
  CU_FILL_CAPS = 1 << 14 , CU_MAP_TAPER = 1 << 15
}
 
enum  { CU_TWIST_Z_UP = 0 , CU_TWIST_MINIMUM = 3 , CU_TWIST_TANGENT = 4 }
 
enum  { CU_BEVFAC_MAP_RESOLU = 0 , CU_BEVFAC_MAP_SEGMENT = 1 , CU_BEVFAC_MAP_SPLINE = 2 }
 
enum  {
  CU_ALIGN_X_LEFT = 0 , CU_ALIGN_X_MIDDLE = 1 , CU_ALIGN_X_RIGHT = 2 , CU_ALIGN_X_JUSTIFY = 3 ,
  CU_ALIGN_X_FLUSH = 4
}
 
enum  {
  CU_ALIGN_Y_TOP_BASELINE = 0 , CU_ALIGN_Y_TOP = 1 , CU_ALIGN_Y_CENTER = 2 , CU_ALIGN_Y_BOTTOM_BASELINE = 3 ,
  CU_ALIGN_Y_BOTTOM = 4
}
 
enum  { CU_BEV_MODE_ROUND = 0 , CU_BEV_MODE_OBJECT = 1 , CU_BEV_MODE_CURVE_PROFILE = 2 }
 
enum  { CU_TAPER_RADIUS_OVERRIDE = 0 , CU_TAPER_RADIUS_MULTIPLY = 1 , CU_TAPER_RADIUS_ADD = 2 }
 
enum  { CU_OVERFLOW_NONE = 0 , CU_OVERFLOW_SCALE = 1 , CU_OVERFLOW_TRUNCATE = 2 }
 
enum  { CU_SMOOTH = 1 << 0 }
 
enum  {
  CU_POLY = 0 , CU_BEZIER = 1 , CU_BSPLINE = 2 , CU_CARDINAL = 3 ,
  CU_NURBS = 4 , CU_TYPE = (CU_POLY | CU_BEZIER | CU_BSPLINE | CU_CARDINAL | CU_NURBS) , CU_PRIMITIVE = 0xF00 , CU_PRIM_CURVE = 0x100 ,
  CU_PRIM_CIRCLE = 0x200 , CU_PRIM_PATCH = 0x300 , CU_PRIM_TUBE = 0x400 , CU_PRIM_SPHERE = 0x500 ,
  CU_PRIM_DONUT = 0x600 , CU_PRIM_PATH = 0x700
}
 
enum  { CU_NURB_CYCLIC = 1 << 0 , CU_NURB_ENDPOINT = 1 << 1 , CU_NURB_BEZIER = 1 << 2 }
 
enum  eBezTriple_Flag { BEZT_FLAG_TEMP_TAG = (1 << 1) }
 
enum  eBezTriple_Handle {
  HD_FREE = 0 , HD_AUTO = 1 , HD_VECT = 2 , HD_ALIGN = 3 ,
  HD_AUTO_ANIM = 4 , HD_ALIGN_DOUBLESIDE = 5
}
 
enum  eBezTriple_Auto_Type { HD_AUTOTYPE_NORMAL = 0 , HD_AUTOTYPE_LOCKED_FINAL = 1 }
 
enum  eBezTriple_Interpolation {
  BEZT_IPO_CONST = 0 , BEZT_IPO_LIN = 1 , BEZT_IPO_BEZ = 2 , BEZT_IPO_BACK = 3 ,
  BEZT_IPO_BOUNCE = 4 , BEZT_IPO_CIRC = 5 , BEZT_IPO_CUBIC = 6 , BEZT_IPO_ELASTIC = 7 ,
  BEZT_IPO_EXPO = 8 , BEZT_IPO_QUAD = 9 , BEZT_IPO_QUART = 10 , BEZT_IPO_QUINT = 11 ,
  BEZT_IPO_SINE = 12
}
 
enum  eBezTriple_Easing { BEZT_IPO_EASE_AUTO = 0 , BEZT_IPO_EASE_IN = 1 , BEZT_IPO_EASE_OUT = 2 , BEZT_IPO_EASE_IN_OUT = 3 }
 
enum  eBezTriple_KeyframeType {
  BEZT_KEYTYPE_KEYFRAME = 0 , BEZT_KEYTYPE_EXTREME = 1 , BEZT_KEYTYPE_BREAKDOWN = 2 , BEZT_KEYTYPE_JITTER = 3 ,
  BEZT_KEYTYPE_MOVEHOLD = 4
}
 
enum  {
  CU_CHINFO_BOLD = 1 << 0 , CU_CHINFO_ITALIC = 1 << 1 , CU_CHINFO_UNDERLINE = 1 << 2 , CU_CHINFO_WRAP = 1 << 3 ,
  CU_CHINFO_SMALLCAPS = 1 << 4 , CU_CHINFO_SMALLCAPS_CHECK = 1 << 5 , CU_CHINFO_OVERFLOW = 1 << 6
}
 

Macro Definition Documentation

◆ BEZT_DESEL_ALL

#define BEZT_DESEL_ALL (   bezt)
Value:
{ \
(bezt)->f1 &= ~SELECT; \
(bezt)->f2 &= ~SELECT; \
(bezt)->f3 &= ~SELECT; \
} \
((void)0)
#define SELECT

Definition at line 536 of file DNA_curve_types.h.

◆ BEZT_DESEL_IDX

#define BEZT_DESEL_IDX (   bezt,
 
)
Value:
{ \
switch (i) { \
case 0: \
(bezt)->f1 &= ~SELECT; \
break; \
case 1: \
(bezt)->f2 &= ~SELECT; \
break; \
case 2: \
(bezt)->f3 &= ~SELECT; \
break; \
default: \
break; \
} \
} \
((void)0)

Definition at line 569 of file DNA_curve_types.h.

◆ BEZT_IS_AUTOH

#define BEZT_IS_AUTOH (   bezt)     (ELEM((bezt)->h1, HD_AUTO, HD_AUTO_ANIM) && ELEM((bezt)->h2, HD_AUTO, HD_AUTO_ANIM))

Definition at line 587 of file DNA_curve_types.h.

◆ BEZT_ISSEL_ALL

#define BEZT_ISSEL_ALL (   bezt)     (((bezt)->f2 & SELECT) && ((bezt)->f1 & SELECT) && ((bezt)->f3 & SELECT))

Definition at line 514 of file DNA_curve_types.h.

◆ BEZT_ISSEL_ALL_HIDDENHANDLES

#define BEZT_ISSEL_ALL_HIDDENHANDLES (   v3d,
  bezt 
)
Value:
((((v3d) != NULL) && ((v3d)->overlay.handle_display == CURVE_HANDLE_NONE)) ? \
(bezt)->f2 & SELECT : \
BEZT_ISSEL_ALL(bezt))
@ CURVE_HANDLE_NONE

Definition at line 516 of file DNA_curve_types.h.

◆ BEZT_ISSEL_ANY

#define BEZT_ISSEL_ANY (   bezt)     (((bezt)->f2 & SELECT) || ((bezt)->f1 & SELECT) || ((bezt)->f3 & SELECT))

Definition at line 512 of file DNA_curve_types.h.

◆ BEZT_ISSEL_ANY_HIDDENHANDLES

#define BEZT_ISSEL_ANY_HIDDENHANDLES (   v3d,
  bezt 
)
Value:
((((v3d) != NULL) && ((v3d)->overlay.handle_display == CURVE_HANDLE_NONE)) ? \
(bezt)->f2 & SELECT : \
BEZT_ISSEL_ANY(bezt))

Definition at line 520 of file DNA_curve_types.h.

◆ BEZT_ISSEL_IDX

#define BEZT_ISSEL_IDX (   bezt,
 
)
Value:
((i == 0 && (bezt)->f1 & SELECT) || (i == 1 && (bezt)->f2 & SELECT) || \
(i == 2 && (bezt)->f3 & SELECT))

Definition at line 525 of file DNA_curve_types.h.

◆ BEZT_SEL_ALL

#define BEZT_SEL_ALL (   bezt)
Value:
{ \
(bezt)->f1 |= SELECT; \
(bezt)->f2 |= SELECT; \
(bezt)->f3 |= SELECT; \
} \
((void)0)

Definition at line 529 of file DNA_curve_types.h.

◆ BEZT_SEL_IDX

#define BEZT_SEL_IDX (   bezt,
 
)
Value:
{ \
switch (i) { \
case 0: \
(bezt)->f1 |= SELECT; \
break; \
case 1: \
(bezt)->f2 |= SELECT; \
break; \
case 2: \
(bezt)->f3 |= SELECT; \
break; \
default: \
break; \
} \
} \
((void)0)

Definition at line 551 of file DNA_curve_types.h.

◆ BEZT_SEL_INVERT

#define BEZT_SEL_INVERT (   bezt)
Value:
{ \
(bezt)->f1 ^= SELECT; \
(bezt)->f2 ^= SELECT; \
(bezt)->f3 ^= SELECT; \
} \
((void)0)

Definition at line 543 of file DNA_curve_types.h.

◆ CU_ACT_NONE

#define CU_ACT_NONE   -1

Definition at line 443 of file DNA_curve_types.h.

◆ CURVE_VFONT_ANY

#define CURVE_VFONT_ANY (   cu)    ((cu)->vfont), ((cu)->vfontb), ((cu)->vfonti), ((cu)->vfontbi)

Definition at line 306 of file DNA_curve_types.h.

◆ KEY_CU_EASE

#define KEY_CU_EASE   3

Definition at line 608 of file DNA_curve_types.h.

◆ MAXTEXTBOX

#define MAXTEXTBOX   256 /* used in readfile.c and editfont.c */

Definition at line 35 of file DNA_curve_types.h.

◆ SURF_SEEN

#define SURF_SEEN   4

Definition at line 611 of file DNA_curve_types.h.

Typedef Documentation

◆ BevList

typedef struct BevList BevList

◆ BevPoint

typedef struct BevPoint BevPoint

◆ BezTriple

typedef struct BezTriple BezTriple

Keyframes on F-Curves (allows code reuse of Bezier eval code) and Points on Bezier Curves/Paths are generally BezTriples.

Note
BezTriple.tilt location in struct is abused by Key system.
vec in BezTriple looks like this:
  • vec[0][0] = x location of handle 1
  • vec[0][1] = y location of handle 1
  • vec[0][2] = z location of handle 1 (not used for FCurve Points(2d))
  • vec[1][0] = x location of control point
  • vec[1][1] = y location of control point
  • vec[1][2] = z location of control point
  • vec[2][0] = x location of handle 2
  • vec[2][1] = y location of handle 2
  • vec[2][2] = z location of handle 2 (not used for FCurve Points(2d))

◆ BPoint

typedef struct BPoint BPoint
Note
BPoint.tilt location in struct is abused by Key system.

◆ CharInfo

typedef struct CharInfo CharInfo

◆ Curve

typedef struct Curve Curve

Definition at line 83 of file CurveAdvancedIterators.h.

◆ eBezTriple_Auto_Type

◆ eBezTriple_Easing

◆ eBezTriple_Flag

◆ eBezTriple_Handle

◆ eBezTriple_Interpolation

◆ eBezTriple_KeyframeType

◆ EditNurb

typedef struct EditNurb EditNurb

◆ Nurb

typedef struct Nurb Nurb
Note
Nurb name is misleading, since it can be used for polygons too, also, it should be NURBS (Nurb isn't the singular of Nurbs).

◆ TextBox

typedef struct TextBox TextBox

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
CU_AUTOSPACE 
CU_AUTOSPACE_EVALUATED 

Definition at line 311 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_3D 
CU_FRONT 
CU_BACK 
CU_PATH 
CU_FOLLOW 
CU_PATH_CLAMP 
CU_DEFORM_BOUNDS_OFF 
CU_STRETCH 
CU_FAST 
CU_DS_EXPAND 
CU_PATH_RADIUS 

make use of the path radius if this is enabled (default for new curves)

CU_DEFORM_FILL 

fill 2d curve after deformation

CU_FILL_CAPS 

fill bevel caps

CU_MAP_TAPER 

map taper object to beveled area

Definition at line 325 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_TWIST_Z_UP 
CU_TWIST_MINIMUM 
CU_TWIST_TANGENT 

Definition at line 349 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_BEVFAC_MAP_RESOLU 
CU_BEVFAC_MAP_SEGMENT 
CU_BEVFAC_MAP_SPLINE 

Definition at line 358 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_ALIGN_X_LEFT 
CU_ALIGN_X_MIDDLE 
CU_ALIGN_X_RIGHT 
CU_ALIGN_X_JUSTIFY 
CU_ALIGN_X_FLUSH 

Definition at line 365 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_ALIGN_Y_TOP_BASELINE 
CU_ALIGN_Y_TOP 
CU_ALIGN_Y_CENTER 
CU_ALIGN_Y_BOTTOM_BASELINE 
CU_ALIGN_Y_BOTTOM 

Definition at line 374 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_BEV_MODE_ROUND 
CU_BEV_MODE_OBJECT 
CU_BEV_MODE_CURVE_PROFILE 

Definition at line 383 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum

Curve.taper_radius_mode

Enumerator
CU_TAPER_RADIUS_OVERRIDE 

Override the radius of the bevel point with the taper radius.

CU_TAPER_RADIUS_MULTIPLY 

Multiply the radius of the bevel point by the taper radius.

CU_TAPER_RADIUS_ADD 

Add the radius of the bevel point to the taper radius.

Definition at line 390 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_OVERFLOW_NONE 
CU_OVERFLOW_SCALE 
CU_OVERFLOW_TRUNCATE 

Definition at line 400 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_SMOOTH 

Definition at line 407 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_POLY 
CU_BEZIER 
CU_BSPLINE 
CU_CARDINAL 
CU_NURBS 
CU_TYPE 
CU_PRIMITIVE 
CU_PRIM_CURVE 
CU_PRIM_CIRCLE 
CU_PRIM_PATCH 
CU_PRIM_TUBE 
CU_PRIM_SPHERE 
CU_PRIM_DONUT 
CU_PRIM_PATH 

Definition at line 412 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_NURB_CYCLIC 
CU_NURB_ENDPOINT 
CU_NURB_BEZIER 

Definition at line 437 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_CHINFO_BOLD 
CU_CHINFO_ITALIC 
CU_CHINFO_UNDERLINE 
CU_CHINFO_WRAP 

Word-wrap occurred here.

CU_CHINFO_SMALLCAPS 
CU_CHINFO_SMALLCAPS_CHECK 

Set at runtime, checks if case switching is needed.

CU_CHINFO_OVERFLOW 

Set at runtime, indicates char that doesn't fit in text boxes.

Definition at line 593 of file DNA_curve_types.h.

◆ eBezTriple_Auto_Type

Enumerator
HD_AUTOTYPE_NORMAL 
HD_AUTOTYPE_LOCKED_FINAL 

Definition at line 464 of file DNA_curve_types.h.

◆ eBezTriple_Easing

Enumerator
BEZT_IPO_EASE_AUTO 
BEZT_IPO_EASE_IN 
BEZT_IPO_EASE_OUT 
BEZT_IPO_EASE_IN_OUT 

Definition at line 494 of file DNA_curve_types.h.

◆ eBezTriple_Flag

Enumerator
BEZT_FLAG_TEMP_TAG 

Definition at line 448 of file DNA_curve_types.h.

◆ eBezTriple_Handle

Enumerator
HD_FREE 
HD_AUTO 
HD_VECT 
HD_ALIGN 
HD_AUTO_ANIM 
HD_ALIGN_DOUBLESIDE 

Definition at line 454 of file DNA_curve_types.h.

◆ eBezTriple_Interpolation

Enumerator
BEZT_IPO_CONST 
BEZT_IPO_LIN 
BEZT_IPO_BEZ 
BEZT_IPO_BACK 
BEZT_IPO_BOUNCE 
BEZT_IPO_CIRC 
BEZT_IPO_CUBIC 
BEZT_IPO_ELASTIC 
BEZT_IPO_EXPO 
BEZT_IPO_QUAD 
BEZT_IPO_QUART 
BEZT_IPO_QUINT 
BEZT_IPO_SINE 

Definition at line 474 of file DNA_curve_types.h.

◆ eBezTriple_KeyframeType

Enumerator
BEZT_KEYTYPE_KEYFRAME 
BEZT_KEYTYPE_EXTREME 
BEZT_KEYTYPE_BREAKDOWN 
BEZT_KEYTYPE_JITTER 
BEZT_KEYTYPE_MOVEHOLD 

Definition at line 503 of file DNA_curve_types.h.