34 tdble gcfrl, gcrrl, gcfr;
81 for (i = 0; i < 2; i++) {
85 for (i = 0; i < 4; i++) {
99 for (i = 0; i < 2; i++) {
104 carElt->_statGC = car->
statGC;
105 carElt->_tank = car->
tank;
106 for (i = 0; i < 4; i++) {
110 for (i = 0; i < 4; i++) {
148 tdble v, R, Rv, Rm, Rx, Ry, Rz;
161 sgTransposeNegateMat4(dstInv, dst);
162 sgVec3 weight = {0.0f, 0.0f, w};
163 sgXformVec3(weight, dstInv);
164 F.
F.
x = weight[SG_X];
165 F.
F.
y = weight[SG_Y];
166 F.
F.
z = weight[SG_Z];
168 F.
M.
x = F.
M.
y = F.
M.
z = 0;
171 for (i = 0; i < 4; i++) {
194 for (i = 0; i < 2; i++) {
206 for (i = 0; i < 4; i++) {
233 sgXformVec3(accel, dst);
266 sgTransposeNegateMat4(dst);
268 sgXformVec3(vel, (
float *) &(car->
DynGCg.
vel), dst);
283 for (i = 0; i < 4; i++) {
286 sgXformVec3(dstVec, (
float *) &(wheel->
staticPos.
x), dst);
349 for (i = 0; i < 4; i++) {
353 localPos[0] = corner->
x + car->
statGC.
x;
354 localPos[1] = corner->
y + car->
statGC.
y;
355 localPos[2] = corner->
z - car->
statGC.
z;
358 sgXformVec3(dstVec, localPos, dst);
394 printf(
"-----------------------------\nCar: %d %s ---\n", car->
carElt->
index, car->
carElt->_name);
395 printf(
"Seg: %d (%s) Ts:%f Tr:%f\n",
403 printf(
"As: %f\n---\n", sqrt(car->
airSpeed2));
404 for (i = 0; i < 4; i++) {
411 printf(
"Aero Fx:%f Fz:%f Fzf=%f Fzr=%f ratio=%f\n", car->
aero.
drag / 9.81, Fzf + Fzr,
412 Fzf, Fzr, (Fzf + Fzr) / (car->
aero.
drag + 0.1) * 9.81);
void SimWingConfig(tCar *car, int index)
void SimAeroConfig(tCar *car)
void SimAtmosphereConfig(tCar *car)
void SimAxleConfig(tCar *car, int index)
void SimBrakeSystemConfig(tCar *car)
static void SimCarUpdateSpeed(tCar *car)
static void SimCarUpdateCornerPos(tCar *car)
void SimCarUpdateWheelPos(tCar *car)
static void SimCarUpdatePos(tCar *car)
static void SimCarUpdateForces(tCar *car)
void SimCarConfig(tCar *car)
void SimTelemetryOut(tCar *car)
void SimCarUpdate2(tCar *car, tSituation *)
void SimCarUpdate(tCar *car, tSituation *)
#define FRNT_RGT
front right
#define REAR_RGT
rear right
#define REAR_LFT
rear left
struct CarElt tCarElt
Car structure (tCarElt).
#define FRNT_LFT
front left
void SimCarCollideXYScene(tCar *car)
void SimCarCollideZ(tCar *car)
void SimEngineConfig(tCar *car)
float tdble
Floating point type used in TORCS.
tdble GfParmGetNum(void *handle, const char *path, const char *key, const char *unit, tdble deflt)
Get a numerical parameter from the parameter set handle.
struct Situation tSituation
cars situation used to inform the GUI and the drivers
void SimWheelConfig(tCar *car, int index)
void SimSteerConfig(tCar *car)
void SimTransmissionConfig(tCar *car)
tdble ay
angle along y axis
tdble ax
angle along x axis
tdble az
angle along z axis
tdble toRight
Distance (+ to left, - to right) relative to the right side of segment.
tTrackSeg * seg
Track segment.
tdble toStart
Distance to start of segment (or arc if turn)
tPosd relPos
position relative to GC
const char * name
Segment name.
#define NORM_PI_PI(x)
Angle normalization between -PI and PI.
#define SIGN(x)
Sign of the expression.
#define RAD2DEG(x)
Radian to degree conversion.
#define TR_LPOS_MAIN
Relative to the main segment, mostly used for racing on the main track.