6 #ifndef _INC_cDirectionDef_H
7 #define _INC_cDirectionDef_H
12 #include "../Math/Calc.h"
88 fHeading += k_fAngTurn / 2;
90 return (
DIR_TYPE)(int)(fHeading / k_fAngTurn);
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
Definition: cDirectionDef.h:43
static DIR_TYPE GetTurn(DIR_TYPE eDir, int iOffset)
Definition: cDirectionDef.h:62
short m_dx
-1,0,+1 = Cos(angle)
Definition: cDirectionDef.h:56
static const cDirectionDef k_Directions[DIR_QTY+1]
Definition: cDirectionDef.h:51
static RADIANf_t k_fAngTurn
+1 Turn angle in radians = cTypeF<float>::k_PI2 / DIR_QTY
Definition: cDirectionDef.h:52
const GChar_t * m_pszName
"East" "North" "North East" etc
Definition: cDirectionDef.h:55
short m_dy
-1,0,+1 = Sin(angle)
Definition: cDirectionDef.h:57
static const GChar_t * GetDirName(DIR_TYPE eDir)
Definition: cDirectionDef.h:77
UNITTEST_FRIEND(cDirectionDef)
static DIR_TYPE GetHeadingDir(RADIANf_t fHeading) noexcept
Definition: cDirectionDef.h:81
static RADIANf_t GetDirHeading(DIR_TYPE eDir) noexcept
Definition: cDirectionDef.h:92
const GChar_t * m_pszAbbrev
"E", "N" "NE" etc
Definition: cDirectionDef.h:54
DIR_TYPE
Definition: cDirectionDef.h:25
@ DIR_NE
Definition: cDirectionDef.h:36
@ DIR_S
pi/2 rad
Definition: cDirectionDef.h:31
@ DIR_SE
pi/4 rad
Definition: cDirectionDef.h:30
@ DIR_E
0 radians = +1x, +0y, ex cos(0)=1, sin(0)=0
Definition: cDirectionDef.h:29
@ DIR_SW
Definition: cDirectionDef.h:32
@ DIR_N
+0x, -1y
Definition: cDirectionDef.h:35
@ DIR_QTY
Also means "Center".
Definition: cDirectionDef.h:38
@ DIR_NW
Definition: cDirectionDef.h:34
@ DIR_W
pi rad
Definition: cDirectionDef.h:33
@ DIR_INVALID
Definition: cDirectionDef.h:39
RECTS_TYPE
Definition: cDirectionDef.h:18
@ RECTS_Left
Definition: cDirectionDef.h:21
@ RECTS_Right
Definition: cDirectionDef.h:21
@ RECTS_QTY
Definition: cDirectionDef.h:21
@ RECTS_Top
Definition: cDirectionDef.h:21
@ RECTS_Bottom
Definition: cDirectionDef.h:21
float RADIANf_t
type is float radians
Definition: Calc.h:27
char GChar_t
My version of TCHAR, _TCHAR.
Definition: StrConst.h:26
static TYPE WrapRadians(TYPE nRadians) noexcept
Definition: Calc.h:363