Defines static obstacles in the simulation.
More...
#include <Obstacle.h>

enum  NearTypeEnum { FIRST,
MIDDLE,
LAST
} 
 An enumeration to define the type of nearest point  first, middle, last.



 Obstacle () 
 Constructs a static obstacle instance.


 ~Obstacle () 
 Destroys this static obstacle instance.


Vector2  normal () const 
 Retrieves the normal of the obstacle. More...


const Vector2 &  getP0 () const 
 Retrieve the first point on the obstacle.


const Vector2  midPt () const 
 Retrieve the obstacle's midpoint.


Vector2  getP1 () const 
 Retrieve the second point on the obstacle.


const Obstacle *  next () const 
 Returns the next obstacle in sequence.


NearTypeEnum  distanceSqToPoint (const Vector2 &pt, Vector2 &nearPt, float &distSq) const 
 Computes the squared distance from the obstacle to the given point. Also sets the value of the point in the provided Vector2. More...


float  circleIntersection (const Vector2 &dir, const Vector2 &start, float radius) const 
 Determines if a circle, moving along a ray, will intersect the obstacle. More...


float  length () const 
 Returns the length of the obstacle. More...


bool  pointOnObstacle (const Vector2 &pt) const 
 Reports if the given point lies on the obstacle. More...


bool  pointOutside (const Vector2 &point) const 
 Reports if the given point is on the "outside" of the obstacle. This definition depends on whether the obstacle is doublesided or not. More...


bool  p0Convex (bool agtOnRight) const 
 Reports if the obstacle is convext at _point. More...


bool  p1Convex (bool agtOnRight) const 
 Reports if the obstacle is convext at _point + _length * _unitDir. More...


void  setClosedState (bool closed) 
 Sets the obstacle's closed state. More...



bool  _doubleSided 
 Reports if the obstacle is double sided. More...


bool  _isConvex 
 Reports if the obstacle is convex around the obstacle's point (_point).


Obstacle *  _nextObstacle 
 Pointer to the next obstacle in the greater obstacle structure. If the obstacle is open, it could be NULL.


Vector2  _point 
 The point from which the obstacle is defined.


Obstacle *  _prevObstacle 
 Pointer to the previous obstacle in the greater obstacle structure. If the obstacle is open, it could be NULL.


Vector2  _unitDir 
 The direction the obstacle extends from the originating point.


float  _length 
 The distance in the direction the obstacle extends.


size_t  _id 
 A unique identifier for this obstacle.


size_t  _class 
 The class of obstacle, used so agents can ignore/include obstacles.


Defines static obstacles in the simulation.
float Menge::Agents::Obstacle::circleIntersection 
( 
const Vector2 & 
dir, 


const Vector2 & 
start, 


float 
radius 

) 
 const 
Determines if a circle, moving along a ray, will intersect the obstacle.
 Parameters

dir  The direction of motion 
start  The starting point of the circle 
radius  The radius of the circle 
 Returns
 The time to collision (a large value representing infinity if no collision is possible.)
Computes the squared distance from the obstacle to the given point. Also sets the value of the point in the provided Vector2.
 Parameters

pt  The point whose distance is to be evaluated 
nearPt  The position on the obstacle which is nearest to the test point will be set here. 
distSq  The squared distance to the line (i.e. pt  nearPt^2) is placed inside this parameter. 
 Returns
 The classificaiton of what the nearest point is  first, middle, or last
float Menge::Agents::Obstacle::length 
( 
 ) 
const 

inline 
Returns the length of the obstacle.
 Returns
 The length.
Vector2 Menge::Agents::Obstacle::normal 
( 
 ) 
const 

inline 
Retrieves the normal of the obstacle.
 Returns
 The normal
bool Menge::Agents::Obstacle::p0Convex 
( 
bool 
agtOnRight  ) 
const 

inline 
Reports if the obstacle is convext at _point.
Takes into account the doublesidedness of the obstacle and the side of the obstacle the agent is on.
 Parameters

agtOnRight  Indicate if the agent is on the right side of the obstacle (true) or the left (false). 
 Returns
 True if the obstacle is convex, false otherwise.
bool Menge::Agents::Obstacle::p1Convex 
( 
bool 
agtOnRight  ) 
const 

inline 
Reports if the obstacle is convext at _point + _length * _unitDir.
Takes into account the doublesidedness of the obstacle and the side of the obstacle the agent is on.
 Parameters

agtOnRight  Indicate if the agent is on the right side of the obstacle (true) or the left (false). 
 Returns
 True if the obstacle is convex, false otherwise.
bool Menge::Agents::Obstacle::pointOnObstacle 
( 
const Vector2 & 
pt  ) 
const 
Reports if the given point lies on the obstacle.
 Parameters

 Returns
 True if pt is on the obstacle, false otherwise
bool Menge::Agents::Obstacle::pointOutside 
( 
const Vector2 & 
point  ) 
const 

inline 
Reports if the given point is on the "outside" of the obstacle. This definition depends on whether the obstacle is doublesided or not.
 Parameters

 Returns
 A boolean reporting if the point lies on the outside of this obstacle (true) or not (false).
void Menge::Agents::Obstacle::setClosedState 
( 
bool 
closed  ) 


inline 
Sets the obstacle's closed state.
If closed, it is part of a sequence of obstacles that form a closed polygon. If open, it is part of a polyline.
 Parameters

closed  Defines the obstacle as part of a closed polygon (true), or a closed polygon (false). 
bool Menge::Agents::Obstacle::_doubleSided 
Reports if the obstacle is double sided.
If double sided (true) then the obstacle should be included in the nearby obstacles, regardless of which side of the line the agent lies.
The documentation for this class was generated from the following files:
 src/menge/MengeCore/Agents/Obstacle.h
 src/menge/MengeCore/Agents/Obstacle.cpp