Пример #1
0
        public void Transform(Igneel.SceneManagement.Frame frame, GlypComponent component,
                              Igneel.Vector2 p0, Igneel.Vector2 p1)
        {
            var disp     = p1 - p0;
            var position = frame.BoundingSphere.Radius > 0?
                           frame.BoundingSphere.Center:
                           frame.GlobalPosition;
            var Tw = Matrix.Translate(-position);

            switch (component.Id)
            {
            case X:
                Tw *= Matrix.RotationX(Numerics.ToRadians(disp.Y));
                break;

            case Y:
                Tw *= Matrix.RotationY(Numerics.ToRadians(disp.X));
                break;

            case Z:
                Tw *= Matrix.RotationZ(Numerics.ToRadians(disp.Y));
                break;
            }

            Tw *= Matrix.Translate(position);
            var localPose = frame.LocalPose;
            var P         = Matrix.Invert(localPose) * frame.GlobalPose;
            var Tl        = P * Tw * Matrix.Invert(P);

            frame.LocalPose *= Tl;
            frame.CommitChanges();
        }
        private TreeViewItem CreateTreeViewItem(Igneel.SceneManagement.Frame frame)
        {
            TreeViewItem item = new TreeViewItem()
            {
                Header = frame.Name,
                Tag    = frame,
            };

            foreach (var children in frame.Childrens)
            {
                item.Items.Add(CreateTreeViewItem(children));
            }
            return(item);
        }
        private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            TreeViewItem item = (TreeViewItem)e.NewValue;

            if (item == null)
            {
                mainViewModel.TransformationController.SelectedFrame = null;
                return;
            }

            Igneel.SceneManagement.Frame frame = item.Tag as Igneel.SceneManagement.Frame;
            if (frame != null)
            {
                mainViewModel.TransformationController.ShowTransformGlyp(frame);
            }
            else
            {
                mainViewModel.TransformationController.SelectedFrame = null;
            }
        }
Пример #4
0
 public void Transform(Igneel.SceneManagement.Frame tranlatable, GlypComponent component, Igneel.Vector2 p0, Igneel.Vector2 p1)
 {
     throw new NotImplementedException();
 }