public void Init() { _overallCar = new OverallCar(); _overallCar.Wheelbase = 1.5f; _overallCar.Weight = 200; _overallCar.TrackWidth = 1.5f; _overallCar.Drag = new Spline(new[] { 0d, 100d }, new[] { 0d, 0d }); OverallCarOutput.LastCalculation.Direction = new Vector3(1, 0, 0); OverallCarOutput.LastCalculation.Speed = 10; OverallCarOutput.LastCalculation.Position = new Vector3(); WheelOutput.LastCalculations[0] = new WheelOutput(); WheelOutput.LastCalculations[0].Direction = new Vector2(1, 1).Normalize(); WheelOutput.LastCalculations[0].LateralAcceleration = 100; WheelOutput.LastCalculations[0].LongitudinalAccelerationForce = 0; WheelOutput.LastCalculations[0].LongitudinalDecelerationForce = 10; WheelOutput.LastCalculations[0] = new WheelOutput(); WheelOutput.LastCalculations[0].Direction = new Vector2(1, 1).Normalize(); WheelOutput.LastCalculations[0].LateralAcceleration = 100; WheelOutput.LastCalculations[0].LongitudinalAccelerationForce = 0; WheelOutput.LastCalculations[0].LongitudinalDecelerationForce = 10; WheelOutput.LastCalculations[0] = new WheelOutput(); WheelOutput.LastCalculations[0].Direction = new Vector2(1, 0).Normalize(); WheelOutput.LastCalculations[0].LateralAcceleration = 0; WheelOutput.LastCalculations[0].LongitudinalAccelerationForce = 50; WheelOutput.LastCalculations[0].LongitudinalDecelerationForce = 10; WheelOutput.LastCalculations[0] = new WheelOutput(); WheelOutput.LastCalculations[0].Direction = new Vector2(1, 0).Normalize(); WheelOutput.LastCalculations[0].LateralAcceleration = 0; WheelOutput.LastCalculations[0].LongitudinalAccelerationForce = 50; WheelOutput.LastCalculations[0].LongitudinalDecelerationForce = 10; CalculationController.Initialize(1); }
/// <summary> /// controls the calculation process /// </summary> private CalculationController() { _calculationEwh = new EventWaitHandle(false, EventResetMode.AutoReset); _continueThreadEwh = new EventWaitHandle(true, EventResetMode.AutoReset); _threadEndedEwh = new EventWaitHandle(false, EventResetMode.AutoReset); _threadInterrupedEwh = new EventWaitHandle(false, EventResetMode.AutoReset); Aerodynamic = new Aerodynamic(); Brake = new Brake(); Engine = new Engine(); GearBox = new GearBox(); OverallCar = new OverallCar(); SecondaryDrive = new SecondaryDrive(); Steering = new Steering(); Suspension = new Suspension(); Wheels = new Wheels(); _workerThread = new Thread(WorkerFunction); }