diff options
author | Nick Samarin <nicks1987@bigmir.net> | 2010-08-04 23:32:37 +0400 |
---|---|---|
committer | Nick Samarin <nicks1987@bigmir.net> | 2010-08-04 23:32:37 +0400 |
commit | a2372308d739879e99423851bc1e1dcd82cf19bf (patch) | |
tree | cc3bb7217585e77f8506f7a030f1f51e8b9c677e /source/gameengine/Ketsji/KX_ObstacleSimulation.h | |
parent | dbc8d4274fa47f429084f653008a14980432a65d (diff) |
integrated adaptive sampling algorithm for obstacle avoidance
Diffstat (limited to 'source/gameengine/Ketsji/KX_ObstacleSimulation.h')
-rw-r--r-- | source/gameengine/Ketsji/KX_ObstacleSimulation.h | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/source/gameengine/Ketsji/KX_ObstacleSimulation.h b/source/gameengine/Ketsji/KX_ObstacleSimulation.h index b084f54d3b8..559c4f8caf8 100644 --- a/source/gameengine/Ketsji/KX_ObstacleSimulation.h +++ b/source/gameengine/Ketsji/KX_ObstacleSimulation.h @@ -56,6 +56,7 @@ enum KX_OBSTACLE_SHAPE KX_OBSTACLE_SEGMENT, }; +#define VEL_HIST_SIZE 6 struct KX_Obstacle { KX_OBSTACLE_TYPE m_type; @@ -63,26 +64,50 @@ struct KX_Obstacle MT_Point3 m_pos; MT_Point3 m_pos2; MT_Scalar m_rad; - MT_Vector2 m_vel; + + float vel[2]; + float pvel[2]; + float dvel[2]; + float nvel[2]; + float hvel[VEL_HIST_SIZE*2]; + int hhead; + KX_GameObject* m_gameObj; }; +typedef std::vector<KX_Obstacle*> KX_Obstacles; +/* +struct RVO +{ + inline RVO() : ns(0) {} + float spos[MAX_RVO_SAMPLES*2]; + float scs[MAX_RVO_SAMPLES]; + float spen[MAX_RVO_SAMPLES]; + + float svpen[MAX_RVO_SAMPLES]; + float svcpen[MAX_RVO_SAMPLES]; + float sspen[MAX_RVO_SAMPLES]; + float stpen[MAX_RVO_SAMPLES]; + + int ns; +}; +*/ class KX_ObstacleSimulation { protected: - std::vector<KX_Obstacle*> m_obstacles; + KX_Obstacles m_obstacles; MT_Scalar m_levelHeight; bool m_enableVisualization; virtual KX_Obstacle* CreateObstacle(KX_GameObject* gameobj); - bool FilterObstacle(KX_Obstacle* activeObstacle, KX_NavMeshObject* activeNavMeshObj, KX_Obstacle* otherObstacle); public: KX_ObstacleSimulation(MT_Scalar levelHeight, bool enableVisualization); virtual ~KX_ObstacleSimulation(); void DrawObstacles(); + //void DebugDraw(); void AddObstacleForObj(KX_GameObject* gameobj); void DestroyObstacleForObj(KX_GameObject* gameobj); |