Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members
E:/Programming/MyProject/K_Game_hg/GameEngine/include/physics/PhysicsDriver.h
Go to the documentation of this file.
00001 // Copyright 2006-2011 by Kat'Oun
00002 
00003 #ifndef _PHYSICS_DRIVER_H_
00004 #define _PHYSICS_DRIVER_H_
00005 
00006 #include <EngineConfig.h>
00007 #include <core/Types.h>
00008 
00009 namespace core
00010 {
00011 class vector3d;
00012 class quaternion;
00013 }
00014 
00015 namespace physics
00016 {
00017 
00018 class Body;
00019 class BodyData;
00020 class Shape;
00021 class Material;
00022 class Joint;
00023 struct CollisionPoint;
00024 enum ShapeType;
00025 enum JointType;
00026 
00035 class ENGINE_PUBLIC_EXPORT PhysicsDriver
00036 {
00037 public:
00038 
00039         // Default Constructor
00040         PhysicsDriver();
00041 
00042         // Destructor
00043         virtual ~PhysicsDriver();
00044 
00045         virtual void initialize();
00046 
00047         virtual void start();
00048 
00049         virtual void update(f32 elapsedTime);
00050 
00051         virtual void stop();
00052 
00053         virtual void setHardware(bool state) = 0;
00054 
00055         virtual void setCollisionAccuracy(f32 accuracy) = 0;
00056         virtual void setSolverAccuracy(f32 accuracy) = 0;
00057 
00058         virtual void setGravity(const core::vector3d& gravity) = 0;
00059 
00060 protected:
00061 
00062         static void fireCollisionStarted(Body* body1, Body* body2, const std::vector<CollisionPoint*>& points);
00063 
00064         static void fireCollisionUpdate(Body* body1, Body* body2, const std::vector<CollisionPoint*>& points);
00065 
00066         static void fireCollisionEnded(Body* body1, Body* body2);
00067 };
00068 
00069 } // end namespace physics
00070 
00071 #endif

The KG Game Engine
The KG Game Engine Documentation © 2006-2011 by Kat'Oun. Generated on Sat Jul 2 2011 00:50:04 by Doxygen (1.7.4)