/* * Copyright (c) 2009 Anthony Steed and Manuel Fradinho Oliveira * All rights reserved. * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the * following conditions are met: * 1. Redistributions of source code must retain the above * copyright notice, this list of conditions and the * following disclaimer. * 2. Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the * following disclaimer in the documentation and/or other * materials provided with the distribution. * 3. All advertising materials mentioning features or use of * this software must display the following acknowledgement: * This product includes software from the book "Networked * Graphics" written by Anthony Steed and Manuel Fradinho * Oliveira published by Morgan Kaufmann * 4. Neither the name of the University nor of the Department * may be used to endorse or promote products derived from * this software without specific prior written permission. * 5. Neither the name of Cyntelix may be used to enforese or * promote products derived from this software without prior * written permission. * * THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION). HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Contact Info: Anthony Steed * a.steed@cs.ucl.ac.uk * * Manuel Fradinho Oliveira * mfradinho@cyntelix.com * */ import javax.vecmath.*; import java.util.*; public class Flock { Vector _flock; public Flock(int numBoids, Color3f colour) { Boid boid = null; _flock = new Vector(); for (int num = 0; num < numBoids; num++) { boid = new Boid(colour); boid.randomPos(); boid.worldConstraints(); _flock.add(boid); } } public int numBoids() { return _flock.size(); } public Enumeration getBoids() { return _flock.elements(); } }