public void AddSelectionMovementItems() { // add bounding box to post scene // determine bounds Vector3 min = new Vector3(float.MaxValue, float.MaxValue, float.MaxValue); Vector3 max = new Vector3(float.MinValue, float.MinValue, float.MinValue); foreach (AtomSelectionEntity item in selectedAtoms) { if (item.Atom.BoundingBox.Position.X < min.X) { min.X = item.Atom.BoundingBox.Position.X; } if (item.Atom.BoundingBox.Position.X + item.Atom.BoundingBox.Extent.X > max.X) { max.X = item.Atom.BoundingBox.Position.X + item.Atom.BoundingBox.Extent.X; } if (item.Atom.BoundingBox.Position.Y < min.Y) { min.Y = item.Atom.BoundingBox.Position.Y; } if (item.Atom.BoundingBox.Position.Y + item.Atom.BoundingBox.Extent.Y > max.Y) { max.Y = item.Atom.BoundingBox.Position.Y + item.Atom.BoundingBox.Extent.Y; } if (item.Atom.BoundingBox.Position.Z < min.Z) { min.Z = item.Atom.BoundingBox.Position.Z; } if (item.Atom.BoundingBox.Position.Z + item.Atom.BoundingBox.Extent.Z > max.Z) { max.Z = item.Atom.BoundingBox.Position.Z + item.Atom.BoundingBox.Extent.Z; } } BoundingBoxEntity bbox = new BoundingBoxEntity(new BoundingBox(min, max), true, Color.DarkTurquoise.ToArgb()); bbox.Init(device); modeEntities.Add(bbox); sceneManager.AddToPostScene(bbox); // show movement layer if (molControlLayer != null) { molControlLayer.Show(true); } Render(); }
public void AddToPostScene(BoundingBoxEntity entity) { postSceneWorldEntities.Add(entity); }