====== Packages ====== LibTate's functionality is organized into "packages," in a method similar to Java. To access particular functionality from within a package, simply include a "package header." List of all packages, alphabetically; functionality listed in order of appearance: ===== Base ===== This package contains only the minimum core functionality. //include "tBase.h"// * [[projects:libtate:doc:api:packages:base:build]] - Resolves build macros * [[projects:libtate:doc:api:packages:base:assert]] - Assertion service * [[projects:libtate:doc:api:packages:base:types]] - Primitive types * [[projects:libtate:doc:api:packages:base:tracking]] - Simple memory tracking service ===== Flow ===== This package encapsulates "program flow" structures. //include "tFlow.h"// * [[projects:libtate:doc:api:packages:flow:eventqueue]] - Event Queue * [[projects:libtate:doc:api:packages:flow:statemachine]] - State Machine * [[projects:libtate:doc:api:packages:flow:program]] - Program Definition * [[projects:libtate:doc:api:packages:flow:programlist]] - Program List * [[projects:libtate:doc:api:packages:flow:statemachineprogram]] - State Machine Program ===== Encoding Types ===== This package contains "encoding" types, which encode data before storing it in memory. These would be considered equivalent to primitive types, and are used primarily for emulation or in communication protocols. //include "tEncodingTypes.h"// * Typical emulation types * [[projects:libtate:doc:api:packages:encodingtypes:endian]] - Endian types * [[projects:libtate:doc:api:packages:encodingtypes:ones]] - One's complement type * [[projects:libtate:doc:api:packages:encodingtypes:signmag]] - Sign-Magnitude type * [[projects:libtate:doc:api:packages:encodingtypes:bcd]] - Binary Coded Decimal type * Additional encoding types * [[projects:libtate:doc:api:packages:encodingtypes:residue]] - Residue Type(?) ===== "Real" Math ===== This package contains types related to "real" mathematics and alternatives to real mathematics. (Such as rational numbers.) //include "tRealMath.h"// * Real type functions -- GLSL/HLSL inspired... Angle/Trig, Exponential, Common * [[projects:libtate:doc:api:packages:realmath:mathfn]] - Math function definitions on reals * tFloat32 alternatives... * [[projects:libtate:doc:api:packages:realmath:fixed]] - Arbitrary sized fixed type * [[projects:libtate:doc:api:packages:realmath:rational]] - Generic Rational number type a / b * [[projects:libtate:doc:api:packages:realmath:logarithm]] - Logarithm Type * [[projects:libtate:doc:api:packages:realmath:softfloat]] - Arbitrary sized float type ===== Linear Algebra ===== This package contains types and structures related to Linear Algebra, with a focus on operations in three dimensions. //include "tLinearAlgebra.h"// * Generic Linear Algebra based math types (some things inspired by GLSL/HLSL/Java Vecmath) * [[projects:libtate:doc:api:packages:linearalgebra:vector]] - Vector type * [[projects:libtate:doc:api:packages:linearalgebra:matrix]] - Matrix type * [[projects:libtate:doc:api:packages:linearalgebra:quaternion]] - Quaternion type * [[projects:libtate:doc:api:packages:linearalgebra:axisangle]] - Axis-angle type * Specialized types (smaller matrices) * [[projects:libtate:doc:api:packages:linearalgebra:diagonalmatrix]] - Diagonal Matrix type * Additional mathematic types * [[projects:libtate:doc:api:packages:linearalgebra:complex]] - Complex number a + bi * [[projects:libtate:doc:api:packages:linearalgebra:field]] - Field type * [[projects:libtate:doc:api:packages:linearalgebra:galois]] - Prime field type ===== Requires cleanup ===== //This section is temporary...// ===== Base ===== //include "tBase.h"// * Core functionality * [[projects:libtate:doc:api:packages:base:build]] - Resolves build macros * [[projects:libtate:doc:api:packages:base:assert]] - Assertion service * [[projects:libtate:doc:api:packages:base:types]] - Primitive types * [[projects:libtate:doc:api:packages:base:alert]] - User alert/request routines * [[projects:libtate:doc:api:packages:base:tracking]] - Simple memory tracking service * [[projects:libtate:doc:api:packages:base:bootstrap]] - Custom main and native boot service * Extended functionality * [[projects:libtate:doc:api:packages:base:fixed]] - Mfg fixed primitive type * [[projects:libtate:doc:api:packages:base:endian]] - Mfg endian primitive types * [[projects:libtate:doc:api:packages:base:machine]] - Programmable Finite State Machine * [[projects:libtate:doc:api:packages:base:file]] - File descriptor * [[projects:libtate:doc:api:packages:base:timer]] - Timing methods * Peer classes and methods in this group * [[projects:libtate:doc:api:packages:base:alertpeer]] - required for [[projects:libtate:doc:api:packages:base:alert]]. * [[projects:libtate:doc:api:packages:base:filepeer]] - required for [[projects:libtate:doc:api:packages:base:file]]. * [[projects:libtate:doc:api:packages:base:timerpeer]] - required for [[projects:libtate:doc:api:packages:base:timer]]. * Native classes and methods under Win32 * [[projects:libtate:doc:api:packages:base:bootstrapnative]] - required for [[projects:libtate:doc:api:packages:base:bootstrap]]. * Documents pending deletion * [[projects:libtate:doc:api:packages:base:cbqueue]] - Callback queue and processing ===== 3D ===== //include "t3d.h"// * Core math (Immutable types) * [[projects:libtate:doc:api:packages:3d:tuple4]] - Tuple4, Point4, Vector4, Color4, TexCoord4 * [[projects:libtate:doc:api:packages:3d:tuple3]] - Tuple3, Point3, Vector3, Color3, TexCoord3 * [[projects:libtate:doc:api:packages:3d:tuple2]] - Tuple2, Point2, Vector2, TexCoord2 * [[projects:libtate:doc:api:packages:3d:axisangle4]] - Rotational axis and angle(radians) * [[projects:libtate:doc:api:packages:3d:quat4]] - Rotational quaternion * [[projects:libtate:doc:api:packages:3d:matrix3]] - Rotational matrix * [[projects:libtate:doc:api:packages:3d:matrix4]] - Rotational matrix, translation, scale, and skew * Core renderer * [[projects:libtate:doc:api:packages:3d:transform]] - Abstract rotation, translation, and scale * [[projects:libtate:doc:api:packages:3d:geometry]] - Raw and compiled geometry * [[projects:libtate:doc:api:packages:3d:texture]] - Texture * [[projects:libtate:doc:api:packages:3d:prim]] - Primitive type flags * [[projects:libtate:doc:api:packages:3d:renderer]] - Rendering engine