Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayLib::cDirectionDef Class Reference

#include <cDirectionDef.h>

Public Member Functions

 UNITTEST_FRIEND (cDirectionDef)
 

Static Public Member Functions

static DIR_TYPE GRAYCALL GetDirStr (const GChar_t *pszDir)
 
static DIR_TYPE GetTurn (DIR_TYPE eDir, int iOffset)
 
static const GChar_tGetDirName (DIR_TYPE eDir)
 
static DIR_TYPE GetHeadingDir (RADIANf_t fHeading) noexcept
 
static RADIANf_t GetDirHeading (DIR_TYPE eDir) noexcept
 

Public Attributes

const GChar_tm_pszAbbrev
 "E", "N" "NE" etc More...
 
const GChar_tm_pszName
 "East" "North" "North East" etc More...
 
short m_dx
 -1,0,+1 = Cos(angle) More...
 
short m_dy
 -1,0,+1 = Sin(angle) More...
 

Static Public Attributes

static const cDirectionDef k_Directions [DIR_QTY+1]
 
static RADIANf_t k_fAngTurn = cTypeF<RADIANf_t>::k_PI2 / DIR_QTY
 +1 Turn angle in radians = cTypeF<float>::k_PI2 / DIR_QTY More...
 

Detailed Description

A simplistic 2d Compass/Cartesian direction. N,W,S,E 0,0 = North West Corner, x=-N/+S, y=-W/+E. Origin is upper left. More like texture coords (left handed DirectX space). less like a traditional math graph. (y flipped)(right handed space)

Note
Old Irth 1.0 mapping was UR = origin.

Member Function Documentation

◆ GetDirHeading()

RADIANf_t GrayLib::cDirectionDef::GetDirHeading ( DIR_TYPE  eDir)
inlinestaticnoexcept

opposite of GetHeadingDir.

Returns
Euler RADIANf_t.

◆ GetDirName()

const GChar_t * GrayLib::cDirectionDef::GetDirName ( DIR_TYPE  eDir)
inlinestatic

◆ GetDirStr()

DIR_TYPE GrayLib::cDirectionDef::GetDirStr ( const GChar_t pszDir)
static

Convert a string into a direction. e.g. "North" = DIR_N

◆ GetHeadingDir()

DIR_TYPE GrayLib::cDirectionDef::GetHeadingDir ( RADIANf_t  fHeading)
inlinestaticnoexcept

Convert Euler fHeading in RADIANf_t to approximate nearest DIR_TYPE opposite of GetDirHeading 0=E, pi/2=S, pi=W, pi+pi/2=N e.g. cos(0) = 1 = +1x, sin(0) = 0 = +0y

◆ GetTurn()

static DIR_TYPE GrayLib::cDirectionDef::GetTurn ( DIR_TYPE  eDir,
int  iOffset 
)
inlinestatic

Turn in a direction. Wrap Enumerate to DIR_QTY +1 = turn to the right. clockwise. -1 = turn to the left. counter clockwise

◆ UNITTEST_FRIEND()

GrayLib::cDirectionDef::UNITTEST_FRIEND ( cDirectionDef  )

Member Data Documentation

◆ k_Directions

const cDirectionDef GrayLib::cDirectionDef::k_Directions
static
Initial value:
=
{
{ _GT("E"), _GT("East"), 1, 0 },
{ _GT("SE"), _GT("South East"), 1, 1 },
{ _GT("S"), _GT("South"), 0, 1 },
{ _GT("SW"), _GT("South West"), -1, 1 },
{ _GT("W"), _GT("West"), -1, 0 },
{ _GT("NW"), _GT("North West"), -1, -1 },
{ _GT("N"), _GT("North"), 0, -1 },
{ _GT("NE"), _GT("North East"), 1, -1 },
{ _GT("H"), _GT("Here"), 0, 0 },
}
#define _GT(x)
like _T(x) macro for static text.
Definition: StrConst.h:27

◆ k_fAngTurn

RADIANf_t GrayLib::cDirectionDef::k_fAngTurn = cTypeF<RADIANf_t>::k_PI2 / DIR_QTY
static

+1 Turn angle in radians = cTypeF<float>::k_PI2 / DIR_QTY

◆ m_dx

short GrayLib::cDirectionDef::m_dx

-1,0,+1 = Cos(angle)

◆ m_dy

short GrayLib::cDirectionDef::m_dy

-1,0,+1 = Sin(angle)

◆ m_pszAbbrev

const GChar_t* GrayLib::cDirectionDef::m_pszAbbrev

"E", "N" "NE" etc

◆ m_pszName

const GChar_t* GrayLib::cDirectionDef::m_pszName

"East" "North" "North East" etc


The documentation for this class was generated from the following files: