Amulets & Armor  v1.02
Open Source Game
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Macros | Functions | Variables
3D_TRIG.H File Reference
#include "3D_VIEW.H"
#include "GENERAL.H"
#include "math.h"

Go to the source code of this file.

Macros

#define COS(X)   G_cosTable[ (X) & 0x3FF ]
 
#define ICOS(X)   G_invCosTable[ (X) & 0x3FF ]
 
#define M_PI   3.14159265358979323846
 
#define MATH_ANGLE_360   1024
 
#define MATH_ANGLE_45   128
 
#define MATH_ANGLE_90   256
 
#define MATH_ANGLE_ACCURACY   64
 
#define MATH_MAX_ANGLE   1024
 
#define MATH_MAX_DISTANCE   10000
 
#define MathCosineLookup(x)   ((T_sword32)(cos(((double)(x))*2.0*M_PI/65536.0)*65536.0))
 
#define MathInvCosineLookup(x)   ICOS( (x) >> 6 )
 
#define MathInvDistanceLookup(x)   (G_invDistTable[x])
 
#define MathPower2Lookup(x)   (G_power2table[x])
 
#define MathSineLookup(x)   ((T_sword32)(sin(((double)(x))*2.0*M_PI/65536.0)*65536.0))
 
#define MathTangentLookup(x)   TAN( (x) >> 6 )
 
#define MathViewTanTableLookup(x)   (G_viewTanTable[x])
 
#define SIN(X)   G_sinTable[ (X) & 0x3FF ]
 
#define TAN(X)   G_tanTable[ (X) & 0x3FF ]
 

Functions

T_word16 MathArcTangent (T_sword32 y, T_sword32 x)
 
T_word16 MathArcTangent32 (T_sword32 y, T_sword32 x)
 
T_sword32 MathCosine (T_word16 angle)
 
T_void MathFinish (void)
 
T_void MathInitialize (T_word32 screenWidth)
 
T_void MathInitializeInvDistTable (T_word32 screenWidth)
 
T_sword32 MathInvCosine (T_word16 angle)
 
T_sword32 MathSine (T_word16 angle)
 
T_sword32 MathTangent (T_word16 angle)
 
T_sword16 MathXTimesCosAngle (T_sword16 x, T_word16 angle)
 
T_sword16 MathXTimesSinAngle (T_sword16 x, T_word16 angle)
 

Variables

T_sword32 G_cosTable [MATH_MAX_ANGLE]
 
T_word16 G_distanceTable [256][256]
 
T_sword32 G_invCosTable [MATH_MAX_ANGLE]
 
T_sword32 G_invDistTable [MATH_MAX_DISTANCE]
 
T_byte8 G_power2table [257]
 
T_sword32 G_sinTable [MATH_MAX_ANGLE]
 
T_sword32 G_tanTable [MATH_MAX_ANGLE]
 
T_byte8 G_translucentTable [256][256]
 
T_sword32 G_viewTanTable [MAX_VIEW3D_WIDTH]
 

Macro Definition Documentation

#define COS (   X)    G_cosTable[ (X) & 0x3FF ]
#define ICOS (   X)    G_invCosTable[ (X) & 0x3FF ]
#define M_PI   3.14159265358979323846
#define MATH_ANGLE_360   1024
#define MATH_ANGLE_45   128
#define MATH_ANGLE_90   256
#define MATH_ANGLE_ACCURACY   64
#define MATH_MAX_ANGLE   1024
#define MATH_MAX_DISTANCE   10000
#define MathCosineLookup (   x)    ((T_sword32)(cos(((double)(x))*2.0*M_PI/65536.0)*65536.0))
#define MathInvCosineLookup (   x)    ICOS( (x) >> 6 )
#define MathInvDistanceLookup (   x)    (G_invDistTable[x])
#define MathPower2Lookup (   x)    (G_power2table[x])
#define MathSineLookup (   x)    ((T_sword32)(sin(((double)(x))*2.0*M_PI/65536.0)*65536.0))
#define MathTangentLookup (   x)    TAN( (x) >> 6 )
#define MathViewTanTableLookup (   x)    (G_viewTanTable[x])
#define SIN (   X)    G_sinTable[ (X) & 0x3FF ]
#define TAN (   X)    G_tanTable[ (X) & 0x3FF ]

Variable Documentation

T_word16 G_distanceTable[256][256]