Flag Bits for Keys

Flag Bits for Keys

Module description

General Key Flags

#define IKEY_SELECTED   (1<<0)
 
#define IKEY_XSEL   (1<<1)
 
#define IKEY_YSEL   (1<<2)
 
#define IKEY_ZSEL   (1<<3)
 
#define IKEY_WSEL   (1<<30)
 
#define IKEY_FLAGGED   (1<<31)
 
#define IKEY_TIME_LOCK   (1<<14)
 
#define IKEY_ALLSEL   (IKEY_SELECTED|IKEY_XSEL|IKEY_YSEL|IKEY_ZSEL|IKEY_WSEL)
 
#define IKEY_VALLOCK_SHIFT   16
 
#define IKEY_VALX_LOCK   (1<<IKEY_VALLOCK_SHIFT)
 
#define IKEY_VALY_LOCK   (1<<(IKEY_VALLOCK_SHIFT+1))
 
#define IKEY_VALZ_LOCK   (1<<(IKEY_VALLOCK_SHIFT+2))
 
#define IKEY_VALA_LOCK   (1<<(IKEY_VALLOCK_SHIFT+3))
 

TCB-specific Key Flags

#define TCBKEY_QUATVALID   (1<<4)
 Angle/axis is derived from the quat instead of vice/versa. More...
 

Bezier-specific Key Flags

#define BEZKEY_XBROKEN   (1<<4)
 Broken means not locked. More...
 
#define BEZKEY_YBROKEN   (1<<5)
 
#define BEZKEY_ZBROKEN   (1<<6)
 
#define BEZKEY_WBROKEN   (1<<21)
 

In and Out types

Stored in bits 7-13

#define BEZKEY_NUMTYPEBITS   3
 
#define BEZKEY_INTYPESHIFT   7
 
#define BEZKEY_OUTTYPESHIFT   (BEZKEY_INTYPESHIFT+BEZKEY_NUMTYPEBITS)
 
#define BEZKEY_TYPEMASK   7
 

Bezier Tangeant Types

#define BEZKEY_SMOOTH   0
 
#define BEZKEY_LINEAR   1
 
#define BEZKEY_STEP   2
 
#define BEZKEY_FAST   3
 
#define BEZKEY_SLOW   4
 
#define BEZKEY_USER   5
 
#define BEZKEY_FLAT   6
 
#define NUM_TANGENTTYPES   7
 

Key Flagbit Macros

#define BEZKEY_CONSTVELOCITY   (1<<15)
 Interpolated using arclength as the interpolation parameter. More...
 
#define BEZKEY_UNCONSTRAINHANDLE   (1<<20)
 Determines whether a user handle is limited. More...
 
#define TangentsLocked(f, j)   (!(f&(j <= 2 ? (BEZKEY_XBROKEN<<j) : BEZKEY_WBROKEN)))
 
#define SetTangentLock(f, j, l)   {if (l) (f)=(f)&(~(j <= 2 ? (BEZKEY_XBROKEN<<j) : BEZKEY_WBROKEN)); else (f)|=(j <= 2 ? (BEZKEY_XBROKEN<<j) : BEZKEY_WBROKEN);}
 

Macros to Access Hybrid Tangent Types

#define GetInTanType(f)   int(((f)>>BEZKEY_INTYPESHIFT)&BEZKEY_TYPEMASK)
 
#define GetOutTanType(f)   int(((f)>>BEZKEY_OUTTYPESHIFT)&BEZKEY_TYPEMASK)
 
#define SetInTanType(f, t)   {(f) = ((f)&(~(BEZKEY_TYPEMASK<<BEZKEY_INTYPESHIFT)))|(t<<BEZKEY_INTYPESHIFT);}
 
#define SetOutTanType(f, t)   {(f) = ((f)&(~(BEZKEY_TYPEMASK<<BEZKEY_OUTTYPESHIFT)))|(t<<BEZKEY_OUTTYPESHIFT);}
 
#define HITKEY_INTAN   (1<<22)
 
#define HITKEY_OUTTAN   (1<<23)
 
