TORCS  1.3.9
The Open Racing Car Simulator
sim.h
Go to the documentation of this file.
1 /***************************************************************************
2 
3  file : sim.h
4  created : Sun Mar 19 00:07:42 CET 2000
5  copyright : (C) 2000-2017 by Eric Espie, Bernhard Wymann
6  email : torcs@free.fr
7  version : $Id$
8 
9  ***************************************************************************/
10 
11 /***************************************************************************
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * *
18  ***************************************************************************/
19 
20 #ifndef _SIMFCT_H_
21 #define _SIMFCT_H_
22 
23 #include <math.h>
24 #include <stdio.h>
25 #include <cstring>
26 #ifdef WIN32
27 #include <float.h>
28 #define isnan _isnan
29 #endif
30 
31 #include <tgf.h>
32 #include <track.h>
33 #include <car.h>
34 #include <raceman.h>
35 #include <simu.h>
36 #include "carstruct.h"
37 #include <robottools.h>
38 
39 extern void SimConfig(tCarElt *carElt, RmInfo *);
40 extern void SimReConfig(tCarElt *carElt);
41 extern void SimUpdate(tSituation*, double deltaTime, int telemetry);
42 extern void SimInit(int nbcars, tTrack* track, tdble fuelFactor, tdble damageFactor, tdble tireFactor);
43 extern void SimShutdown(void);
44 
45 void SimAtmosphereConfig(tCar *car);
46 void SimAtmosphereUpdate(tCar *car, tSituation *s);
47 
48 extern void SimAxleConfig(tCar *car, int index);
49 extern void SimAxleReConfig(tCar *car, int index);
50 extern void SimAxleUpdate(tCar *car, int index);
51 
52 extern void SimCarConfig(tCar *car);
53 extern void SimCarUpdate(tCar *car, tSituation*);
54 extern void SimCarUpdate2(tCar *car, tSituation*);
55 
56 extern void SimSuspCheckIn(tSuspension *susp);
57 extern void SimSuspUpdate(tSuspension *susp);
58 extern void SimSuspConfig(void *hdle, const char *section, tSuspension *susp, tdble F0, tdble X0);
59 extern void SimSuspReConfig(tCar* car, int index, tSuspension *susp, tdble F0, tdble X0);
60 extern void SimSuspThirdReConfig(tCar* car, int index, tSuspension *susp, tdble F0, tdble X0);
61 
62 extern void SimWheelConfig(tCar *car, int index);
63 extern void SimWheelReConfig(tCar *car, int index);
64 extern void SimWheelUpdateRide(tCar *car, int index);
65 extern void SimWheelUpdateForce(tCar *car, int index);
66 extern void SimWheelUpdateRotation(tCar *car);
67 extern void SimUpdateFreeWheels(tCar *car, int axlenb);
68 extern void SimWheelUpdateTire(tCar *car, int index);
69 extern void SimWheelResetWear(tCar *car, int index);
70 
71 
72 extern void SimSteerConfig(tCar *car);
73 extern void SimSteerReConfig(tCar *car);
74 extern void SimSteerUpdate(tCar *car);
75 
76 extern void SimBrakeConfig(void *hdle, const char *section, tBrake *brake);
77 extern void SimBrakeUpdate(tCar *car, tWheel *wheel, tBrake *brake);
78 extern void SimBrakeSystemConfig(tCar *car);
79 extern void SimBrakeSystemReConfig(tCar *car);
80 extern void SimBrakeSystemUpdate(tCar *car);
81 
82 extern void SimAeroConfig(tCar *car);
83 extern void SimAeroUpdate(tCar *car, tSituation *s);
84 extern void SimWingConfig(tCar *car, int index);
85 extern void SimWingReConfig(tCar *car, int index);
86 extern void SimWingUpdate(tCar *car, int index, tSituation *s);
87 
88 extern void SimCarUpdateWheelPos(tCar *car);
89 
90 extern void SimTransmissionConfig(tCar *car);
91 extern void SimTransmissionReConfig(tCar *car);
92 extern void SimTransmissionUpdate(tCar *car);
93 extern void SimGearboxUpdate(tCar *car);
94 
95 extern void SimDifferentialConfig(void *hdle, const char *section, tDifferential *differential);
96 extern void SimDifferentialReConfig(tCar* car, int index);
97 extern void SimDifferentialUpdate(tCar *car, tDifferential *differential, int first);
98 
99 extern void SimEngineConfig(tCar *car);
100 extern void SimEngineUpdateTq(tCar *car);
101 extern tdble SimEngineUpdateRpm(tCar *car, tdble axleRpm);
102 extern void SimEngineShutdown(tCar *car);
103 
104 extern void SimCarCollideZ(tCar *car);
105 extern void SimCarCollideXYScene(tCar *car);
106 extern void SimCarCollideCars(tSituation*);
107 extern void SimCarCollideConfig(tCar *car, tTrack *track);
108 extern void SimCarCollideShutdown(int nbcars);
109 extern void SimCarCollideInit(tTrack *track);
110 extern void SimCollideRemoveCar(tCar *car, int nbcars);
111 
113 
114 extern tdble SimDeltaTime;
115 extern int SimTelemetry;
116 extern tCar *SimCarTable;
117 extern tdble rulesFuelFactor;
118 extern tdble rulesDamageFactor;
119 extern tdble rulesTireFactor;
120 
121 extern tdble simDammageFactor[];
122 extern tdble simSkidFactor[];
123 
125 inline float urandom() {
126  return ((((float)rand()-1)/((float)RAND_MAX)));
127 }
128 
129 #define SIM_VECT_COLL 12
130 #define SIM_VECT_SPD 13
131 #define SIM_VECT_ACCEL 14
132 #define SIM_WHEEL_SPD 16
133 #define SIM_WHEEL_ACCEL 20
134 
135 #define SIM_Z_OFFSET 2.0
136 
137 #endif /* _SIMFCT_H_ */
138 
139 
140 
void SimWingReConfig(tCar *car, int index)
Definition: aero.cpp:131
Race Manager General Info.
Definition: raceman.h:218
void SimTransmissionUpdate(tCar *car)
void SimDifferentialUpdate(tCar *car, tDifferential *differential, int first)
void SimBrakeUpdate(tCar *car, tWheel *wheel, tBrake *brake)
Definition: brake.cpp:35
void SimCarUpdateWheelPos(tCar *car)
Definition: car.cpp:275
void SimCarUpdate2(tCar *car, tSituation *)
Definition: car.cpp:427
int SimTelemetry
Definition: simu.cpp:36
void SimWheelUpdateRide(tCar *car, int index)
Definition: wheel.cpp:166
cars situation used to inform the GUI and the drivers
Definition: raceman.h:85
tdble simDammageFactor[]
Definition: categories.cpp:30
void SimWheelUpdateForce(tCar *car, int index)
Definition: wheel.cpp:211
void SimWheelUpdateRotation(tCar *car)
Definition: wheel.cpp:373
Car structure (tCarElt).
Definition: car.h:455
void SimBrakeSystemUpdate(tCar *car)
Definition: brake.cpp:73
void SimAeroUpdate(tCar *car, tSituation *s)
Definition: aero.cpp:37
bool SimAdjustPitCarSetupParam(tCarPitSetupValue *v)
Definition: simu.cpp:491
tdble rulesFuelFactor
Definition: simu.cpp:39
void SimTransmissionConfig(tCar *car)
void SimGearboxUpdate(tCar *car)
Robots Tools.
int telemetry(tModInfo *modInfo)
Definition: carstruct.h:35
Track structure.
Definition: track.h:502
void SimCarUpdate(tCar *car, tSituation *)
Definition: car.cpp:409
tdble SimDeltaTime
Definition: simu.cpp:35
Section header structure.
Definition: params.cpp:83
void SimSuspConfig(void *hdle, const char *section, tSuspension *susp, tdble F0, tdble X0)
Definition: susp.cpp:140
void SimCarCollideCars(tSituation *)
Definition: collide.cpp:748
void SimSuspUpdate(tSuspension *susp)
Definition: susp.cpp:122
void SimWheelUpdateTire(tCar *car, int index)
Definition: wheel.cpp:421
void SimWheelConfig(tCar *car, int index)
Definition: wheel.cpp:26
void SimSuspReConfig(tCar *car, int index, tSuspension *susp, tdble F0, tdble X0)
Definition: susp.cpp:161
void SimAxleUpdate(tCar *car, int index)
Definition: axle.cpp:66
void SimCarCollideConfig(tCar *car, tTrack *track)
Definition: collide.cpp:700
void SimWingConfig(tCar *car, int index)
Definition: aero.cpp:110
Definition: brake.h:22
tCar * SimCarTable
Definition: simu.cpp:34
Definition: wheel.h:25
tdble rulesTireFactor
Definition: simu.cpp:41
void SimEngineShutdown(tCar *car)
Definition: engine.cpp:212
void SimCarCollideShutdown(int nbcars)
Definition: collide.cpp:522
tdble rulesDamageFactor
Definition: simu.cpp:40
float tdble
Floating point type used in TORCS.
Definition: tgf.h:48
void SimAtmosphereUpdate(tCar *car, tSituation *s)
Definition: atmosphere.cpp:28
void SimCarCollideXYScene(tCar *car)
Definition: collide.cpp:101
void SimSuspThirdReConfig(tCar *car, int index, tSuspension *susp, tdble F0, tdble X0)
Definition: susp.cpp:218
tdble simSkidFactor[]
Definition: categories.cpp:32
void SimDifferentialConfig(void *hdle, const char *section, tDifferential *differential)
Simulation Module Interface Definition.
void SimTransmissionReConfig(tCar *car)
void SimBrakeSystemConfig(tCar *car)
Definition: brake.cpp:48
void SimSteerUpdate(tCar *car)
Definition: steer.cpp:41
The Gaming Framework API.
tdble SimEngineUpdateRpm(tCar *car, tdble axleRpm)
Definition: engine.cpp:162
void SimWheelReConfig(tCar *car, int index)
Definition: wheel.cpp:137
void SimReConfig(tCarElt *carElt)
Definition: simu.cpp:139
void SimBrakeConfig(void *hdle, const char *section, tBrake *brake)
Definition: brake.cpp:21
This is the car structure.
This is the race information structures.
void SimEngineUpdateTq(tCar *car)
Definition: engine.cpp:112
void SimSteerConfig(tCar *car)
Definition: steer.cpp:21
void SimSuspCheckIn(tSuspension *susp)
Definition: susp.cpp:101
void SimInit(int nbcars, tTrack *track, tdble fuelFactor, tdble damageFactor, tdble tireFactor)
Definition: simu.cpp:463
int track(tModInfo *modInfo)
Definition: trackitf.cpp:85
void SimAeroConfig(tCar *car)
Definition: aero.cpp:23
void SimConfig(tCarElt *carElt, RmInfo *)
Definition: simu.cpp:119
void SimWingUpdate(tCar *car, int index, tSituation *s)
Definition: aero.cpp:147
void SimWheelResetWear(tCar *car, int index)
Definition: wheel.cpp:504
void SimSteerReConfig(tCar *car)
Definition: steer.cpp:31
void SimCarCollideInit(tTrack *track)
Definition: collide.cpp:720
float urandom()
return a number drawn uniformly from [0,1]
Definition: sim.h:125
void SimAxleConfig(tCar *car, int index)
Definition: axle.cpp:23
void SimAxleReConfig(tCar *car, int index)
Definition: axle.cpp:49
void SimCollideRemoveCar(tCar *car, int nbcars)
Definition: collide.cpp:496
void SimAtmosphereConfig(tCar *car)
Definition: atmosphere.cpp:22
void SimUpdateFreeWheels(tCar *car, int axlenb)
Definition: wheel.cpp:392
Track Structure and Track Loader Module Definition.
void SimUpdate(tSituation *, double deltaTime, int telemetry)
Definition: simu.cpp:323
void SimBrakeSystemReConfig(tCar *car)
Definition: brake.cpp:59
void SimDifferentialReConfig(tCar *car, int index)
void SimCarConfig(tCar *car)
Definition: car.cpp:29
void SimShutdown(void)
Definition: simu.cpp:474
void SimEngineConfig(tCar *car)
Definition: engine.cpp:23
void SimCarCollideZ(tCar *car)
Definition: collide.cpp:25