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 mid-point.
|
|
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 double-sided 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 double-sidedness 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 double-sidedness 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 double-sided 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