Andrew Aye - Talina Gaming System
Common (Shared)



(1) Type Definitions
For the sake of brevity I created a simple naming convention (similar to Hungarian notation) to represent the most common collection of used modified types. This allows for a more succinct representation when writing code. For example [const float * __restrict const] becomes [PCU_TgFLOAT32]. The brevity makes the interface and code easier to understand once the nomenclature is understood.

C_TYPEconst TYPEP_TYPETYPE *
PC_TYPETYPE * constPCU_TYPETYPE * const __restrict
PU_TYPETYPE * __restrictCP_TYPEconst TYPE *
CPC_TYPEconst TYPE * constCPCU_TYPEconst TYPE * const __restrict
CPU_TYPEconst TYPE * __restrictPP_TYPETYPE **

(2) File Conventions:
See Information for more details on the choice of language. Since I am using straight C I wanted a method to define the same interface and in some cases implementation for different combinations of variable types. In C++ this was done using template and template specialization. The method I used was to create a file convention for header, inline and sources files that would be included multiple times in the compilation with different pre-processor macro definitions. The macros are used for name mangling so that the functions can be generated for each of the types required. It is important that code itself is never written through macros as it is too troublesome when debugging. Since the code is only name mangled and included into the regular compilation this problem does not manifest.

(3) Geometry Nomenclature:
Each primitive type is assigned a simple two letter short form. The exception are points/vectors which sometimes has more definitions based on usage (point vs directions).

tyT#: Parametric ValuetvS#: PointtvD#: DirectiontgPC#: ParticletgLN#: Line
tgRY#: RaytgSG#: SegmenttgCI#: CircletgDK#: DisktgEL#: Ellipse
tgPM#: ParallelogramtgPN#: PlanetgRT#: RectangletgPT#: Point TriangletgET#: Edge Triangle
tgCT#: Collision TriangletgST#: Space TriangletgBA#: Box, Axis AlignedtgBX#: BoxtgCA#: Capsule
tgCY#: CylindertgMH#: MeshtgSP#: SpheretgTR#: TorustgTU#: Tube

A point triangle is one described using only the three vertices and a normal to the plane. An edge triangle adds a clockwise edge definition. A collision triangle augments an edge triangle with feature reduction information (for instance if a particular edge should be considered during collision). Finally, a space triangle adds edge plane definition to a collision triangle.



Base:
TgS Common - Base - API - Platform.h TgS Common - Base - API.h
TgS Common - Base - Define - Configuration.h TgS Common - Base - Defines.h
TgS Common - Base - Include.h TgS Common - Base - Type [File].h
TgS Common - Base - Type [IO].h TgS Common - Base - Type [Limits].h
TgS Common - Base - Type [Structs].h TgS Common - Base - Type.h
TgS Common - Base - Unit Test.h TgS Errors.TgS
TgS Literals.TgS
TgS Common - Base - API.inl TgS Common - Base - Type [IO].inl
TgS Common - Base - Type [Structs].inl TgS Common - Base - Type.inl
TgS Common - Base - API [F].i_inc TgS Common - Base - API [I].i_inc
TgS Common - Base - API.c TgS Common - Base - Type [File].c
TgS Common - Base - Type [Limits].c TgS Common - Base - Type [Structs].c
TgS Common [Static].c


Common:
TgS Common - STg1_MP_CS.h TgS Common - STg1_MP_MX.h
TgS Common - STg1_MP_RW.h TgS Common - STg1_MP_SM.h
TgS Common -- OBJECTS.h
TgS Common - Console.h TgS Common - Event MGR.h
TgS Common - Global.h TgS Common - Lexicon MGR.h
TgS Common - Mem MGR.h TgS Common - Profile.h
TgS Common -- COMMON.h
TgS Common - Console.c TgS Common - Event MGR.c
TgS Common - Global.c TgS Common - Lexicon MGR.c
TgS Common - Mem MGR.c TgS Common - Profile.c


