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< TransportAddress, Vector > *Neighbors, Repository *repository)
virtual void move ()
 Defined in subclasses only.

Protected Attributes

Repositoryrepository


Constructor & Destructor Documentation

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

00027                :MovementGenerator(areaDimension, speed, Neighbors)
00028 {
00029     // get access to the repository
00030     this->repository = repository;
00031 
00032     position.setValue(uniform(-areaDimension, areaDimension), uniform(-areaDimension, areaDimension));
00033     flock();
00034     testBounds();
00035 
00036     if(repository->getPosition_size() == 0) {
00037         target.setValue(uniform(-areaDimension/2, areaDimension/2), uniform(-areaDimension/2, areaDimension/2));
00038         repository->setPosition_size(1);
00039         repository->setPosition(0, target);
00040     }
00041     else {
00042         Vector temp;
00043         target = repository->getPosition(0);
00044         temp.setValue(uniform(-20.0*speed, 20.0*speed), uniform(-20.0*speed, 20.0*speed));
00045         target += temp;
00046     }
00047     direction = target - position;
00048     direction.normalize();
00049 }


Member Function Documentation

void greatGathering::move (  )  [virtual]

Defined in subclasses only.

Implements MovementGenerator.

00052 {
00053     position += direction * speed;
00054     flock();
00055     testBounds();
00056     if(target.distsqr(position) < 4.0*speed*speed) {
00057         Vector temp;
00058         target = repository->getPosition(0);
00059         temp.setValue(uniform(-20.0*speed, 20.0*speed), uniform(-20.0*speed, 20.0*speed));
00060         target += temp;
00061     }
00062     direction = target - position;
00063     direction.normalize();
00064 }


Member Data Documentation

Repository* greatGathering::repository [protected]


The documentation for this class was generated from the following files:
Generated on Tue Jul 24 16:51:18 2007 for ITM OverSim by  doxygen 1.5.1