PathEngine home | previous: | next: |
Together with a set of placed agents and obstructions
PathEngine ground meshes form the basis of a well defined movement model (also referred to as 'collision model').
Collision and pathfinding queries are then both provided against this single model.
Agents are assigned a shape for collision against their environment.
As the agent moves around, this shape translates relative to the agent's local origin.
Shapes must be convex polygons, and must contain the agent's local origin.
The agent is obstructed for any position in the mesh where the agent's shape overlaps an external edge or an obstacle.
Collision is not 'inclusive' - an agent is not obstructed in the case where their collision shape exactly touches the edge of the mesh or an obstruction.
The agent is unobstructed at this position.
At this position the agent is obstructed by the edge of the mesh.
When the agent's shape exactly touches an external edge the agent is unobstructed.
An agent can move along a line if the area swept out by their shape as they move along that line is
contained within the mesh or exactly touches the edge.
Movement along this line is unobstructed.
Movement along this line is obstructed by the edge of the mesh.
The agent is not obstructed at this position.
At this position, the agent is obstructed by the obstacle in yellow.
The collision checks are actually implemented internally by expanding
the shapes of obstructions outwards by the shape of the agent being tested for collision.
This enables collision queries to be made very fast.
Testing line collision against an expanded boundary.
Obstacles may be placed arbitrarily overlapping the edge of the mesh, as long as the obstacle's origin is within the mesh.
In this case the influence of the obstacle for collision is limited to parts of the mesh that are reachable
within the expanded shape of the obstacle.
You can think of this in terms of a flood fill operation starting at the obstacle's origin
and propagating through the mesh with the expanded obstacle shape as a bound.
The agent is not obstructed by this obstacle because the influence of the obstacle
does not reach the corridor
You can think of the obstacle as a piece of overlapping geometry that goes under or over
the part of the mesh that represents the corridor.
At this position the obstacle does obstruct the agent because the influence of the obstacle
reaches the corridor through the doorway.
Documentation for PathEngine release 6.04 - Copyright © 2002-2024 PathEngine | next: |