Geometry:
TgS Common - Geometry - Type.h TgS Common -- GEOMETRY.h
TgS Common - Geometry - Type.h_inc TgS Common - Geometry 2D - Rectangle.h_inc
TgS Common - Geometry 3D - Box - Axis Aligned.h_inc TgS Common - Geometry 3D - Box.h_inc
TgS Common - Geometry 3D - Capsule.h_inc TgS Common - Geometry 3D - Circle.h_inc
TgS Common - Geometry 3D - Cylinder.h_inc TgS Common - Geometry 3D - Disk.h_inc
TgS Common - Geometry 3D - Ellipse.h_inc TgS Common - Geometry 3D - Line.h_inc
TgS Common - Geometry 3D - Mesh [AABB].h_inc TgS Common - Geometry 3D - Mesh [BVT].h_inc
TgS Common - Geometry 3D - Mesh [Simple].h_inc TgS Common - Geometry 3D - Parallelogram.h_inc
TgS Common - Geometry 3D - Particle.h_inc TgS Common - Geometry 3D - Plane.h_inc
TgS Common - Geometry 3D - Ray.h_inc TgS Common - Geometry 3D - Rectangle.h_inc
TgS Common - Geometry 3D - Segment.h_inc TgS Common - Geometry 3D - Sphere.h_inc
TgS Common - Geometry 3D - Torus.h_inc TgS Common - Geometry 3D - Triangle [Collision].h_inc
TgS Common - Geometry 3D - Triangle [Edge].h_inc TgS Common - Geometry 3D - Triangle [Point].h_inc
TgS Common - Geometry 3D - Triangle [Space].h_inc TgS Common - Geometry 3D - Tube.h_inc
TgS Common -- GEOMETRY.inl
TgS Common - Geometry - Type.i_inc TgS Common - Geometry 2D - Rectangle.i_inc
TgS Common - Geometry 3D - Box - Axis Aligned.i_inc TgS Common - Geometry 3D - Box.i_inc
TgS Common - Geometry 3D - Capsule.i_inc TgS Common - Geometry 3D - Circle.i_inc
TgS Common - Geometry 3D - Cylinder.i_inc TgS Common - Geometry 3D - Disk.i_inc
TgS Common - Geometry 3D - Ellipse.i_inc TgS Common - Geometry 3D - Line.i_inc
TgS Common - Geometry 3D - Mesh [AABB].i_inc TgS Common - Geometry 3D - Mesh [BVT].i_inc
TgS Common - Geometry 3D - Mesh [Simple].i_inc TgS Common - Geometry 3D - Parallelogram.i_inc
TgS Common - Geometry 3D - Particle.i_inc TgS Common - Geometry 3D - Plane.i_inc
TgS Common - Geometry 3D - Ray.i_inc TgS Common - Geometry 3D - Rectangle.i_inc
TgS Common - Geometry 3D - Segment.i_inc TgS Common - Geometry 3D - Sphere.i_inc
TgS Common - Geometry 3D - Torus.i_inc TgS Common - Geometry 3D - Triangle [Collision].i_inc
TgS Common - Geometry 3D - Triangle [Edge].i_inc TgS Common - Geometry 3D - Triangle [Point].i_inc
TgS Common - Geometry 3D - Triangle [Space].i_inc TgS Common - Geometry 3D - Tube.i_inc
TgS Common - Geometry.c
TgS Common - Geometry 3D - Box.c_inc TgS Common - Geometry 3D - Circle.c_inc
TgS Common - Geometry 3D - Cylinder.c_inc TgS Common - Geometry 3D - Disk.c_inc
TgS Common - Geometry 3D - Ellipse.c_inc TgS Common - Geometry 3D - Mesh [AABB].c_inc
TgS Common - Geometry 3D - Mesh [Simple].c_inc TgS Common - Geometry 3D - Mesh [Utility].c_inc
TgS Common - Geometry 3D - Particle.c_inc TgS Common - Geometry 3D - Torus.c_inc
TgS Common - Geometry 3D - Triangle [Collision].c_inc TgS Common - Geometry 3D - Triangle [Edge].c_inc
TgS Common - Geometry 3D - Triangle [Point].c_inc


