greatGathering Class Reference

#include <greatGathering.h>

Inheritance diagram for greatGathering:

MovementGenerator List of all members.

Detailed Description

Simulates many nodes gathering at one spot.


Public Member Functions

 greatGathering (double areaDimension, double speed, std::map< NodeHandle, Vector > *Neighbors, Repository *repository)
virtual void move ()
 Defined in subclasses only.

Protected Attributes

Repository * repository


Constructor & Destructor Documentation

greatGathering::greatGathering ( double  areaDimension,
double  speed,
std::map< NodeHandle, Vector > *  Neighbors,
Repository *  repository 
)

00004                :MovementGenerator(areaDimension, speed, Neighbors)
00005 {
00006     // get access to the repository
00007     this->repository = repository;
00008 
00009     position.setValue(uniform(-areaDimension, areaDimension), uniform(-areaDimension, areaDimension));
00010     flock();
00011     testBounds();
00012 
00013     if(repository->getPosition_size() == 0) {
00014         target.setValue(uniform(-areaDimension/2, areaDimension/2), uniform(-areaDimension/2, areaDimension/2));
00015         repository->setPosition_size(1);
00016         repository->setPosition(0, target);
00017     }
00018     else {
00019         Vector temp;
00020         target = repository->getPosition(0);
00021         temp.setValue(uniform(-20.0*speed, 20.0*speed), uniform(-20.0*speed, 20.0*speed));
00022         target += temp;
00023     }
00024     direction = target - position;
00025     direction.normalize();
00026 }


Member Function Documentation

void greatGathering::move (  )  [virtual]

Defined in subclasses only.

Implements MovementGenerator.

00029 {
00030     position += direction * speed;
00031     flock();
00032     testBounds();
00033     if(target.distsqr(position) < 4.0*speed*speed) {
00034         Vector temp;
00035         target = repository->getPosition(0);
00036         temp.setValue(uniform(-20.0*speed, 20.0*speed), uniform(-20.0*speed, 20.0*speed));
00037         target += temp;
00038     }
00039     direction = target - position;
00040     direction.normalize();
00041 }


Member Data Documentation

Repository* greatGathering::repository [protected]


The documentation for this class was generated from the following files:
Generated on Wed Apr 4 13:37:06 2007 for ITM OverSim by  doxygen 1.4.7