1 /* 2 * VehicleObject.h 3 * toycars_vehicle_editor 4 * 5 * Created by Ruben Henner Zilibowitz on 23/02/09. 6 * Copyright 2009 Ruben Henner Zilibowitz. All rights reserved. 7 * 8 */ 9 10 #ifndef VEHICLEOBJECT_H 11 #define VEHICLEOBJECT_H 1 12 #ifdef HAVE_CONFIG_H 13 #include <config.h> 14 #endif 15 16 #include <vector> 17 #include <list> 18 19 struct Vec2D { 20 double x, y; 21 Vec2D(double xx=0, double yy=0) {x=xx;y=yy;} 22 }; 23 24 typedef std::vector< std::list<Vec2D> > Geometry; 25 26 class VehicleObject { 27 public: 28 VehicleObject(); 29 ~VehicleObject(); 30 31 void reset(); 32 void loadVehicle(const char *filename); 33 void saveVehicle(const char *filename); 34 void installVehicle(const char *name); 35 void uninstallVehicle(const char *name); 36 37 void loadSpriteFromDataDir(const char *name); 38 void loadWheelSpriteFromDataDir(const char *name); 39 getAxelWidth()40 double getAxelWidth() { return axelWidth; } getFrontAxel()41 double getFrontAxel() { return frontAxel; } getRearAxel()42 double getRearAxel() { return rearAxel; } getFrontWheelInset()43 double getFrontWheelInset() { return frontWheelInset; } getFrontWheelRadius()44 double getFrontWheelRadius() { return frontWheelRadius; } getRearWheelRadius()45 double getRearWheelRadius() { return rearWheelRadius; } getMass()46 double getMass() { return mass; } getInertia()47 double getInertia() { return inertia; } getFrontWheelInertia()48 double getFrontWheelInertia() { return frontWheelInertia; } getRearWheelInertia()49 double getRearWheelInertia() { return rearWheelInertia; } getDrag()50 double getDrag() { return drag; } getRollingResistance()51 double getRollingResistance() { return rollingResistance; } getVehicleFrameWidth()52 int getVehicleFrameWidth() { return vehicleFrameWidth; } getVehicleFrameHeight()53 int getVehicleFrameHeight() { return vehicleFrameHeight; } getWheelFrameWidth()54 int getWheelFrameWidth() { return wheelFrameWidth; } getWheelFrameHeight()55 int getWheelFrameHeight() { return wheelFrameHeight; } getWheelsAboveSprite()56 bool getWheelsAboveSprite() { return wheelsAboveSprite; } getGeometry()57 Geometry *getGeometry() { return &geometry; } getFrontSlipRatioPacejka()58 double *getFrontSlipRatioPacejka() { return frontSlipRatioPacejka; } getFrontSlipAnglePacejka()59 double *getFrontSlipAnglePacejka() { return frontSlipAnglePacejka; } getRearSlipRatioPacejka()60 double *getRearSlipRatioPacejka() { return rearSlipRatioPacejka; } getRearSlipAnglePacejka()61 double *getRearSlipAnglePacejka() { return rearSlipAnglePacejka; } getVehicleSpriteFilename()62 char *getVehicleSpriteFilename() { return vehicleSpriteFilename; } getWheelSpriteFilename()63 char *getWheelSpriteFilename() { return wheelSpriteFilename; } getTitle()64 const char *getTitle() { return title; } getAuthor()65 const char *getAuthor() { return author; } 66 setWheelAboveSprite(bool x)67 void setWheelAboveSprite(bool x) { wheelsAboveSprite = x; } setAxelWidth(double x)68 void setAxelWidth(double x) { axelWidth = x; } setFrontAxel(double x)69 void setFrontAxel(double x) { frontAxel = x; } setRearAxel(double x)70 void setRearAxel(double x) { rearAxel = x; } setFrontWheelInset(double x)71 void setFrontWheelInset(double x) { frontWheelInset = x; } setFrontWheelRadius(double x)72 void setFrontWheelRadius(double x) { frontWheelRadius = x; } setRearWheelRadius(double x)73 void setRearWheelRadius(double x) { rearWheelRadius = x; } setMass(double x)74 void setMass(double x) { mass = x; } setInertia(double x)75 void setInertia(double x) { inertia = x; } setFrontWheelInertia(double x)76 void setFrontWheelInertia(double x) { frontWheelInertia = x; } setRearWheelInertia(double x)77 void setRearWheelInertia(double x) { rearWheelInertia = x; } setDrag(double x)78 void setDrag(double x) { drag = x; } setRollingResistance(double x)79 void setRollingResistance(double x) { rollingResistance = x; } setVehicleFrameWidth(int x)80 void setVehicleFrameWidth(int x) { vehicleFrameWidth = x; } setVehicleFrameHeight(int x)81 void setVehicleFrameHeight(int x) { vehicleFrameHeight = x; } setWheelFrameWidth(int x)82 void setWheelFrameWidth(int x) { wheelFrameWidth = x; } setWheelFrameHeight(int x)83 void setWheelFrameHeight(int x) { wheelFrameHeight = x; } 84 void setTitle(const char *str); 85 void setAuthor(const char *str); 86 87 protected: 88 char title[256]; 89 char author[256]; 90 int vehicleFrameWidth, vehicleFrameHeight; 91 char vehicleSpriteFilename[256]; 92 Geometry geometry; 93 double axelWidth; 94 double frontAxel; 95 double rearAxel; 96 double frontWheelInset; 97 double frontWheelRadius; 98 double rearWheelRadius; 99 double mass; 100 double inertia; 101 double frontWheelInertia; 102 double rearWheelInertia; 103 double drag; 104 double rollingResistance; 105 int wheelFrameWidth, wheelFrameHeight; 106 bool wheelsAboveSprite; 107 char wheelSpriteFilename[256]; 108 double frontSlipRatioPacejka[4]; 109 double frontSlipAnglePacejka[4]; 110 double rearSlipRatioPacejka[4]; 111 double rearSlipAnglePacejka[4]; 112 }; 113 114 #endif 115