Math:
TgS Common - Math [Constants].h TgS Common - Math [Matrix].h
TgS Common - Math [Vector].h TgS Common - Math API [Matrix].h
TgS Common - Math API [Vector].h TgS Common -- MATH.h
TgS Common - Math API [Matrix] [F] [F].h_inc TgS Common - Math API [Matrix] [F] [S].h_inc
TgS Common - Math API [Matrix] [F].h_inc TgS Common - Math API [Matrix] [M] [F].h_inc
TgS Common - Math API [Matrix] [M] [S].h_inc TgS Common - Math API [Matrix] [M].h_inc
TgS Common - Math API [Vector] [F] [F].h_inc TgS Common - Math API [Vector] [F] [I].h_inc
TgS Common - Math API [Vector] [F] [S].h_inc TgS Common - Math API [Vector] [F].h_inc
TgS Common - Math API [Vector] [M] [F].h_inc TgS Common - Math API [Vector] [M] [I].h_inc
TgS Common - Math API [Vector] [M] [S].h_inc TgS Common - Math API [Vector] [M].h_inc
TgS Common - Math API [Matrix].inl TgS Common - Math API [Vector].inl
TgS Common -- MATH.inl
TgS Common - Math API [Matrix] [F] [F] [33].i_inc TgS Common - Math API [Matrix] [F] [F] [34].i_inc
TgS Common - Math API [Matrix] [F] [F] [44].i_inc TgS Common - Math API [Matrix] [F] [F].i_inc
TgS Common - Math API [Matrix] [F] [S].i_inc TgS Common - Math API [Matrix] [F].i_inc
TgS Common - Math API [Matrix] [M] [F].i_inc TgS Common - Math API [Matrix] [M].i_inc
TgS Common - Math API [Vector] [F] [F].i_inc TgS Common - Math API [Vector] [F] [I].i_inc
TgS Common - Math API [Vector] [F] [S].i_inc TgS Common - Math API [Vector] [F].i_inc
TgS Common - Math [Constants].c TgS Common - Math API [Matrix].c
TgS Common - Math API [Vector].c
TgS Common - Math API [Matrix] [F] [S].c_inc TgS Common - Math API [Vector] [F] [S].c_inc


Specialization (W32):
TgS (W32) Common - Base - Defines.h TgS (W32) Common - Base - Include.h
TgS (W32) Common - Base.h TgS (W32) Common - Math [Vector].h
TgS (W32) Common - CTg1_MP_CS.h TgS (W32) Common - CTg1_MP_MX.h
TgS (W32) Common - CTg1_MP_SM.h TgS (W32) Common - SysInfo.h
TgS (W32) Common -- INCLUDE.h TgS (W32) Common -- MATH.h
TgS (W32) Common -- OBJECTS.h
TgS (W32) Common - Base - API - Platform.inl TgS (W32) Common - Math API [Matrix] [M] [F] [34].inl
TgS (W32) Common - Math API [Matrix] [M] [F] [44].inl TgS (W32) Common - Math API [Matrix] [M] [S].inl
TgS (W32) Common - Math API [Vector] [M] [F32].inl TgS (W32) Common - Math API [Vector] [M] [S08].inl
TgS (W32) Common - Math API [Vector] [M] [S16].inl TgS (W32) Common - Math API [Vector] [M] [S32].inl
TgS (W32) Common - Math API [Vector] [M] [S].inl TgS (W32) Common - Math API [Vector] [M] [U08].inl
TgS (W32) Common - Math API [Vector] [M] [U16].inl TgS (W32) Common - Math API [Vector] [M] [U32].inl
TgS (W32) Common - STg1_MP_CS.inl TgS (W32) Common - STg1_MP_MX.inl
TgS (W32) Common - STg1_MP_SM.inl TgS (W32) Common -- MATH.inl
TgS (W32) Common -- OBJECTS.inl
TgS (W32) Common - Base - API - Platform.c TgS (W32) Common - Global.c
TgS (W32) Common - Mem MGR.c TgS (W32) Common - SysInfo.c
TgS (W32) Common - Math API [Matrix] [M] [F] [34].c TgS (W32) Common - Math API [Matrix] [M] [F] [44].c
TgS (W32) Common - Math API [Matrix] [M] [S].c