#define HITKEY_TIME   (1<<24)
 
#define HITKEY_KEY   (1<<25)
 
#define HITKEY_ANY   (HITKEY_INTAN|HITKEY_OUTTAN|HITKEY_TIME|HITKEY_KEY)
 

Macro Definition Documentation

#define IKEY_SELECTED   (1<<0)
#define IKEY_XSEL   (1<<1)
#define IKEY_YSEL   (1<<2)
#define IKEY_ZSEL   (1<<3)
#define IKEY_WSEL   (1<<30)
#define IKEY_FLAGGED   (1<<31)
#define IKEY_TIME_LOCK   (1<<14)
#define IKEY_ALLSEL   (IKEY_SELECTED|IKEY_XSEL|IKEY_YSEL|IKEY_ZSEL|IKEY_WSEL)
#define IKEY_VALLOCK_SHIFT   16
#define IKEY_VALX_LOCK   (1<<IKEY_VALLOCK_SHIFT)
#define IKEY_VALY_LOCK   (1<<(IKEY_VALLOCK_SHIFT+1))
#define IKEY_VALZ_LOCK   (1<<(IKEY_VALLOCK_SHIFT+2))
#define IKEY_VALA_LOCK   (1<<(IKEY_VALLOCK_SHIFT+3))
#define TCBKEY_QUATVALID   (1<<4)

Angle/axis is derived from the quat instead of vice/versa.

#define BEZKEY_XBROKEN   (1<<4)

Broken means not locked.

#define BEZKEY_YBROKEN   (1<<5)
#define BEZKEY_ZBROKEN   (1<<6)
#define BEZKEY_WBROKEN   (1<<21)
#define BEZKEY_NUMTYPEBITS   3
#define BEZKEY_INTYPESHIFT   7
#define BEZKEY_OUTTYPESHIFT   (BEZKEY_INTYPESHIFT+BEZKEY_NUMTYPEBITS)
#define BEZKEY_TYPEMASK   7
#define BEZKEY_SMOOTH   0
#define BEZKEY_LINEAR   1
#define BEZKEY_STEP   2
#define BEZKEY_FAST   3
#define BEZKEY_SLOW   4
#define BEZKEY_USER   5
#define BEZKEY_FLAT   6
#define NUM_TANGENTTYPES   7
#define BEZKEY_CONSTVELOCITY   (1<<15)

Interpolated using arclength as the interpolation parameter.

#define BEZKEY_UNCONSTRAINHANDLE   (1<<20)

Determines whether a user handle is limited.

#define TangentsLocked (   f,
 
)    (!(f&(j <= 2 ? (BEZKEY_XBROKEN<<j) : BEZKEY_WBROKEN)))
#define SetTangentLock (   f,
  j,
 
)    {if (l) (f)=(f)&(~(j <= 2 ? (BEZKEY_XBROKEN<<j) : BEZKEY_WBROKEN)); else (f)|=(j <= 2 ? (BEZKEY_XBROKEN<<j) : BEZKEY_WBROKEN);}
#define GetInTanType (   f)    int(((f)>>BEZKEY_INTYPESHIFT)&BEZKEY_TYPEMASK)
#define GetOutTanType (   f)    int(((f)>>BEZKEY_OUTTYPESHIFT)&BEZKEY_TYPEMASK)
#define SetInTanType (   f,
 
)    {(f) = ((f)&(~(BEZKEY_TYPEMASK<<BEZKEY_INTYPESHIFT)))|(t<<BEZKEY_INTYPESHIFT);}
#define SetOutTanType (   f,
 
)    {(f) = ((f)&(~(BEZKEY_TYPEMASK<<BEZKEY_OUTTYPESHIFT)))|(t<<BEZKEY_OUTTYPESHIFT);}
#define HITKEY_INTAN   (1<<22)
#define HITKEY_OUTTAN   (1<<23)
#define HITKEY_TIME   (1<<24)
#define HITKEY_KEY   (1<<25)
#define HITKEY_ANY   (HITKEY_INTAN|HITKEY_OUTTAN|HITKEY_TIME|HITKEY_KEY)