public Boid(Rect3D Aviary, Vector3D Place, int NumBoids, int Index, MainWindow MainWindow) {
this.Aviary = Aviary;
this.NumBoids = NumBoids;
this.Place = Place;
this.Index = Index;
this.MainWindow = MainWindow;
var j = (MainWindow.SCALABLE) ? Join.Create<Join.Scalable>(3)
: Join.Create<Join.LockBased>(3);
j.Initialize(out Start);
j.Initialize(out Toggle);
j.Initialize(out Lock);
if (MainWindow.SYNCHRONOUS)
j.When(Start).Do(CaseStartSync);
else
j.When(Start).Do(CaseStartAsync);
j.When(Toggle).And(Lock).Do(CaseToggle);
Lock();
}
public Vector3D BoundPosition() {