Skyscraper 2.0
vehicle.h
Go to the documentation of this file.
1/*
2 Scalable Building Simulator - Vehicle Object
3 The Skyscraper Project - Version 2.0
4 Copyright (C)2004-2024 Ryan Thoryk
5 https://www.skyscrapersim.net
6 https://sourceforge.net/projects/skyscraper/
7 Contact - ryan@skyscrapersim.net
8
9 This program is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License
11 as published by the Free Software Foundation; either version 2
12 of the License, or (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22*/
23
24#ifndef _SBS_VEHICLE_H
25#define _SBS_VEHICLE_H
26
27namespace OgreBulletDynamics {
28 class WheeledRigidBody;
29 class VehicleTuning;
30 class VehicleRayCaster;
31 class RaycastVehicle;
32}
33
34namespace SBS {
35
36class SBSIMPEXP Vehicle : public Object
37{
38public:
39 int Number; //vehicle number
40 std::string Name; //vehicle name
41 bool Created; //has vehicle been created?
42
44 std::string ChassisMesh;
45 std::string WheelMesh;
49
61
62 Vehicle(Object *parent, const int number);
63 ~Vehicle();
64 bool CreateChassis(Real restitution, Real friction, Real mass, Real linear_dampening, Real angular_dampening);
65 bool AddWheel(bool engine, bool steerable, bool IsFrontWheel, Real radius, const Vector3 &ConnectionPoint, const Vector3 &Direction = Vector3(0, -1, 0), const Vector3 &Axle = Vector3(-1, 0, 0));
66 void KeyPressed(bool left, bool right, bool down, bool up);
67 void KeyReleased(bool left, bool right, bool down, bool up);
68 void Loop();
69 void Enabled(bool value);
70 bool Create(const Vector3 &position);
71 void OnMove(bool parent);
72 void AttachCamera(bool value);
73 Real GetWidth();
74 void Report(const std::string &message);
75 bool ReportError(const std::string &message);
76
77private:
78
79 OgreBulletDynamics::WheeledRigidBody *mCarChassis;
80 OgreBulletDynamics::VehicleTuning *mTuning;
81 OgreBulletDynamics::VehicleRayCaster *mVehicleRayCaster;
82 OgreBulletDynamics::RaycastVehicle *mVehicle;
83
86 std::vector<MeshObject*> mWheels;
87
89 std::vector<int> mWheelsEngine;
90 std::vector<int> mWheelsSteerable;
91
94
97
99};
100
101}
102
103#endif
Real ChassisScale
Definition vehicle.h:46
Real SuspensionStiffness
Definition vehicle.h:54
Real mSteering
Definition vehicle.h:93
Real FrictionSlip
Definition vehicle.h:60
Real WheelFriction
Definition vehicle.h:53
std::string WheelMesh
Definition vehicle.h:45
Object * vehicle
Definition vehicle.h:84
Real SuspensionRestLength
Definition vehicle.h:58
Real WheelScale
Definition vehicle.h:47
Real SuspensionDamping
Definition vehicle.h:55
bool mSteeringRight
Definition vehicle.h:96
Real mEngineForce
Definition vehicle.h:92
OgreBulletDynamics::VehicleTuning * mTuning
Definition vehicle.h:80
OgreBulletDynamics::WheeledRigidBody * mCarChassis
Definition vehicle.h:79
std::string ChassisMesh
Definition vehicle.h:44
int WheelCount
Definition vehicle.h:88
Real MaxSuspensionTravelCm
Definition vehicle.h:59
Vector3 CameraPoint
Definition vehicle.h:48
bool camera_attached
Definition vehicle.h:98
bool mSteeringLeft
Definition vehicle.h:95
OgreBulletDynamics::RaycastVehicle * mVehicle
Definition vehicle.h:82
Real SuspensionCompression
Definition vehicle.h:56
Real RollInfluence
Definition vehicle.h:57
Real MaxEngineForce
Definition vehicle.h:50
std::vector< int > mWheelsSteerable
Definition vehicle.h:90
std::vector< int > mWheelsEngine
Definition vehicle.h:89
OgreBulletDynamics::VehicleRayCaster * mVehicleRayCaster
Definition vehicle.h:81
MeshObject * mChassis
Definition vehicle.h:85
Real SteeringIncrement
Definition vehicle.h:51
std::vector< MeshObject * > mWheels
Definition vehicle.h:86
bool Created
Definition vehicle.h:41
std::string Name
Definition vehicle.h:40
Real SteeringClamp
Definition vehicle.h:52
Vector3 ChassisShift
Definition vehicle.h:43
Ogre::Vector3 Vector3
Definition globals.h:58
Ogre::Real Real
Definition globals.h:57
#define SBSIMPEXP
Definition globals.h:53