;
; Ferrari 312 car - for real driving & testing
; 04-08-00: Created!
; 10-03-01: Tire data taken from Genta's book,
; 'Motor Vehicle Dynamics, Modeling and Simulation', appendix 1.2, example 3.
; 24-10-01; Starting to clone a GPL setup.
; 01-11-01: Gear ratios also taken from the GPL setup.
; NOTES:
; - Trying to match an Alison Hine setup for a Lotus on Monza.
; FOR TRACTION CONTROL: increase engine.max_torque (1000Nm) and clutch.max_torque (1450),
; make sure 4WD is off.
; FOR 4WD: turn powered=1 on for wheels 0 and 1.
; Ruud van Gaal
;
car
{
  name=Ferrari 312
  year=+/- 1967
  credits=by Neil Bainbridge, converted by Ruud van Gaal
  comments=The test vehicle.
  id=fer312
  version=090
  ; Overrule physics?
  ;physics=example
  physics_type=internal
  ; Number of wheels
  wheels=4
  ; Skidding
  skid
  {
    sample=skid.wav
  }
  shadow
  {
    texture=shadow.tga
    width=2.2
    length=4.5
    ; Z offset to align shadow with car
;offset_z=5.3
    offset_z=0.3
  }
  ; Center of gravity of car sprung mass
  cg
  {
    x=0
    ;y=0.9
    y=0
    ; Put CG halfway inbetween susp for 50% weight balance (0.24 for Fer312)
    ;z=1.2
	;z=0
    ;z=0.5
	z=0.24
  }
}
graphics
{
  ; Car models used
  shadow
  {
    model
    {
      ; Projected shadow model
      ;file=tire_lf.dof
      file=body.dof
      use_shaders=0
    }
  }
}
damage
{  
  chassis
  {
    ; Initial damage of chassis (0.0-1.0)
    damage=0
    ; Fade out damage (slowly creep back to zero if undamaged); 0 if damage 'sticks' the entire race
    fade=0.0000
    ; factor to apply to impact speed to determine damage severity
    speed_factor=0.00005
    ; factor to apply to collision force to determine damage severity
    force_factor=0.0000002
    force_factor=0.0
    ; factor over severity for setting damage; make this non-zero to activate damage
    damage_factor=0.1
    ;
    ; Chassis damage can affect engine performance, the following parameters are used to control this engine damage
    ; When engine damage is active, this performance factor will be applied to the engine
    ; 1.0 is off ... since 1.0 means no change
    damage_engine_factor=0.5
    ;  if chassis damage is equal or bigger than this, engine damage will be activated
    damage_engine_from=0.99
    ; Lower damage to this value when engine damage is activated
    damage_engine_to=0
    ; how long to apply engine damage  (ms)
    damage_engine_time=5000

    texture_damage
    {
      ; enable texture damage ?
      enable=1
      ; lod model to use to shoot rays at
      ray_lod=0
      ; factor to determine dent severity
      dent_factor=1.0
      ; dent linearity (0-2)
      dent_linearity=1.8
      ; factor to apply to severity to determine damage radius on control texture
      radius_factor=15.0
      ; radius min
      radius_min=1
      ; random around uv coords (from -x to x)
      uv_randomness=0.2f;
    }
  }    
}
lights
{
  ; Projected lights
  light0
  {
    texture=light.tga
	far=500
  }
}
audio
{
  ; All car audio
  skid
  {
    ;sample=skid.wav
    sample=skid.wav
    sample2=skid_road.wav
  }
  xhorn
  {
    sample=hornxx.wav
  }
  shiftin
  {
    sample=shift_in.wav
  }
  shiftout
  {
    sample=shift_out.wav
  }
  warn_rpm
  {
    ;sample=warn_rpm.wav
  }
  throttle_off
  {
    ; Master volume for this set
    volume=0.4
    smp0
    {
      ; All engine samples depend on engine RPM
      sample=deltawaste.wav
    }
  }
  ; Engine has 3 sets of sounds: accelerate, decelerate and inboard
  acc_all
  {
    ; Attack is the offset of the smp<x>.min value at which
    ; the sample is mixed in (value is in rpm) 
    attack=500
    ; Decay is the offset of the smp<x>.max value at which
    ; the sample is mixed out (value is in rpm) 
    decay=500
  }
  accelerate_out
  {
    ; Master volume for this set
    volume=1
    ; Acceleration; outside of the car
    smp0~audio.acc_all
    {
      ; All engine samples depend on engine RPM
      sample=CV8427H0.wav
      min=0
      max=1200
      ; RPM of used sample
      natural=1000
    }
    smp1~audio.acc_all
    {
      ; All engine samples depend on engine RPM
      sample=CV8427H1.wav
      min=1200
      max=3000
      ; RPM of used sample
      natural=2000
    }
    smp2~audio.acc_all
    {
      sample=CV8427H2.wav
      min=3000
      max=4000
    }
    smp3~audio.acc_all
    {
      sample=CV8427H3.wav
      min=4000
      max=5000
    }
    smp4~audio.acc_all
    {
      sample=CV8427H4.wav
      min=5000
      max=6000
    }
    smp5~audio.acc_all
    {
      sample=CV8427H5.wav
      min=6000
      max=20000
      natural=6500
    }
  }
  decelerate_out
  {
    ; Decelerating
    ; Master volume for this set
    volume=1.0
    ; Acceleration; outside of the car
    smp0~audio.acc_all
    {
      ; All engine samples depend on engine RPM
      sample=CV8427H0.wav
      min=0
      max=1200
      ; RPM of used sample
      natural=1000
    }
    smp1~audio.acc_all
    {
      ; All engine samples depend on engine RPM
      sample=CV8427H1.wav
      min=1200
      max=30000
      ; RPM of used sample
      natural=2000
    }
  }
  XXXwind
  {
    ; Pitch determination
    pitch_scale=0.2
    pitch_offset=50
    smp0
    {
      sample=wind.wav
      ; Speeds in m/s
      min=0
      max=200
      natural=50
    }
  }
}
body
{
  ; Weight of the car's body (kg)
  ; This excludes wheels, driver and fuel
  mass=700
  ; Inertia values; X/Y/Z=pitch, yaw (heading), roll
  inertia
  {
    x=850
    y=900
    z=200
  }
  ; Location; give it a bit of height for the wheels hanging on
  ; it will fall down to the ground by itself
  x=0
  y=0
  z=0
  ; Bounding box; make it large for ellipsoids
  width=1.8
  ;width=2.2
  height=0.4
  length=4.0
  manual_box=1
  ;cockpit_start=.75
  cockpit_start=1
  cockpit_length=1
  model
  {
    ;file=body_sphere.dof
    file=body.dof
    ;lod0_z=5
    ;lod1_z=5
    ;lod_out=10
  }
}
aero
{
  draft
  {
    ; Drafting/slipstreaming - scaling in meters of the area behind the car, based on velocity
	scale_lat=2
	scale_lon=5
  }
  body
  {
    ; Application center relative to the NP
    center=0 0 0
    ; Longitudinal drag coefficient (Cx, X-axis is SAE's car longitudinal)
    cx=0.335
    ; Downforce
    cz=0.3
    ; Frontal area in m^2
    area=1.824
  }
  wings=1
  wing0
  {
    name=Front wing
    span=1.2
    cord=0.2
    coeff_drag=0.2
    coeff_down=0.3
    center=0 0.2 2.1
    ; Angle in degrees
    angle=10
    ; Angle offset; a zero degree wing still gives downforce often
    angle_offset=0
  }
}
steer
{
  ; Position (stub gfx)
  x=0
  y=.7
  z=.2
  ; Graphical representation
  radius=.0
  ; Rotation towards the driver
  xa=15
  ; Max angle of rotation (angle = -lock/2..lock/2)
  ;lock=45
  lock=270
  linearity=0.9
  ; Non-linear curves (active steering systems)
  power_steering
  {
    ; Curves are multiplied
    assist_curve_vel=assist_vs_vel.crv
    assist_curve_steer=assist_vs_steer.crv
    friction_curve_vel=friction_vs_vel.crv
    friction_curve_steer=friction_vs_steer.crv
    damping_curve_vel=damping_vs_vel.crv
    damping_curve_steer=damping_vs_steer.crv
    spring_curve_vel=spring_vs_vel.crv
    spring_curve_steer=spring_vs_steer.crv
  }
}
engine
{
  ; Weight of engine
  mass=150
  ; Max rpm generated by the motor
  max_rpm=11000
  ; Idle rpm
  idle_rpm=1000
  ; When to stall?
  stall_rpm=800
  ; Idle calculation method; 0=old, 1=new (throttle fully closed on pedal release)
  idle_method=1
  ; Engine RPM -> maximum torque curve (normalized 0..1 curve)
  curve_torque=torque.crv
  ; Maximum torque (multiplier for the torque curve)
  max_torque=293
  ; Automatically press clutch when below autoclutch_rpm?
  autoclutch=0
  autoclutch_rpm=1500
  start_stalled=0
  ; Enable stalling at all?
  enable_stall=0
  shifting
  {
    automatic=0
    ; RPMs at which to shift; make sure shift_down_rpm>shift_up_rpm
    shift_up_rpm=2500
    shift_down_rpm=1000
    ; Automatic shifting duration
    time_to_declutch=100
    time_to_clutch=100
    time_in_neutral=50
    ; Shifting down separate times
    time_to_declutch_down=50
    time_in_neutral_down=300
    time_to_clutch_down=50
  }
  ; Inertia of engine parts
  inertia
  {
    ; Rotational inertia of engine parts (kg*m^2)
    engine=0.09
    ;final_drive=0.12
  }
  ; Internal engine braking coefficient (0=low, >0=friction)
  ; The braking coefficient is linked to the rpm of the motor (linearly)
  ; in the following way:
  ; min_torque=-braking_coeff*rps    (rps = rpm/60)
  ; max_torque=torque
  ; Throttle moves the torque from min_torque..max_torque
  ; Example: Arrows F1 car @14.500 rpm => braking_coeff=0.74
  ; Then   : rps=14500/60 = 241, negative torque = -0.74*241 = -180 Nm
  braking_coeff=1.14
  ; Engine friction (NYI)
  friction=0
  ; Old style engine
  sample=engine.wav
  sample_rpm=3000
}
traction_control
{
  enable=0
  ; Allowed front/rear wheel speed ratio
  max_velocity_ratio=1.2
  ; When to turn TC off
  min_velocity_ratio=1.01
  min_velocity=0
}
abs
{
  ; Anti-lock braking system
  enable=0
  ; Allowed front/rear wheel speed ratio
  max_velocity_ratio=1.1
  ; When to turn ABS off
  min_velocity_ratio=1.01
  min_velocity=0
}
warning_sound_template
{
  ; Optional warning sound as rpm gets high
  rpm=7000
  duration=1500
  freq=1
}
gearbox
{
  gears=6
  ; Gear ratios; note that negative gears are reverse gears
  ; There must be 1 reverse gear; the rest is forward
  gear0
  {
    ratio=-2.6923
    inertia=0.9
  }
  gear1
  {
    ratio=5.286
    ratio=2.286
    inertia=0.13
    engine_map=1.0
    warning_sound~warning_sound_template
  }
  gear2
  {
    ratio=2.906
    ratio=1.906
    inertia=0.09
    warning_sound~warning_sound_template
  }
  gear3
  {
    ratio=2.1
    ratio=1.6
    inertia=0.07
    warning_sound~warning_sound_template
  }
  gear4
  {
    ratio=1.408
    ratio=1.208
    inertia=0.05
    warning_sound~warning_sound_template
  }
  gear5
  {
    ratio=1.091
    inertia=0.03
  }
  ; Final ratio, multiplies all gear ratios (10/31)
  ; Ignored since Racer v0.5; use the differential ratios instead
  end_ratio=3.1
}
clutch
{
  max_torque=1450
}
handbrakes
{
  wheels=23
}
differentials
{
  count=1
  diff0
  {
	  ; Diff type; 0=free, 1=viscous, 2=salisbury
	  type=1
	  ; Ratio of input vs. output
	  ratio=3.1
	  ; Viscous locking
	  locking_coeff=100
	  ; Power ramp angle (degrees)
	  power_angle=85
	  ; Coast ramp angle
	  coast_angle=30
	  ; Number of clutches in use
	  clutches=4
	  ; Clutch factor to adjust effect of clutches
	  clutch_factor=1.0
	  ; Friction factor (Nm)
	  friction=100.0
	  ; FWD
	  ;output0=0
	;output1=1
  }
}
antirollbar
{
  ; ARB disabled if count=0
  count=2
  ; The anti-roll bars add forces to the suspension as follows:
  ; diff=compression_left-compression_right
  ; force=diff*k
  ; So it's linearly related to the difference in suspension compression
  arb0
  {
    susp_left=0
    susp_right=1
    k=10000
  }
  arb1
  {
    susp_left=2
    susp_right=3
    k=10000
  }
}
;
; Suspension
;
susp_all
{
  ; Size of spring when in rest (used as size of suspension actually)
  restlen=.5
  minlen=.3
  maxlen=.7
  ; bumpstop
  bumpstop_len=0.01
  ; Bumpstop spring rate at full compression
  bumpstop_k=60000
  ; Geometrical effects
  ; Bump steer; toe change in radians per meter of suspension deflection
  toe_change_per_m=0
  ; Camber change in radians per meter deflection
  camber_change_per_m=0
  ; Camber change ratio; degrees of camber / degrees of wheel rotation
  camber_change_steering=0
}
susp_front~susp_all
{
  y=0.55
  z=1.44
  ; Symmetric
  ;y=0.5
  z=1
  ;anti_pitch=0.3
  anti_pitch=0
  ; Roll center
  roll_center
  {
    x=0
    y=0.01
    ;y=-0.168
    ;y=-0.208
    y=0
    z=0
  }
  ; Spring coefficient (N/m); determines force when spring is pulled/pushed
  ;k=15000
  k=35000
  ;k_curve=spring_force_front.crv
  ; Damper bump function; 0=linear, 1=exp, 2=digressive, 3=sqrt, 4=lut
  damper_curve=damper_front.crv
  bump_function=3
  ; Damper bump rate (N/(m/s))
  bump_rate=2000
  ;bump_max=2000
  ; Rebound rate (N/m/s)
  rebound_function=3
  rebound_rate=4000
  rebound_max=0
  ; Caster to get more self-alignment
  caster_offset=-0.01
}
susp_rear~susp_all
{
  y=0.55
  z=-0.96
  ;restlen=.6
  ; Symmetric
  ;y=0.5
  z=-1
  ;anti_pitch=0.3
  anti_pitch=0
  ; Roll center
  roll_center
  {
    x=0
    y=-0.008
    ;y=-0.208
    y=0
    z=0
  }
  ; Spring rate
  k=35000
  ;k=15000
  ;k_curve=spring_force_front.crv
  ; Damper bump function; 0=linear, 1=exp, 2=digressive, 3=sqrt
  damper_curve=damper_front.crv
  bump_function=3
  ; Damper bump rate (N/(m/s))
  bump_rate=3000
  ; Rebound rate (N/m/s)
  rebound_function=3
  rebound_rate=6000
}
susp0~susp_front
{
  ; Relative location (to body)
  x=.75
  ; Gfx
  radius=.04
  slices=5
  model
  {
    file=
    scale
    {
      x=1
      y=1
      z=1
    }
  }
}
susp1~susp_front
{
  ; Relative location (to body)
  x=-.75
  radius=.04
}
susp2~susp_rear
{
  x=.75
  radius=.04
}
susp3~susp_rear
{
  x=-.75
  radius=.04
}
;
; Wheels
;
tire_model_front
{
  ; SAE 950311 low-speed tire implementation
  ; Relaxation length laterally (in m)
  relaxation_length_lat=0.91
  ; Relaxation length longitudinally (in m)
  relaxation_length_long=.091
  ; Prediction damping
  damping_predict_lat=0.503
  ;damping_predict_lat=0.263
  damping_predict_long=0.06
}
tire_model_rear
{
  ; Relaxation length laterally (in m)
  relaxation_length_lat=0.91
  ; Relaxation length longitudinally (in m)
  relaxation_length_long=.091
  ; Prediction damping
  damping_predict_lat=0.503
  ;damping_predict_lat=0.263
  damping_predict_long=0.06
}
_pacejka
{
  ; From Know-Nothing-Bozo
  ; Not too great a tire
  a0=1.3
  a1=-22.1
  a2=1011
  a3=1078
  a4=5.62
  a5=0.022
  a6=-0.354
  a7=0.707
  a8=0.028
  a9=0
  a10=0
  a111=14.8
  a112=0
  a13=0
  ; Fx
  b0=1.65
  b1=-21.3
  b2=1144
  b3=49.6
  b4=226
  b5=0.069
  b6=-0.006
  b7=0.056
  b8=0.486
  b9=0
  b10=0
  ; Mz
  c0=2.4
  c1=-2.72
  c2=-2.28
  c3=-1.86
  c4=-2.73
  c5=0.11
  c6=0.03
  c7=-0.08
  c8=0.643
  c9=-4.04
  c10=0.07
  c11=0.028
  c12=0
  c13=0
  c14=-0.066
  c15=0.945
  c16=0
  c17=0
}
pacejka
{
  ; Pacejka constants for all tires
  ; Use per-wheel though!
  ; Lateral force
  ;a0=1.799
  a0=1.692
  a1=0
  a2=1688
  a3=4140
  a4=6.026
  a5=0
  a6=-0.3589
  a7=1
  a8=0
  a9=-0.006111
  a10=-0.03224
  a111=0
  a112=0
  a12=0
  a13=0
  ; Longitudinal force
  ;b0=1.65
  b0=1.65
  b1=0
  b2=1688
  b3=0
  b4=229
  b5=0
  b6=0
  b7=0
  b8=-10
  b9=0
  b10=0
  ; Aligning moment
  c0=2.068
  c1=-6.49
  c2=-21.85
  c3=0.416
  c4=-21.31
  c5=0.02942
  c6=0
  c7=-1.197
  c8=5.228
  c9=-14.84
  c10=0
  c11=0
  c12=-0.003736
  c13=0.03891
  c14=0
  c15=0
  c16=0.639
  c17=1.693
  ; Optimal values (used in Gregor Veble's slip combination method)
  optimal_slipratio=0.2
  ; Optimal slip angle in radians (=degrees/52.29578)
  optimal_slipangle=0.139626
}
wheel_all
{
  ; Vertical tire spring rate (when the wheel is loaded, it acts as a spring)
  ; In N/m (! not N/cm)
  ;tire_rate=60000
  tire_rate=240000
  ;tire_rate=30000
  inertia=0.6
  ;inertia=2.3
  ; Load filtering to simulate the rubber catching shocks (see http://www.racer.nl/reference/wheels.htm) - 0=no filtering
  load_filter_frequency=20.28
}
wheel_front~wheel_all
{
  ; Ackerman factor; scales steering when the wheel is the inside wheel
  ackerman=1.0
  ; 4WD test
  powered=0
  power_gearing=0.25
  ; Braking capability in Nm (torque)
  max_braking=2000
  ; Brake factor (determines brake balance)
  braking_factor=.95
  ;braking_factor=.5
  ;braking_factor=1
  ; Hand braking capability in Nm (torque)
  max_handbrake_torque=4000
  ; Max wheel rotation
  ;lock=180
  ;lock=90
  lock=30
}
wheel_rear~wheel_all
{
  ; Braking capability in Nm (torque)
  max_braking=2000
  ;max_braking=1
  ; Brake factor (determines brake balance)
  braking_factor=.05
  ;braking_factor=1
  ; Hand braking capability in Nm (torque)
  max_handbrake_torque=10000
  ; Max wheel rotation
  lock=30
}
wheel0~wheel_front
{
  ; Rotates when steering?
  steering=1
  ;camber=-5
  ; Mass in kilograms; add car body
  mass=20
  ; Rotational inertia (along spin axis)
  radius=.34
  width=.3
  slices=20
  ; Friction with different surfaces; default is 1.0
  friction_road=1.7
  curves
  {
    traction_force=sliptrac.crv
    braking_force=slipbrak.crv
    lat_force=latforce.crv
  }
  model
  {
    ; Use a 3D model instead of stub graphics
    ;file=body.dof
    file=tire_lf.dof
  }
  xxxmodel2
  {
    file=tire_lf.dof
    ;file=body.dof    
    velocity=1
  }
  pacejka~pacejka
  {
  }
  tire_model~tire_model_front
  {
  }
}
wheel1~wheel_front
{
  ; Rotates when steering?
  steering=1
  ;camber=-5
  ; Mass in kilograms
  mass=20
  radius=.34
  width=.3
  slices=20
  friction_road=1.7
  model
  {
    file=tire_rf.dof
  }
  pacejka~pacejka
  {
  }
  tire_model~tire_model_front
  {
  }
}
wheel2~wheel_rear
{
  steering=0
  ; Mass in kilograms; add relative car body carried by this wheel
  mass=20
  radius=.34
  width=.3
  slices=20
  friction_road=1.7
  ;camber=-5
  model
  {
    ; Use a 3D model instead of stub graphics
    file=tire_lr.dof
  }
  pacejka~pacejka
  {
  }
  tire_model~tire_model_rear
  {
  }
}
wheel3~wheel_rear
{
  steering=0
  ; Mass in kilograms
  mass=20
  ;camber=-5
  radius=.34
  width=.3
  slices=20
  friction_road=1.7
  model
  {
    file=tire_rr.dof
  }
  pacejka~pacejka
  {
  }
  tire_model~tire_model_rear
  {
  }
}
camera0
{
  ; Head physics test
  offset
  {
    ; Place of eye
    x=0
    y=0.7582
    z=-1
  }
  head_physics
  {
    ; Springs
    lateral
    {
      k=8500
      damp=350
      max=10
    }
    vertical
    {
      k=700
      damp=225
      max=10
    }
    longitudinal
    {
      k=1700
      damp=380
      max=10
    }
    yaw
    {
      k=1700
      damp=380
      max=10
    }
    pitch
    {
      k=7000
      damp=350
      max=10
    }
    roll
    {
      k=1700
      damp=380
      max=10
    }
  }
  name=Head
  ; Model: 0=full, 1=cockpit, 2=none
  model=0
  ; Render wheels?
  wheels=1
  ; Vertical field of view
  fov=50
}
Xcamera0
{
  ; Alex Forbin, bad rotation in v0.8.40
  offset
  {
    x=0.3244
    y=10.7582
    z=-3.23
  }
    offset_to
    {
      x=0.3244
      y=1.7
      z=0
    }
  angle
  {
    x=0
    y=0
    z=0
  }
  src
  {
    mass=8
    k=3900
    ;damping=19
    ;damping=190
    damping=1900
    maxdist=1
  }
  dst
  {
    mass=1
    k=2000
    damping=1700
    maxdist=0
  }
  name=inside
  model=0
  view=1
  wheels=2
  fov=50
}
camera0
{
  ; Alex Forbin, bad rotation
  offset
  {
    x=0
    ;x=0.398438
    y=0.9258
    z=-0.2407
  }
  offset_to
  {
    x=0
    ;x=0.398438
    y=0.9258
    z=2.407
  }
  src
  {
    mass=5
    k=150
    ;k=1150
    damping=95
    ;damping=695
    ;maxdist=1
    maxdist=1
    ;maxdist=0.23
  }
  dst
  {
    mass=10
    k=1000
    damping=1000
    maxdist=0
  }
  model=0
  wheels=1
  view=1
  fov=60
  name=driver
}
camera0
{
  ; OK
  fov=70
  offset
  {
    x=0
    y=0.5
    z=0
    ;z=-0.4
  }
  offset_to
  {
    x=0
    y=0.5
    z=1
  }
  angle
  {
    x=15
    y=180.173615
    z=0
  }
  name=Behind
  follow
  {
    ;velocity=1
    pitch=1
    yaw=0
    roll=0
  }
  ; Source/target inertia
  src
  {
    mass=1
    k=70
    damping=15
    maxdist=0
  }
  dst
  {
    mass=1
    k=70
    damping=15
    maxdist=0
  }
}
camera0_bup
{
  fov=70
  ;project_down=0.3
  ;project_up=1.3
  offset
  {
    x=0
    y=0.5
    z=0
    ;z=-0.4
  }
  offset_to
  {
    x=0
    y=0.5
    z=100
  }
  angle
  {
    x=15
    y=180.173615
    z=0
  }
  name=Behind
  follow
  {
    ;velocity=1
    pitch=1
    yaw=0
    roll=0
  }
  ; Source/target inertia
  src
  {
    mass=1
    k=70
    damping=15
    maxdist=0
  }
  dst
  {
    mass=1
    k=70
    damping=15
    maxdist=0
  }
}
camera0_org
{
  fov=70
  offset
  {
    x=0
    y=0.9
    z=-3.5
  }
  offset_to
  {
    x=0
    y=0
    z=0
  }
  angle
  {
    x=15
    y=180.173615
    z=0
  }
  name=Behind
  follow
  {
    ;velocity=1
    pitch=1
    yaw=0
    roll=0
  }
  ; Source/target inertia
  src
  {
    mass=1
    k=70
    damping=15
    maxdist=10.03
  }
  dst
  {
    mass=1
    k=70
    damping=15
    maxdist=10.03
  }
}
camera0_ORG
{
  fov=70
  offset
  {
    ;x=0.001563
    ;y=-0.406250
    ;z=-4.755003
    x=0
    ;y=-0.5
    y=0.9
    z=-2.5
  }
  angle
  {
    x=15.138849
    y=180.173615
    z=0
  }
  name=Behind
  follow
  {
    ;velocity=1
    pitch=0
    yaw=1
    roll=0
  }
  ; Source/target inertia
  src
  {
    mass=1
    k=70
    damping=15
    maxdist=10.03
  }
  dst
  {
    mass=1
    k=70
    damping=15
    maxdist=10.03
  }
}
camera1
{
  offset
  {
    x=0.329687
    y=0.064583
    z=-2.760001
  }
  angle
  {
    x=10.138893
    y=-10.763865
    z=0.000000
  }
  name=Side view
  follow
  {
    pitch=1
    yaw=1
    roll=1
  }
}
camera2
{
  offset
  {
    x=-0.096876
    y=-0.502081
    z=-0.960001
  }
  angle
  {
    x=12.361113
    y=-206.249771
    z=-1.909714
  }
  follow
  {
    pitch=0
    yaw=1
    roll=1
  }
}
camera3
{
  follow
  {
    pitch=
    yaw=1
    roll=
  }
  offset
  {
    x=-0.409373
    y=0.193750
    z=-2.469996
  }
  angle
  {
    x=11.666655
    y=36.458389
    z=-2.083333
  }
  name=Wheels
}
camera4
{
  offset
  {
    x=0.045313
    y=-0.581249
    z=-0.789998
  }
  angle
  {
    x=-9.722213
    y=-200.520660
    z=0.000000
  }
}
camera6
{
  follow
  {
    pitch=1
    yaw=1
    roll=0
  }
  offset
  {
    x=-0.329687
    y=-0.200001
    z=-4.085006
  }
  angle
  {
    x=18.194424
    y=-271.007324
    z=-0.434030
  }
}
camera7
{
  offset
  {
    x=0.015625
    y=-0.772919
    z=-1.014994
  }
  angle
  {
    x=3.888888
    y=179.652771
    z=0.000000
  }
  follow
  {
    pitch=0
    yaw=1
    roll=0
  }
}
camera9
{
  follow
  {
    ;velocity=1
    pitch=0
    yaw=0
    roll=0
  }
  offset
  {
    x=0
    y=0.45
    z=0.15
  }
  offset_to
  {
    x=0
    y=0.3
    z=15
  }
  angle
  {
    x=8.333330
    y=-179.131927
    z=0.000000
  }
  name=Driver
  ; Source/target inertia
  src
  {
    mass=1
    k=270
    damping=50
    maxdist=0.1
  }
  dst
  {
    mass=1
    k=150
    damping=15
    maxdist=10.03
  }
}
camera8
{
  offset
  {
    x=0.000000
    y=-0.562500
    z=-1.405001
  }
  angle
  {
    x=0.000000
    y=0.000000
    z=0.000000
  }
  follow
  {
    pitch=1
    yaw=1
    roll=1
  }
  name=Looking at driver
}
camera5
{
  follow
  {
    pitch=0
    yaw=1
    roll=0
  }
  offset
  {
    x=-0.195313
    y=-1.064584
    z=-6.139999
  }
  angle
  {
    x=24.027786
    y=-187.846878
    z=0.000000
  }
  name=High
}
scripts
{
  load=car.oxs
}
