Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Samarin <nicks1987@bigmir.net>2010-06-08 03:09:50 +0400
committerNick Samarin <nicks1987@bigmir.net>2010-06-08 03:09:50 +0400
commit9d1b8bf0f801572fb1f25000883ce434aad3f964 (patch)
treefbd2fef3fb042c192800d2f00ef36575b512672e /source/gameengine/Ketsji/KX_ObstacleSimulation.h
parent0932f365bfefb5ddabcc042abfa5f3d3a5c0246e (diff)
Added segment obstacles, creation obstacles for walls of navigation mesh
Diffstat (limited to 'source/gameengine/Ketsji/KX_ObstacleSimulation.h')
-rw-r--r--source/gameengine/Ketsji/KX_ObstacleSimulation.h32
1 files changed, 28 insertions, 4 deletions
diff --git a/source/gameengine/Ketsji/KX_ObstacleSimulation.h b/source/gameengine/Ketsji/KX_ObstacleSimulation.h
index d1920e5e6f2..9e5895a466c 100644
--- a/source/gameengine/Ketsji/KX_ObstacleSimulation.h
+++ b/source/gameengine/Ketsji/KX_ObstacleSimulation.h
@@ -42,12 +42,29 @@
#include "MT_Point3.h"
class KX_GameObject;
+class KX_NavMeshObject;
+
+enum KX_OBSTACLE_TYPE
+{
+ KX_OBSTACLE_OBJ,
+ KX_OBSTACLE_NAV_MESH,
+};
+
+enum KX_OBSTACLE_SHAPE
+{
+ KX_OBSTACLE_CIRCLE,
+ KX_OBSTACLE_SEGMENT,
+};
struct KX_Obstacle
{
+ KX_OBSTACLE_TYPE m_type;
+ KX_OBSTACLE_SHAPE m_shape;
MT_Point3 m_pos;
+ MT_Point3 m_pos2;
MT_Scalar m_rad;
MT_Vector2 m_vel;
+
KX_GameObject* m_gameObj;
};
@@ -55,14 +72,20 @@ class KX_ObstacleSimulation
{
protected:
std::vector<KX_Obstacle*> m_obstacles;
+
+ virtual KX_Obstacle* CreateObstacle();
public:
KX_ObstacleSimulation();
virtual ~KX_ObstacleSimulation();
- virtual void AddObstacleForObj(KX_GameObject* gameobj);
+ void DrawObstacles();
+
+ void AddObstacleForObj(KX_GameObject* gameobj);
+ void AddObstaclesForNavMesh(KX_NavMeshObject* navmesh);
KX_Obstacle* GetObstacle(KX_GameObject* gameobj);
void UpdateObstacles();
- virtual void AdjustObstacleVelocity(KX_Obstacle* activeObst, MT_Vector3& velocity);
+ virtual void AdjustObstacleVelocity(KX_Obstacle* activeObst, KX_NavMeshObject* activeNavMeshObj,
+ MT_Vector3& velocity);
}; /* end of class KX_ObstacleSimulation*/
@@ -88,11 +111,12 @@ protected:
float m_collisionWeight; // Sample selection collision weight
std::vector<TOICircle*> m_toiCircles; // TOI circles (one per active agent)
+ virtual KX_Obstacle* CreateObstacle();
public:
KX_ObstacleSimulationTOI();
~KX_ObstacleSimulationTOI();
- virtual void AddObstacleForObj(KX_GameObject* gameobj);
- virtual void AdjustObstacleVelocity(KX_Obstacle* activeObst, MT_Vector3& velocity);
+ virtual void AdjustObstacleVelocity(KX_Obstacle* activeObst, KX_NavMeshObject* activeNavMeshObj,
+ MT_Vector3& velocity);
};
#endif