OverSim
randomRoaming Class Reference

randomRoaming class More...

#include <randomRoaming.h>

Inheritance diagram for randomRoaming:
MovementGenerator

Public Member Functions

 randomRoaming (double areaDimension, double speed, NeighborMap *Neighbors, GlobalCoordinator *coordinator, CollisionList *CollisionRect)
virtual ~randomRoaming ()
virtual void move ()
 Defined in subclasses only.
- Public Member Functions inherited from MovementGenerator
 MovementGenerator (double areaDimension, double speed, NeighborMap *Neighbors, GlobalCoordinator *coordinator, CollisionList *CollisionRect)
 Initialize the generator with the movement area dimensions and node movement speed.
virtual ~MovementGenerator ()
Vector2D getPosition ()
 Get the nodes current position.

Additional Inherited Members

- Protected Member Functions inherited from MovementGenerator
bool testBounds ()
 Prevents the node from leaving the defined area and checks for obstacle hits.
void flock ()
 Simple flocking algorithm.
void generateScenery (unsigned int seed)
 Generates scenery objects.
- Protected Attributes inherited from MovementGenerator
double areaDimension
double speed
Vector2D direction
Vector2D position
Vector2D target
NeighborMapNeighbors
NeighborMap::iterator itNeighbors
GlobalCoordinatorcoordinator
CollisionListCollisionRect

Detailed Description

randomRoaming class

Simulates nodes roaming the area randomly.

Definition at line 34 of file randomRoaming.h.

Constructor & Destructor Documentation

randomRoaming::randomRoaming ( double  areaDimension,
double  speed,
NeighborMap Neighbors,
GlobalCoordinator coordinator,
CollisionList CollisionRect 
)

Definition at line 26 of file randomRoaming.cc.

{
target.x = uniform(0.0, areaDimension);
target.y = uniform(0.0, areaDimension);
}
virtual randomRoaming::~randomRoaming ( )
inlinevirtual

Definition at line 38 of file randomRoaming.h.

{}

Member Function Documentation

void randomRoaming::move ( )
virtual

Defined in subclasses only.

Implements MovementGenerator.

Definition at line 33 of file randomRoaming.cc.

{
flock();
if(testBounds()) {
position += direction * speed * 2;
}
if(target.distanceSqr(position) < speed * speed) {
target.x = uniform(0.0, areaDimension);
target.y = uniform(0.0, areaDimension);
}
}

The documentation for this class was generated from the following files: