TORCS  1.3.10
The Open Racing Car Simulator
Loading...
Searching...
No Matches
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
39extern void SimConfig(tCarElt *carElt, RmInfo *);
40extern void SimReConfig(tCarElt *carElt);
41extern void SimUpdate(tSituation*, double deltaTime, int telemetry);
42extern void SimInit(int nbcars, tTrack* track, tdble fuelFactor, tdble damageFactor, tdble tireFactor);
43extern void SimShutdown(void);
44
45void SimAtmosphereConfig(tCar *car);
47
48extern void SimAxleConfig(tCar *car, int index);
49extern void SimAxleReConfig(tCar *car, int index);
50extern void SimAxleUpdate(tCar *car, int index);
51
52extern void SimCarConfig(tCar *car);
53extern void SimCarUpdate(tCar *car, tSituation*);
54extern void SimCarUpdate2(tCar *car, tSituation*);
55
56extern void SimSuspCheckIn(tSuspension *susp);
57extern void SimSuspUpdate(tSuspension *susp);
58extern void SimSuspConfig(void *hdle, const char *section, tSuspension *susp, tdble F0, tdble X0);
59extern void SimSuspReConfig(tCar* car, int index, tSuspension *susp, tdble F0, tdble X0);
60extern void SimSuspThirdReConfig(tCar* car, int index, tSuspension *susp, tdble F0, tdble X0);
61
62extern void SimWheelConfig(tCar *car, int index);
63extern void SimWheelReConfig(tCar *car, int index);
64extern void SimWheelUpdateRide(tCar *car, int index);
65extern void SimWheelUpdateForce(tCar *car, int index);
66extern void SimWheelUpdateRotation(tCar *car);
67extern void SimUpdateFreeWheels(tCar *car, int axlenb);
68extern void SimWheelUpdateTire(tCar *car, int index);
69extern void SimWheelResetWear(tCar *car, int index);
70
71
72extern void SimSteerConfig(tCar *car);
73extern void SimSteerReConfig(tCar *car);
74extern void SimSteerUpdate(tCar *car);
75
76extern void SimBrakeConfig(void *hdle, const char *section, tBrake *brake);
77extern void SimBrakeUpdate(tCar *car, tWheel *wheel, tBrake *brake);
78extern void SimBrakeSystemConfig(tCar *car);
79extern void SimBrakeSystemReConfig(tCar *car);
80extern void SimBrakeSystemUpdate(tCar *car);
81
82extern void SimAeroConfig(tCar *car);
83extern void SimAeroUpdate(tCar *car, tSituation *s);
84extern void SimWingConfig(tCar *car, int index);
85extern void SimWingReConfig(tCar *car, int index);
86extern void SimWingUpdate(tCar *car, int index, tSituation *s);
87
88extern void SimCarUpdateWheelPos(tCar *car);
89
90extern void SimTransmissionConfig(tCar *car);
91extern void SimTransmissionReConfig(tCar *car);
92extern void SimTransmissionUpdate(tCar *car);
93extern void SimGearboxUpdate(tCar *car);
94
95extern void SimDifferentialConfig(void *hdle, const char *section, tDifferential *differential);
96extern void SimDifferentialReConfig(tCar* car, int index);
97extern void SimDifferentialUpdate(tCar *car, tDifferential *differential, int first);
98
99extern void SimEngineConfig(tCar *car);
100extern void SimEngineUpdateTq(tCar *car);
101extern tdble SimEngineUpdateRpm(tCar *car, tdble axleRpm);
102extern void SimEngineShutdown(tCar *car);
103
104extern void SimCarCollideZ(tCar *car);
105extern void SimCarCollideXYScene(tCar *car);
106extern void SimCarCollideCars(tSituation*);
107extern void SimCarCollideConfig(tCar *car, tTrack *track);
108extern void SimCarCollideShutdown(int nbcars);
109extern void SimCarCollideInit(tTrack *track);
110extern void SimCollideRemoveCar(tCar *car, int nbcars);
111
113
114extern tdble SimDeltaTime;
115extern int SimTelemetry;
116extern tCar *SimCarTable;
120
121extern tdble simDammageFactor[];
122extern tdble simSkidFactor[];
123
125inline 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
struct CarElt tCarElt
Car structure (tCarElt).
tdble simDammageFactor[]
tdble simSkidFactor[]
float tdble
Floating point type used in TORCS.
Definition tgf.h:47
struct Situation tSituation
cars situation used to inform the GUI and the drivers
void SimDifferentialReConfig(tCar *car, int index)
void SimGearboxUpdate(tCar *car)
tCar * SimCarTable
Definition simu.cpp:34
void SimWingUpdate(tCar *car, int index, tSituation *s)
Definition aero.cpp:147
void SimSuspConfig(void *hdle, const char *section, tSuspension *susp, tdble F0, tdble X0)
Definition susp.cpp:140
void SimCarUpdateWheelPos(tCar *car)
Definition car.cpp:275
void SimWingConfig(tCar *car, int index)
Definition aero.cpp:110
void SimWheelConfig(tCar *car, int index)
Definition wheel.cpp:26
void SimUpdate(tSituation *, double deltaTime, int telemetry)
Definition simu.cpp:327
void SimBrakeConfig(void *hdle, const char *section, tBrake *brake)
Definition brake.cpp:21
void SimAeroUpdate(tCar *car, tSituation *s)
Definition aero.cpp:37
void SimDifferentialConfig(void *hdle, const char *section, tDifferential *differential)
void SimBrakeSystemConfig(tCar *car)
Definition brake.cpp:48
void SimSteerUpdate(tCar *car)
Definition steer.cpp:41
void SimCarCollideXYScene(tCar *car)
Definition collide.cpp:101
void SimDifferentialUpdate(tCar *car, tDifferential *differential, int first)
int SimTelemetry
Definition simu.cpp:36
void SimEngineConfig(tCar *car)
Definition engine.cpp:23
float urandom()
return a number drawn uniformly from [0,1]
Definition sim.h:125
tdble rulesDamageFactor
Definition simu.cpp:40
void SimCarCollideZ(tCar *car)
Definition collide.cpp:25
void SimWheelUpdateRide(tCar *car, int index)
Definition wheel.cpp:166
void SimCarCollideConfig(tCar *car, tTrack *track)
Definition collide.cpp:700
void SimSteerConfig(tCar *car)
Definition steer.cpp:21
void SimReConfig(tCarElt *carElt)
Definition simu.cpp:145
void SimBrakeUpdate(tCar *car, tWheel *wheel, tBrake *brake)
Definition brake.cpp:35
void SimAxleUpdate(tCar *car, int index)
Definition axle.cpp:66
void SimAtmosphereConfig(tCar *car)
void SimAxleReConfig(tCar *car, int index)
Definition axle.cpp:49
void SimCarConfig(tCar *car)
Definition car.cpp:29
void SimWheelResetWear(tCar *car, int index)
Definition wheel.cpp:504
void SimAtmosphereUpdate(tCar *car, tSituation *s)
void SimBrakeSystemUpdate(tCar *car)
Definition brake.cpp:73
void SimCarCollideInit(tTrack *track)
Definition collide.cpp:720
void SimSuspThirdReConfig(tCar *car, int index, tSuspension *susp, tdble F0, tdble X0)
Definition susp.cpp:218
void SimSuspCheckIn(tSuspension *susp)
Definition susp.cpp:101
void SimUpdateFreeWheels(tCar *car, int axlenb)
Definition wheel.cpp:392
tdble rulesTireFactor
Definition simu.cpp:41
void SimSuspUpdate(tSuspension *susp)
Definition susp.cpp:122
void SimBrakeSystemReConfig(tCar *car)
Definition brake.cpp:59
void SimWheelUpdateForce(tCar *car, int index)
Definition wheel.cpp:211
void SimWheelReConfig(tCar *car, int index)
Definition wheel.cpp:137
void SimWheelUpdateRotation(tCar *car)
Definition wheel.cpp:373
void SimTransmissionReConfig(tCar *car)
void SimShutdown(void)
Definition simu.cpp:483
void SimInit(int nbcars, tTrack *track, tdble fuelFactor, tdble damageFactor, tdble tireFactor)
Definition simu.cpp:472
void SimWingReConfig(tCar *car, int index)
Definition aero.cpp:131
void SimTransmissionUpdate(tCar *car)
void SimEngineShutdown(tCar *car)
Definition engine.cpp:212
void SimEngineUpdateTq(tCar *car)
Definition engine.cpp:112
void SimCarCollideCars(tSituation *)
Definition collide.cpp:748
void SimCarCollideShutdown(int nbcars)
Definition collide.cpp:522
tdble rulesFuelFactor
Definition simu.cpp:39
void SimCarUpdate2(tCar *car, tSituation *)
Definition car.cpp:435
tdble SimEngineUpdateRpm(tCar *car, tdble axleRpm)
Definition engine.cpp:162
void SimCarUpdate(tCar *car, tSituation *)
Definition car.cpp:417
void SimWheelUpdateTire(tCar *car, int index)
Definition wheel.cpp:421
void SimConfig(tCarElt *carElt, RmInfo *)
Definition simu.cpp:119
void SimAeroConfig(tCar *car)
Definition aero.cpp:23
tdble SimDeltaTime
Definition simu.cpp:35
void SimSuspReConfig(tCar *car, int index, tSuspension *susp, tdble F0, tdble X0)
Definition susp.cpp:161
bool SimAdjustPitCarSetupParam(tCarPitSetupValue *v)
Definition simu.cpp:500
void SimTransmissionConfig(tCar *car)
void SimAxleConfig(tCar *car, int index)
Definition axle.cpp:23
void SimCollideRemoveCar(tCar *car, int nbcars)
Definition collide.cpp:496
void SimSteerReConfig(tCar *car)
Definition steer.cpp:31
Race Manager General Info.
Definition raceman.h:220
Section header structure.
Definition params.cpp:83
Definition brake.h:23
Track structure.
Definition track.h:533
Definition wheel.h:26
struct Suspension tSuspension
int telemetry(tModInfo *modInfo)
int track(tModInfo *modInfo)
Definition trackitf.cpp:85