#ifndef Physics_Vehicle_h__ #define Physics_Vehicle_h__ //#include "PrecompiledHeader.h" #include #include #include #include #include #include #include #include // Vehicle page 425 in documentation #include #include #include #include #include #include #include #include #include #include #include #include #include "World.h" #include "Components/Vehicle.h" #include "Components/Wheel.h" #include "Components/Transform.h" class VehicleSetup { public: virtual void VehicleSetup::buildVehicle(World *world, const hkpWorld* physicsWorld, hkpVehicleInstance& vehicle, EntityID vehicleEntity, std::vector wheelEntities); public: struct WheelData { Components::Wheel* WheelComponent; Components::Transform* TransformComponent; }; std::vector m_Wheels; virtual void setupVehicleData(const hkpWorld* world, hkpVehicleData& data); virtual void setupComponent(const hkpVehicleData& data, hkpVehicleDefaultAnalogDriverInput& driverInput); virtual void setupComponent(const hkpVehicleData& data, hkpVehicleDefaultEngine& engine, Components::Vehicle vehicleComponent); virtual void setupComponent(const hkpVehicleData& data, hkpVehicleDefaultSteering& steering, Components::Vehicle vehicleComponent); virtual void setupComponent(const hkpVehicleData& data, hkpVehicleDefaultTransmission& transmission, Components::Vehicle vehicleComponent); virtual void setupComponent(const hkpVehicleData& data, hkpVehicleDefaultBrake& brake, Components::Vehicle vehicleComponent ); virtual void setupComponent(const hkpVehicleData& data, hkpVehicleDefaultSuspension& suspension, Components::Vehicle vehicleComponent); virtual void setupComponent(const hkpVehicleData& data, hkpVehicleDefaultAerodynamics& aerodynamics, Components::Vehicle vehicleComponent ); virtual void setupComponent(const hkpVehicleData& data, hkpVehicleDefaultVelocityDamper& velocityDamper, Components::Vehicle vehicleComponent); virtual void setupWheelCollide(const hkpWorld* world, const hkpVehicleInstance& vehicle, hkpVehicleRayCastWheelCollide& wheelCollide); }; #endif // Physics_Vehicle_h__