void Flock::init(int numBoids, radomeModel* pModel) { for(int i=0; i < numBoids; i++) { ofVec3f position = ofVec3f(ofRandom(-100.0, 100.0), ofRandom(-100.0, 100.0), ofRandom(-100.0, 100.0)); ofVec3f velocity = ofVec3f(ofRandom(-200.0, 200.0), ofRandom(-200.0, 200.0), ofRandom(-200.0, 200.0)); boids.push_back(Boid(position, velocity, pModel)); } }
//-------------------------------------------------------------- void testApp::keyPressed(int key){ //Add/delete boids if (key == '=') { boids.push_back(Boid()); } else if(key == '-') { boids.pop_back(); } }
void Flocking::addBoid(int x, int y) { boids.push_back(Boid(x, y, x_bound, y_bound, boundaryPadding, maxSpeed , maxForce , flockSepWeight , flockAliWeight , flockCohWeight , flockSepRadius , flockAliRadius , flockCohRadius )); }
void testApp :: addBoid( float x, float y ) { float maxspeed = ofRandom( 2, 4 ); float maxforce = 0.3; ofxVec2f loc; loc.set( x, y ); boids.push_back( Boid() ); Boid& b = boids.back(); b.init( loc, maxspeed, maxforce ); }
//-------------------------------------------------------------- void testApp::setup(){ ofEnableAntiAliasing(); ofSetFrameRate(15); for (int i=0; i<NUMOFBOIDS; i++) { boids.push_back(Boid()); } sender.setup("127.0.0.1", 6666); //old OF default is 96 - but this results in fonts looking larger than in other programs. ofTrueTypeFont::setGlobalDpi(72); verdana14.loadFont("verdana.ttf", 14, true, true); verdana14.setLineHeight(18.0f); verdana14.setLetterSpacing(1.037); }
//-------------------------------------------------------------- void testApp::keyPressed(int key){ switch (key) { case'p': for(int i = 0; i < boids.size(); i++) { boids[i].debug = true; } break; case 'n': boids.push_back(Boid()); break; case 'd': for(int i = 0; i < boids.size(); i++) { boids[i].debug = false; } break; case '.': for(int i = 0; i < boids.size(); i++) { boids[i]._wander = true; } break; case ',': for(int i = 0; i < boids.size(); i++) { boids[i]._wander = false; } break; } }
void Flock::setup(int _size, int _nBoids){ space.xLeft = -_size; space.xRight = _size; space.yTop = -_size; space.yBottom = _size; space.zFront = -_size; space.zBack = _size; nBoids = _nBoids; boids = new (nothrow) Boid[nBoids]; for (int i = 0; i < nBoids; i++){ boids[i] = Boid(); boids[i].setNBoids(&nBoids); boids[i].setColor(&color); boids[i].setSpace(&space); boids[i].loc.set(ofRandom(space.xLeft, space.xRight),ofRandom(space.yTop, space.yBottom),ofRandom(space.zFront,space.zBack)); boids[i].setFlockingState(&flocking); } }
Boid::Boid() { Boid(1024.f, 768.f); }