public VisualizerCommandSet Initialization() { var set = new VisualizerCommandSet(); if (Box) { AddBox(set); } foreach (var triangle in surfaces) { var tri = new Triangle3D( UtilityFunctions.ConvertVector(triangle.Points[0]), UtilityFunctions.ConvertVector(triangle.Points[1]), UtilityFunctions.ConvertVector(triangle.Points[2]), true); var obj = new ObjectPrototype(tri, UtilityFunctions.ConvertColor(triangle.Color), triangle.IsTransparent); set.AddCommand(new AddObject(obj, counter++)); } // Add all the projectiles foreach (var projectile in projectiles) { // Start it off in the right place var obj = new ObjectPrototype(projectile.Shape, new BasicMaterial(projectile.Color), projectile.Position, new Vector3D(projectile.Size, projectile.Size, projectile.Size)); set.AddCommand(new AddObject(obj, counter)); projectileMap.Add(counter, projectile); ++counter; } // Add all the connectors foreach (var connector in connectorMap) { // Update them first so they are in the right position connector.Value.Update(); var obj = new ObjectPrototype(new VisualizerControl.Shapes.CaplessCylinder3D(), new BasicMaterial(connector.Value.Color)); set.AddCommand(new AddObject(obj, connector.Key)); set.AddCommand(connector.Value.GetTransformCommand(connector.Key)); } return(set); }