00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _SIMFCT_H_
00021 #define _SIMFCT_H_
00022
00023 #include <math.h>
00024 #include <stdio.h>
00025 #include <string.h>
00026 #ifdef WIN32
00027 #include <float.h>
00028 #define isnan _isnan
00029 #endif
00030
00031 #include <tgf.h>
00032 #include <track.h>
00033 #include <car.h>
00034 #include <raceman.h>
00035 #include <simu.h>
00036 #include "carstruct.h"
00037 #include <robottools.h>
00038
00039 extern void SimConfig(tCarElt *carElt);
00040 extern void SimReConfig(tCarElt *carElt);
00041 extern void SimUpdate(tSituation*, double deltaTime, int telemetry);
00042 extern void SimInit(int nbcars);
00043 extern void SimShutdown(void);
00044
00045 extern void SimAxleConfig(tCar *car, int index);
00046 extern void SimAxleUpdate(tCar *car, int index);
00047
00048 extern void SimCarConfig(tCar *car);
00049 extern void SimCarUpdate(tCar *car, tSituation*);
00050 extern void SimCarUpdate2(tCar *car, tSituation*);
00051
00052 extern void SimSuspCheckIn(tSuspension *susp);
00053 extern void SimSuspUpdate(tSuspension *susp);
00054 extern void SimSuspConfig(void *hdle, char *section, tSuspension *susp, tdble F0, tdble X0);
00055
00056 extern void SimWheelConfig(tCar *car, int index);
00057 extern void SimWheelUpdateRide(tCar *car, int index);
00058 extern void SimWheelUpdateForce(tCar *car, int index);
00059 extern void SimWheelUpdateRotation(tCar *car);
00060 extern void SimUpdateFreeWheels(tCar *car, int axlenb);
00061
00062
00063 extern void SimSteerConfig(tCar *car);
00064 extern void SimSteerUpdate(tCar *car);
00065
00066 extern void SimBrakeConfig(void *hdle, char *section, tBrake *brake);
00067 extern void SimBrakeUpdate(tCar *car, tWheel *wheel, tBrake *brake);
00068 extern void SimBrakeSystemConfig(tCar *car);
00069 extern void SimBrakeSystemUpdate(tCar *car);
00070
00071 extern void SimAeroConfig(tCar *car);
00072 extern void SimAeroUpdate(tCar *car, tSituation *s);
00073 extern void SimWingConfig(tCar *car, int index);
00074 extern void SimWingUpdate(tCar *car, int index);
00075
00076 extern void SimCarUpdateWheelPos(tCar *car);
00077
00078 extern void SimTransmissionConfig(tCar *car);
00079 extern void SimTransmissionUpdate(tCar *car);
00080 extern void SimGearboxUpdate(tCar *car);
00081
00082 extern void SimDifferentialConfig(void *hdle, char *section, tDifferential *differential);
00083 extern void SimDifferentialUpdate(tCar *car, tDifferential *differential, int first);
00084
00085 extern void SimEngineConfig(tCar *car);
00086 extern void SimEngineUpdateTq(tCar *car);
00087 extern tdble SimEngineUpdateRpm(tCar *car, tdble axleRpm);
00088 extern void SimEngineShutdown(tCar *car);
00089
00090 extern void SimCarCollideZ(tCar *car);
00091 extern void SimCarCollideXYScene(tCar *car);
00092 extern void SimCarCollideCars(tSituation*);
00093 extern void SimCarCollideConfig(tCar *car);
00094 extern void SimCarCollideShutdown(int nbcars);
00095 extern void SimCarCollideInit(void);
00096
00097
00098 extern tdble SimDeltaTime;
00099 extern int SimTelemetry;
00100 extern tCar *SimCarTable;
00101 extern t3Dd vectStart[];
00102 extern t3Dd vectEnd[];
00103
00104 extern tdble simDammageFactor[];
00105 extern tdble simSkidFactor[];
00106
00107 #define SIM_VECT_COLL 12
00108 #define SIM_VECT_SPD 13
00109 #define SIM_VECT_ACCEL 14
00110 #define SIM_WHEEL_SPD 16
00111 #define SIM_WHEEL_ACCEL 20
00112
00113 #define SIM_Z_OFFSET 2.0
00114
00115 #endif
00116
00117
00118