public void Rotate(double x, double y, double z) { m_Hull.Rotate(x, y, z); if (m_handles != null) { double[,] rotate = Geometry.CreateRotateMatrix(x, y, z); Matrix.Multiply(m_handles, rotate, out m_handles); } InvalidateVisual(); }
private void UpdateDisplays() { Hull displayHull = myHull.CopyToFullHull(); displayHull.Rotate(0, 0, 180); FrontDisplay.SetHull(displayHull); Debug.WriteLine("Front size: ({0})", displayHull.GetSize()); displayHull = myHull.CopyToFullHull(); displayHull.Rotate(0, 90, 90); TopDisplay.SetHull(displayHull); displayHull = myHull.CopyToFullHull(); displayHull.Rotate(0, 90, 180); SideDisplay.SetHull(displayHull); if (PerspectiveManip.perspective == HullManip.PerspectiveType.FRONT) { displayHull = myHull.CopyToFullHull(); displayHull.Rotate(0, 0, 180); Debug.WriteLine("Perspective Front size: ({0})", displayHull.GetSize()); PerspectiveDisplay.SetHull(displayHull); Debug.WriteLine("Perspective Front size: ({0})", displayHull.GetSize()); PerspectiveManip.perspective = HullManip.PerspectiveType.FRONT; PerspectiveManip.IsEditable = true; } else if (PerspectiveManip.perspective == HullManip.PerspectiveType.TOP) { displayHull = myHull.CopyToFullHull(); displayHull.Rotate(0, 90, 90); PerspectiveDisplay.SetHull(displayHull); PerspectiveManip.perspective = HullManip.PerspectiveType.TOP; PerspectiveManip.IsEditable = true; } else if (PerspectiveManip.perspective == HullManip.PerspectiveType.SIDE) { displayHull = myHull.CopyToFullHull(); displayHull.Rotate(0, 90, 180); PerspectiveDisplay.SetHull(displayHull); PerspectiveManip.perspective = HullManip.PerspectiveType.SIDE; PerspectiveManip.IsEditable = true; } else // must be PERSPECTIVE { displayHull = myHull.CopyToFullHull(); displayHull.Rotate(10, 30, 190); PerspectiveDisplay.SetHull(displayHull); } FrontManip.Draw(); TopManip.Draw(); SideManip.Draw(); PerspectiveManip.Draw(); }