CEL

Public API Reference

propclass/wheeled.h

00001 /*
00002     Crystal Space Entity Layer
00003     Copyright (C) 2006 by Jorrit Tyberghein
00004   
00005     This library is free software; you can redistribute it and/or
00006     modify it under the terms of the GNU Library General Public
00007     License as published by the Free Software Foundation; either
00008     version 2 of the License, or (at your option) any later version.
00009   
00010     This library is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013     Library General Public License for more details.
00014   
00015     You should have received a copy of the GNU Library General Public
00016     License along with this library; if not, write to the Free
00017     Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00018 */
00019 
00020 #ifndef __CEL_PF_WHEELED__
00021 #define __CEL_PF_WHEELED__
00022 
00023 #include "cstypes.h"
00024 #include "csutil/scf.h"
00025 
00050 struct iCelEntity;
00051 struct iBodyGroup;
00052 struct iMeshFactoryWrapper;
00053 struct iODEHinge2Joint;
00054 struct iRigidBody;
00055 
00056 
00057 struct iPcWheeled : public virtual iBase
00058 
00059 {
00060   SCF_INTERFACE (iPcWheeled, 0, 0, 1);
00061 
00067   virtual void SetWheelMesh(const char* file, const char* factname) = 0;
00068 
00073   virtual void SetTankMode(bool tankmode) = 0;
00074 
00078   virtual int GetTankMode() = 0;
00079 
00092   virtual int AddWheelAuto(csVector3 position,float turnspeed=2.0f, float returnspeed=2.0f,
00093                        float suspensionsoftness=0.000125f, float suspensiondamping=0.125f,
00094                        float brakepower=1.0f) = 0;
00095 
00111   virtual int AddWheel(csVector3 position,float turnspeed, float returnspeed,
00112                        float suspensionsoftness, float suspensiondamping,
00113                        float brakepower, float enginepower, float leftsteersensitivity,
00114                        float rightsteersensitivity, bool handbrakeaffect,
00115                        bool steerinvert) = 0;
00116 
00121   virtual void DeleteWheel(int wheelnum) = 0;
00122 
00126   virtual void DeleteAllWheels() = 0;
00127 
00132   virtual void DestroyWheel(int wheelnum) = 0;
00133 
00137   virtual void DestroyAllWheels() = 0;
00138 
00142   virtual void RestoreWheel(int wheelnum) = 0;
00143 
00147   virtual void RestoreAllWheels() = 0;
00148 
00155   virtual void SetOuterWheelSteerPreset(float sensitivity) = 0;
00156 
00164   virtual void SetFrontWheelPreset(float sensitivity,float power) = 0;
00165 
00172   virtual void SetRearWheelPreset(float sensitivity,float power) = 0;
00173 
00177   virtual void ClearWheelPresets() = 0;
00178 
00183   virtual void Accelerate(bool applied) = 0;
00184 
00188   virtual bool IsAccelerating() = 0;
00189 
00194   virtual void Brake(bool applied) = 0;
00195 
00199   virtual bool IsBraking() = 0;
00200 
00205   virtual void Handbrake(bool applied) = 0;
00206 
00210   virtual bool IsHandbraking() = 0;
00211 
00212 
00217   virtual void SetSteerAmount(float amount) = 0;
00218 
00223   virtual void SetBrakeForce(float force) = 0;
00224 
00228   virtual float GetSteerAmount() = 0;
00229 
00233   virtual void SteerLeft() = 0;
00234 
00238   virtual void SteerRight() = 0;
00239 
00243   virtual void SteerStraight() = 0;
00244 
00248   virtual void Reverse() = 0;
00249 
00253   virtual void Neutral() = 0;
00254 
00259   virtual void SetAutoTransmission(bool auto) = 0;
00260 
00265   virtual void SetGear(int gear) = 0;
00266 
00270   virtual int GetGear() = 0;
00271 
00275   virtual void SetGearSettings(int gear,float velocity, float force) = 0;
00276 
00281   virtual void SetNumberGears(int number) = 0;
00282 
00286   virtual size_t GetNumberGears() = 0;
00287 
00292   virtual void SetAutoReverse(bool autoreverse) = 0;
00293 
00297   virtual iBodyGroup* GetBodyGroup() = 0;
00298 
00304   virtual void SetWheelPosition(int wheelnum, csVector3 position) = 0;
00305 
00311   virtual void SetWheelSuspensionSoftness(int wheelnum, float softness) = 0;
00312 
00318   virtual void SetWheelSuspensionDamping(int wheelnum, float damping) = 0;
00319 
00325   virtual void SetWheelLeftSteerSensitivity(int wheelnum, float sensitivity) = 0;
00326 
00332   virtual void SetWheelRightSteerSensitivity(int wheelnum, float sensitivity) = 0;
00333 
00339   virtual void SetWheelTurnSpeed(int wheelnum, float speed) = 0;
00340 
00346   virtual void SetWheelReturnSpeed(int wheelnum, float speed) = 0;
00347 
00353   virtual void SetWheelEnginePower(int wheelnum, float power) = 0;
00354 
00360   virtual void SetWheelBrakePower(int wheelnum, float power) = 0;
00361 
00367   virtual void SetWheelSteerInverted(int wheelnum, bool inverted) = 0;
00368 
00374   virtual void SetWheelHandbrakeAffected(int wheelnum, bool handbrakeaffected) = 0;
00375 
00380   virtual csVector3 GetWheelPosition(int wheelnum) = 0;
00381 
00386   virtual float GetWheelSuspensionSoftness(int wheelnum) = 0;
00387 
00392   virtual float GetWheelSuspensionDamping(int wheelnum) = 0;
00393 
00398   virtual float GetWheelLeftSteerSensitivity(int wheelnum) = 0;
00399 
00404   virtual float GetWheelRightSteerSensitivity(int wheelnum) = 0;
00405 
00410   virtual float GetWheelTurnSpeed(int wheelnum) = 0;
00411 
00416   virtual float GetWheelReturnSpeed(int wheelnum) = 0;
00417 
00422   virtual float GetWheelEnginePower(int wheelnum) = 0;
00423 
00428   virtual float GetWheelBrakePower(int wheelnum) = 0;
00429 
00434   virtual bool GetWheelSteerInverted(int wheelnum) = 0;
00435 
00440   virtual bool GetWheelHandbrakeAffected(int wheelnum) = 0;
00441 };
00442 
00443 #endif // __CEL_PF_WHEELED__
00444 

Generated for CEL: Crystal Entity Layer by doxygen 1.4.7