| Description | Hierarchy | Fields | Methods | Properties |
type TSpecialCollisionManager = class(TUMCollisionManager)
A collision manager used for simplified 2D collision detection in the XY-plane. This collision manager is the only one currently in use by TRobotSimulation and uses a 2D slice of the arena for intersection testing between arena objects and the robot's body (see TRobotSimulation.SetupCollisionManager).
![]() |
constructor Create; |
![]() |
destructor Destroy; override; |
![]() |
procedure AddSlice(List: TSliceList); |
![]() |
procedure SetRobotShape(Shape: TShape); |
![]() |
function TestCollisions: Boolean; override; |
![]() |
constructor Create; |
Constructor
![]() |
destructor Destroy; override; |
Destructor
![]() |
procedure AddSlice(List: TSliceList); |
Adds an owned slice of the arena. See also TArena.GetSliceAtHeight. Note that the computational complexity increases with each added slice of the arena. Try to use a few slices as possible. In TRobotSimulation.SetupCollisionManager a single arena slice is added by default (taken at half the height of the robot's body).
![]() |
procedure SetRobotShape(Shape: TShape); |
Sets a reference to the collision shape of the robot (the use of multiple robots is not supported). The parameter Shape is not considered to be owned by TSpecialCollisionManager and it is the user's responsibility to free the memory allocated by Shape.
![]() |
function TestCollisions: Boolean; override; |
Test for collisions (intersections). See also TRobotSimulation.CheckForCollisions.
True if there is an intersection between the lines in arena slice(s) and the shape of the robot. Otherwise False is returned.