fix for bug #18898: GE perspective 3D View not working properly (missing LENS)
[blender.git] / source / gameengine / Ketsji / KX_SumoPhysicsController.h
index b4b0f8a4cd0468dcced2e9a28f0a6192b0ce58ae..278994c6ae750afab9cf6b1a54483e40bed1a062 100644 (file)
@@ -1,15 +1,12 @@
 /**
  * $Id$
  *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,7 +24,7 @@
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 #ifndef __KX_SUMOPHYSICSCONTROLLER_H
 #define __KX_SUMOPHYSICSCONTROLLER_H
@@ -56,7 +53,7 @@ public:
                class SM_Object* sumoObj,       
                class PHY_IMotionState* motionstate
                ,bool dyna) 
-               : KX_IPhysicsController(dyna,NULL) ,
+               : KX_IPhysicsController(dyna,false,false,NULL) ,
                  SumoPhysicsController(sumoScene,/*solidscene,*/sumoObj,motionstate,dyna)
        {
        };
@@ -64,30 +61,43 @@ public:
 
        void    applyImpulse(const MT_Point3& attach, const MT_Vector3& impulse);
        virtual void    SetObject (SG_IObject* object);
-
+       virtual void    setMargin (float collisionMargin);
        
        void    RelativeTranslate(const MT_Vector3& dloc,bool local);
        void    RelativeRotate(const MT_Matrix3x3& drot,bool local);
        void    ApplyTorque(const MT_Vector3& torque,bool local);
        void    ApplyForce(const MT_Vector3& force,bool local);
        MT_Vector3 GetLinearVelocity();
+       MT_Vector3 GetAngularVelocity()         // to keep compiler happy
+               { return MT_Vector3(0.0,0.0,0.0); }
        MT_Vector3 GetVelocity(const MT_Point3& pos);
        void    SetAngularVelocity(const MT_Vector3& ang_vel,bool local);
        void    SetLinearVelocity(const MT_Vector3& lin_vel,bool local);
        void    resolveCombinedVelocities(float linvelX,float linvelY,float linvelZ,float angVelX,float angVelY,float angVelZ);
 
 
-       void    SuspendDynamics();
+       void    SuspendDynamics(bool);
        void    RestoreDynamics();
+       virtual void    AddCompoundChild(KX_IPhysicsController* child) { }
+       virtual void    RemoveCompoundChild(KX_IPhysicsController* child) { }
+
        virtual void    getOrientation(MT_Quaternion& orn);
-       virtual void setOrientation(const MT_Quaternion& orn);
+       virtual void setOrientation(const MT_Matrix3x3& orn);
+       virtual void SetTransform() {}
        
        virtual void setPosition(const MT_Point3& pos);
        virtual void setScaling(const MT_Vector3& scaling);
        virtual MT_Scalar       GetMass();
+       virtual void            SetMass(MT_Scalar newmass);
+       virtual MT_Vector3      GetLocalInertia();
+       virtual MT_Scalar       GetRadius();
        virtual MT_Vector3      getReactionForce();
        virtual void    setRigidBody(bool rigid);
        
+       virtual float GetLinVelocityMin() { return SumoPhysicsController::GetLinVelocityMin(); }
+       virtual void    SetLinVelocityMin(float val) { SumoPhysicsController::SetLinVelocityMin(val); }
+       virtual float GetLinVelocityMax() { return SumoPhysicsController::GetLinVelocityMax(); }
+       virtual void    SetLinVelocityMax(float val) { SumoPhysicsController::SetLinVelocityMax(val); }
 
        virtual SG_Controller*  GetReplica(class SG_Node* destnode);