Blender  V3.3
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_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_NURBS = 4 , CU_TYPE = (CU_POLY | CU_BEZIER | 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) , BEZT_FLAG_IGNORE_TAG = (1 << 2) }
 
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
SyclQueue void void size_t num_bytes void

Definition at line 533 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 566 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 584 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 511 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 513 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 509 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 517 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 522 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 526 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 548 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 540 of file DNA_curve_types.h.

◆ CU_ACT_NONE

#define CU_ACT_NONE   -1

Definition at line 438 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 312 of file DNA_curve_types.h.

◆ KEY_CU_EASE

#define KEY_CU_EASE   3

Definition at line 605 of file DNA_curve_types.h.

◆ MAXTEXTBOX

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

Definition at line 19 of file DNA_curve_types.h.

◆ SURF_SEEN

#define SURF_SEEN   4

Definition at line 608 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 69 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

Curve.texflag

Enumerator
CU_AUTOSPACE 
CU_AUTOSPACE_EVALUATED 

Definition at line 317 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum

Curve.flag

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_FILL_CAPS 

fill bevel caps

CU_MAP_TAPER 

map taper object to beveled area

Definition at line 323 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum

Curve.twist_mode

Enumerator
CU_TWIST_Z_UP 
CU_TWIST_MINIMUM 
CU_TWIST_TANGENT 

Definition at line 346 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 355 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum

Curve.spacemode

Enumerator
CU_ALIGN_X_LEFT 
CU_ALIGN_X_MIDDLE 
CU_ALIGN_X_RIGHT 
CU_ALIGN_X_JUSTIFY 
CU_ALIGN_X_FLUSH 

Definition at line 362 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum

Curve.align_y

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 371 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum

Curve.bevel_mode

Enumerator
CU_BEV_MODE_ROUND 
CU_BEV_MODE_OBJECT 
CU_BEV_MODE_CURVE_PROFILE 

Definition at line 380 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 387 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_OVERFLOW_NONE 
CU_OVERFLOW_SCALE 
CU_OVERFLOW_TRUNCATE 

Definition at line 397 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum

Nurb.flag

Enumerator
CU_SMOOTH 

Definition at line 404 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum

Nurb.type

Enumerator
CU_POLY 
CU_BEZIER 
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 409 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum
Enumerator
CU_NURB_CYCLIC 
CU_NURB_ENDPOINT 
CU_NURB_BEZIER 

Definition at line 432 of file DNA_curve_types.h.

◆ anonymous enum

anonymous enum

CharInfo.flag

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 590 of file DNA_curve_types.h.

◆ eBezTriple_Auto_Type

Enumerator
HD_AUTOTYPE_NORMAL 
HD_AUTOTYPE_LOCKED_FINAL 

Definition at line 461 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 491 of file DNA_curve_types.h.

◆ eBezTriple_Flag

Enumerator
BEZT_FLAG_TEMP_TAG 
BEZT_FLAG_IGNORE_TAG 

Definition at line 443 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 451 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 471 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 500 of file DNA_curve_types.h.