traverseRoaming class More...
#include <traverseRoaming.h>
Public Member Functions | |
traverseRoaming (double areaDimension, double speed, NeighborMap *Neighbors, GlobalCoordinator *coordinator, CollisionList *CollisionRect) | |
virtual | ~traverseRoaming () |
virtual void | move () |
Defined in subclasses only. |
traverseRoaming class
Simulates nodes roaming the area traversely.
Definition at line 34 of file traverseRoaming.h.
traverseRoaming::traverseRoaming | ( | double | areaDimension, | |
double | speed, | |||
NeighborMap * | Neighbors, | |||
GlobalCoordinator * | coordinator, | |||
CollisionList * | CollisionRect | |||
) |
Definition at line 27 of file traverseRoaming.cc.
00028 :MovementGenerator(areaDimension, speed, Neighbors, coordinator, CollisionRect) 00029 { 00030 target.x = areaDimension; 00031 target.y = areaDimension/2; 00032 position.x = 0; 00033 position.y = areaDimension/2; 00034 direction = target - position; 00035 direction.normalize(); 00036 }
virtual traverseRoaming::~traverseRoaming | ( | ) | [inline, virtual] |
Definition at line 38 of file traverseRoaming.h.
void traverseRoaming::move | ( | ) | [virtual] |
Defined in subclasses only.
Implements MovementGenerator.
Definition at line 38 of file traverseRoaming.cc.
00039 { 00040 if( GlobalStatisticsAccess().get()->isMeasuring() ){ 00041 flock(); 00042 position += direction * speed; 00043 if(testBounds()) { 00044 position += direction * speed * 2; 00045 testBounds(); 00046 } 00047 00048 if(target.distanceSqr(position) < speed * speed) { 00049 coordinator->endSimulation(); 00050 } 00051 } 00052 }