Track Structure and Track Loader Module Definition. More...
#include <tgf.h>#include <tmath/linalg_t.h>

Go to the source code of this file.
Classes | |
| struct | RoadCam |
| road camera More... | |
| struct | SegExt |
| Extended track segment. More... | |
| struct | trackSurface |
| Surface. More... | |
| struct | trackBarrier |
| Barrier. More... | |
| struct | trackSeg |
| Track segment (tTrackSeg) The segments can be straights (type TR_STR): (the track goes from the right to the left) More... | |
| struct | tTrkLocPos |
| Location on the track in local coordinates. More... | |
| struct | TrackOwnPit |
| Driver's pit. More... | |
| struct | tTrackPitInfo |
| Pits Info Structure. More... | |
| struct | tTurnMarksInfo |
| struct | tTrackGraphicInfo |
| struct | tTrack |
| Track structure. More... | |
| struct | tTrackItf |
| Interface Structure for Track Loader. More... | |
Macros | |
| #define | TRK_IDENT 0 /* from 0x01 to 0xFF */ |
| #define | TRK_SECT_HDR "Header" |
| #define | TRK_ATT_WIDTH "width" |
| #define | TRK_ATT_SURF "surface" |
| #define | TRK_ATT_NAME "name" |
| #define | TRK_ATT_VERSION "version" |
| #define | TRK_ATT_AUTHOR "author" |
| #define | TRK_ATT_DESCR "description" |
| #define | TRK_ATT_CAT "category" |
| #define | TRK_SECT_GRAPH "Graphic" |
| #define | TRK_ATT_3DDESC "3d description" |
| #define | TRK_ATT_BKGRND "background image" |
| #define | TRK_ATT_BKGRND2 "background image2" |
| #define | TRK_ATT_BGTYPE "background type" |
| #define | TRK_ATT_BGCLR_R "background color R" |
| #define | TRK_ATT_BGCLR_G "background color G" |
| #define | TRK_ATT_BGCLR_B "background color B" |
| #define | TRK_LST_ENV "Environment Mapping" |
| #define | TRK_ATT_ENVNAME "env map image" |
| #define | TRK_ATT_SPEC_R "specular color R" |
| #define | TRK_ATT_SPEC_G "specular color G" |
| #define | TRK_ATT_SPEC_B "specular color B" |
| #define | TRK_ATT_AMBIENT_R "ambient color R" |
| #define | TRK_ATT_AMBIENT_G "ambient color G" |
| #define | TRK_ATT_AMBIENT_B "ambient color B" |
| #define | TRK_ATT_DIFFUSE_R "diffuse color R" |
| #define | TRK_ATT_DIFFUSE_G "diffuse color G" |
| #define | TRK_ATT_DIFFUSE_B "diffuse color B" |
| #define | TRK_ATT_SHIN "shininess" |
| #define | TRK_ATT_LIPOS_X "light position x" |
| #define | TRK_ATT_LIPOS_Y "light position y" |
| #define | TRK_ATT_LIPOS_Z "light position z" |
| #define | TRK_ATT_FOVFACT "fov factor" |
| #define | TRK_SECT_TURNMARKS "Graphic/Turn Marks" |
| #define | TRK_ATT_HSPACE "horizontal space" |
| #define | TRK_ATT_VSPACE "vertical space" |
| #define | TRK_SECT_TERRAIN "Graphic/Terrain Generation" |
| #define | TRK_ATT_TSTEP "track step" |
| #define | TRK_ATT_BMARGIN "border margin" |
| #define | TRK_ATT_BSTEP "border step" |
| #define | TRK_ATT_ORIENT "orientation" |
| #define | TRK_VAL_CLOCK "clockwise" |
| #define | TRK_VAL_CCLOCK "counter-clockwise" |
| #define | TRK_ATT_SURFRAND "texture randomness" |
| #define | TRK_ATT_RELIEF "relief file" |
| #define | TRK_ATT_ELEVATION "elevation map" |
| #define | TRK_ATT_ALT_MAX "maximum altitude" |
| #define | TRK_ATT_ALT_MIN "minimum altitude" |
| #define | TRK_ATT_GRPSZ "group size" |
| #define | TRK_ATT_OBJMAP "object map" |
| #define | TRK_ATT_COLOR "color" |
| #define | TRK_ATT_OBJECT "object" |
| #define | TRK_ATT_SEED "random seed" |
| #define | TRK_ATT_ORIENTATION_TYPE "orientation type" |
| #define | TRK_ATT_ORIENTATION "orientation" |
| #define | TRK_ATT_DH "delta height" |
| #define | TRK_ATT_DV "delta vert" |
| #define | TRK_SECT_OBJMAP "Object Maps" |
| #define | TRK_SECT_SURFACES "Surfaces" |
| #define | TRK_SECT_OBJECTS "Objects" |
| #define | TRK_ATT_FRICTION "friction" |
| #define | TRK_ATT_ROLLRES "rolling resistance" |
| #define | TRK_ATT_ROUGHT "roughness" |
| #define | TRK_ATT_ROUGHTWL "roughness wavelength" |
| #define | TRK_ATT_DAMMAGE "dammage" |
| #define | TRK_ATT_REBOUND "rebound" |
| #define | TRK_ATT_TEXTURE "texture name" |
| #define | TRK_ATT_BUMPNAME "bump name" |
| #define | TRK_ATT_RACELINENAME "raceline name" |
| #define | TRK_ATT_TEXTYPE "texture type" |
| #define | TRK_ATT_TEXLINK "texture link with previous" |
| #define | TRK_ATT_TEXSIZE "texture size" |
| #define | TRK_ATT_BUMPSIZE "bump size" |
| #define | TRK_ATT_TEXSTARTBOUNDARY "texture start on boundary" |
| #define | TRK_ATT_TEXMIPMAP "texture mipmap" |
| #define | TRK_ATT_R1 "color R1" |
| #define | TRK_ATT_G1 "color G1" |
| #define | TRK_ATT_B1 "color B1" |
| #define | TRK_ATT_R2 "color R2" |
| #define | TRK_ATT_G2 "color G2" |
| #define | TRK_ATT_B2 "color B2" |
| #define | TRK_ATT_STEPLEN "steps length" |
| #define | TRK_VAL_YES "yes" |
| #define | TRK_VAL_NO "no" |
| #define | TRK_SECT_MAIN "Main Track" |
| #define | TRK_LST_SEGMENTS "Track Segments" |
| #define | TRK_ATT_TYPE "type" |
| #define | TRK_ATT_RLEXT "raceline ext" |
| #define | TRK_ATT_RLINT "raceline int" |
| #define | TRK_ATT_RLWIDTHSCALE "raceline widthscale" |
| #define | TRK_VAL_STR "str" |
| #define | TRK_VAL_LFT "lft" |
| #define | TRK_VAL_RGT "rgt" |
| #define | TRK_ATT_LG "lg" |
| #define | TRK_ATT_RADIUS "radius" |
| #define | TRK_ATT_RADIUSEND "end radius" |
| #define | TRK_ATT_ARC "arc" |
| #define | TRK_ATT_ZS "z start" |
| #define | TRK_ATT_ZE "z end" |
| #define | TRK_ATT_ZSL "z start left" |
| #define | TRK_ATT_ZSR "z start right" |
| #define | TRK_ATT_ZEL "z end left" |
| #define | TRK_ATT_ZER "z end right" |
| #define | TRK_ATT_GRADE "grade" |
| #define | TRK_ATT_BKS "banking start" |
| #define | TRK_ATT_BKE "banking end" |
| #define | TRK_ATT_ID "id" |
| #define | TRK_ATT_PROFIL "profil" |
| #define | TRK_ATT_PROFSTEPS "profil steps" |
| #define | TRK_ATT_PROFSTEPSLEN "profil steps length" |
| #define | TRK_ATT_PROFTGTS "profil start tangent" |
| #define | TRK_ATT_PROFTGTE "profil end tangent" |
| #define | TRK_ATT_PROFTGTSL "profil start tangent left" |
| #define | TRK_ATT_PROFTGTEL "profil end tangent left" |
| #define | TRK_ATT_PROFTGTSR "profil start tangent right" |
| #define | TRK_ATT_PROFTGTER "profil end tangent right" |
| #define | TRK_ATT_MARKS "marks" |
| #define | TRK_ATT_ENVMAP "env map" |
| #define | TRK_ATT_DOVFACTOR "DoV factor" |
| #define | TRK_SECT_PITS "Pits" |
| #define | TRK_ATT_ENTRY "entry" |
| #define | TRK_ATT_EXIT "exit" |
| #define | TRK_ATT_START "start" |
| #define | TRK_ATT_END "end" |
| #define | TRK_ATT_SIDE "side" |
| #define | TRK_ATT_LEN "length" |
| #define | TRK_ATT_SPD_LIM "speed limit" |
| #define | TRK_SECT_LSIDE "Left Side" |
| #define | TRK_SECT_RSIDE "Right Side" |
| #define | TRK_SECT_LBORDER "Left Border" |
| #define | TRK_SECT_RBORDER "Right Border" |
| #define | TRK_SECT_LBARRIER "Left Barrier" |
| #define | TRK_SECT_RBARRIER "Right Barrier" |
| #define | TRK_ATT_SWIDTH "start width" |
| #define | TRK_ATT_EWIDTH "end width" |
| #define | TRK_ATT_STYLE "style" |
| #define | TRK_ATT_HEIGHT "height" |
| #define | TRK_ATT_BANKTYPE "banking type" |
| #define | TRK_VAL_PLAN "plan" |
| #define | TRK_VAL_WALL "wall" |
| #define | TRK_VAL_CURB "curb" |
| #define | TRK_VAL_FENCE "fence" |
| #define | TRK_SECT_CAM "Cameras" |
| #define | TRK_ATT_SEGMENT "segment" |
| #define | TRK_ATT_TORIGHT "to right" |
| #define | TRK_ATT_TOSTART "to start" |
| #define | TRK_ATT_HEIGHT "height" |
| #define | TRK_ATT_CAM_FOV "fov start" |
| #define | TRK_ATT_CAM_FOVE "fov end" |
| #define | TRK_VAL_ASPHALT "asphalt" |
| #define | TRK_VAL_CONCRETE "concrete" |
| #define | TRK_VAL_GRASS "grass" |
| #define | TRK_VAL_SAND "sand" |
| #define | TRK_VAL_DIRT "dirt" |
| #define | TRK_VAL_BARRIER "barrier" |
| #define | TRK_VAL_LINEAR "linear" |
| #define | TRK_VAL_SPLINE "spline" |
| #define | TRK_VAL_TANGENT "tangent" |
| #define | TRK_VAL_LEVEL "level" |
| #define | TR_RGT 1 |
| Right curve. More... | |
| #define | TR_LFT 2 |
| Left curve. More... | |
| #define | TR_STR 3 |
| Straight. More... | |
| #define | TR_MAIN 1 |
| Main track segment (ie road part) More... | |
| #define | TR_LSIDE 2 |
| Left side segment (outer segment) More... | |
| #define | TR_RSIDE 3 |
| Right side segment (outer segment) More... | |
| #define | TR_LBORDER 4 |
| Left border segment (inner segment) More... | |
| #define | TR_RBORDER 5 |
| Right border segment (inner segment) More... | |
| #define | TR_PLAN 0 |
| Flat (border only) More... | |
| #define | TR_CURB 1 |
| Curb (border only) More... | |
| #define | TR_WALL 2 |
| Wall (barrier only) More... | |
| #define | TR_FENCE 3 |
| Fence (no width) (barrier only) More... | |
| #define | TR_PITBUILDING 4 |
| Pit building wall (barrier only) More... | |
| #define | TR_SL 0 |
| Start-Left corner. More... | |
| #define | TR_SR 1 |
| Start-Right corner. More... | |
| #define | TR_EL 2 |
| End-Left corner. More... | |
| #define | TR_ER 3 |
| End_Right corner. More... | |
| #define | TR_ZS 0 |
| Rotation angles of the track in rad anti-clockwise: Index in: More... | |
| #define | TR_ZE 1 |
| Z End angle. More... | |
| #define | TR_YL 2 |
| Y Left angle. More... | |
| #define | TR_YR 3 |
| Y Right angle. More... | |
| #define | TR_XS 4 |
| X Start angle. More... | |
| #define | TR_XE 5 |
| X End angle. More... | |
| #define | TR_CS 6 |
| Center start angle. More... | |
| #define | TR_NORMAL 0x00000000 |
| Normal segment. More... | |
| #define | TR_LAST 0x00000001 |
| Segment before start line. More... | |
| #define | TR_START 0x00000002 |
| Segment after start line. More... | |
| #define | TR_PITLANE 0x00000004 |
| Pit lane segment. More... | |
| #define | TR_SPEEDLIMIT 0x00000008 |
| Segment where the speed is limited. More... | |
| #define | TR_PITENTRY 0x00000010 |
| Segment where the pit lane cross the main track. More... | |
| #define | TR_PITEXIT 0x00000020 |
| Segment where the pit lane cross the main track. More... | |
| #define | TR_PIT 0x00000040 |
| Car pit. More... | |
| #define | TR_PITSTART 0x00000080 |
| Car pit Star. More... | |
| #define | TR_PITEND 0x00000100 |
| Car pit End. More... | |
| #define | TR_SIDE_LFT 1 |
| #define | TR_SIDE_RGT 0 |
| #define | TR_TORIGHT 0 |
| #define | TR_TOMIDDLE 1 |
| #define | TR_TOLEFT 2 |
| #define | TR_LPOS_MAIN 0 |
| Relative to the main segment, mostly used for racing on the main track. More... | |
| #define | TR_LPOS_SEGMENT 1 |
| Relative to the segment which the point is located, including border and sides, mostly used for contact physics. More... | |
| #define | TR_LPOS_TRACK 2 |
| Local position relative to the outermost barriers, mostly used for collision detection with barrier. More... | |
| #define | TR_PIT_STATE_FREE -1 |
| #define | TR_PIT_MAXCARPERPIT 4 |
| #define | TR_PIT_NONE 0 |
| No pits for that tracks. More... | |
| #define | TR_PIT_ON_TRACK_SIDE 1 |
| The pits are on the track side. More... | |
| #define | TR_PIT_ON_SEPARATE_PATH 2 |
| #define | TRK_LST_SURF "List" |
| #define | TRK_LST_CAM "list" |
| #define | TRK_ATT_PIT_ENTRY "pit entry" |
| #define | TRK_ATT_PIT_EXIT "pit exit" |
| #define | TRK_ATT_PIT_START "pit start" |
| #define | TRK_ATT_PIT_END "pit end" |
| #define | TRK_ATT_PIT_TYPE "pit type" |
| #define | TRK_ATT_PIT_SIDE "pit side" |
| #define | TRK_ATT_PIT_LEN "pit length" |
| #define | TRK_ATT_PIT_WIDTH "pit width" |
| #define | TRK_LST_SEG "segments" |
| #define | TRK_ATT_ENVIND "env map index" |
| #define | TRK_ATT_LST "lside type" |
| #define | TRK_ATT_LSW "lside width" |
| #define | TRK_ATT_LSWS "lside start width" |
| #define | TRK_ATT_LSWE "lside end width" |
| #define | TRK_ATT_LSSURF "lside surface" |
| #define | TRK_ATT_RST "rside type" |
| #define | TRK_ATT_RSW "rside width" |
| #define | TRK_ATT_RSWS "rside start width" |
| #define | TRK_ATT_RSWE "rside end width" |
| #define | TRK_ATT_RSSURF "rside surface" |
| #define | TRK_ATT_LBS "lborder style" |
| #define | TRK_ATT_LBW "lborder width" |
| #define | TRK_ATT_LBH "lborder height" |
| #define | TRK_ATT_LBSURF "lborder surface" |
| #define | TRK_ATT_RBS "rborder style" |
| #define | TRK_ATT_RBW "rborder width" |
| #define | TRK_ATT_RBH "rborder height" |
| #define | TRK_ATT_RBSURF "rborder surface" |
| #define | TRK_ATT_BHEIGHT "border height" |
| #define | TRK_ATT_LBAS "lbarrier style" |
| #define | TRK_ATT_LBAW "lbarrier width" |
| #define | TRK_ATT_LBAH "lbarrier height" |
| #define | TRK_ATT_LBAFRCT "lbarrier friction" |
| #define | TRK_ATT_LBASURF "lbarrier surface" |
| #define | TRK_ATT_RBAS "rbarrier style" |
| #define | TRK_ATT_RBAW "rbarrier width" |
| #define | TRK_ATT_RBAH "rbarrier height" |
| #define | TRK_ATT_LBAFRCT "lbarrier friction" |
| #define | TRK_ATT_RBASURF "rbarrier surface" |
| #define | TRK_VAL_PIT_TYPE_NONE "no pit" |
| #define | TRK_VAL_PIT_TYPE_SIDE "track side" |
| #define | TRK_VAL_PIT_TYPE_SEP_PATH "seperate path" |
| #define | TRK_ATT_FINISH "finish segment" |
Typedefs | |
| typedef struct RoadCam | tRoadCam |
| road camera More... | |
| typedef struct SegExt | tSegExt |
| Extended track segment. More... | |
| typedef struct trackSurface | tTrackSurface |
| Surface. More... | |
| typedef struct trackBarrier | tTrackBarrier |
| Barrier. More... | |
| typedef struct trackSeg | tTrackSeg |
| Track segment (tTrackSeg) The segments can be straights (type TR_STR): (the track goes from the right to the left) More... | |
| typedef struct TrackOwnPit | tTrackOwnPit |
| Driver's pit. More... | |
| typedef tTrack *(* | tfTrackBuild) (char *filename) |
| Read given track from filename into tTrack struct. More... | |
| typedef tdble(* | tfTrackHeightG) (tTrackSeg *seg, tdble X, tdble Y) |
| Returns the absolute height in meters of the road at the given global position. More... | |
| typedef tdble(* | tfTrackHeightL) (tTrkLocPos *pos) |
| Returns the absolute height in meters of the road at the local position. More... | |
| typedef void(* | tfTrackGlobal2Local) (tTrackSeg *seg, tdble X, tdble Y, tTrkLocPos *pos, int type) |
| Convert a global position (segment, X, Y) into a local position (segment, toRight, toStart) More... | |
| typedef void(* | tfTrackLocal2Global) (tTrkLocPos *pos, tdble *X, tdble *Y) |
| Convert a local position (segment, toRight, toStart) into a global one (X, Y) More... | |
| typedef void(* | tfTrackSideNormal) (tTrackSeg *seg, tdble X, tdble Y, int side, t3Dd *norm) |
| Get the normal vector (in global coordinate system) of the border of the track including the sides. More... | |
| typedef void(* | tfTrackSurfaceNormal) (tTrkLocPos *pos, t3Dd *norm) |
| Get the normal vector of the road (pointing upward). More... | |
| typedef void(* | tfTrackShutdown) (void) |
| Release current track and all its resources. More... | |
| #define TR_LPOS_MAIN 0 |
| #define TR_LPOS_SEGMENT 1 |
| #define TR_LPOS_TRACK 2 |
| #define TR_PIT_ON_TRACK_SIDE 1 |
| #define TR_PITENTRY 0x00000010 |
| #define TR_PITEXIT 0x00000020 |
| #define TR_SPEEDLIMIT 0x00000008 |
| #define TR_ZS 0 |
| #define TRK_ATT_TEXSTARTBOUNDARY "texture start on boundary" |
| typedef struct trackBarrier tTrackBarrier |
Barrier.
| typedef struct TrackOwnPit tTrackOwnPit |
Driver's pit.
| typedef struct trackSurface tTrackSurface |
Surface.