示例#1
0
 // Constructor
 /// <summary>
 /// Initializes a new instance of the <see cref="Hatwell.GameLibrary.Rendering.Viewport"/> class.
 /// <param name="viewport">A reference to the <see cref="Microsoft.DirectX.Direct3D.Viewport"/> class.</param>
 /// </summary>
 public Viewport(D3DViewport viewport)
 {
     this = new Viewport();
     X = viewport.X;
     Y = viewport.Y;
     Width = viewport.Width;
     Height = viewport.Height;
 }
示例#2
0
 // Constructor
 /// <summary>
 /// Initializes a new instance of the <see cref="Hatwell.GameLibrary.Rendering.Viewport"/> class.
 /// <param name="viewport">A reference to the <see cref="Microsoft.DirectX.Direct3D.Viewport"/> class.</param>
 /// </summary>
 public Viewport(D3DViewport viewport)
 {
     this   = new Viewport();
     X      = viewport.X;
     Y      = viewport.Y;
     Width  = viewport.Width;
     Height = viewport.Height;
 }
示例#3
0
        private void readViewOptions(XmlNode node)
        {
            foreach (XmlNode child in node.ChildNodes)
            {
                if ("View".Equals(child.Name))
                {
                    int id = int.Parse(readAttribute(child, "ID", "5"));
                    Canguro.View.GraphicView view = Canguro.View.GraphicViewManager.Instance.GetView(id);
                    if (view != null)
                    {
                        int options = int.Parse(readAttribute(child, "OptionsShown", "0"));
                        string rot = readAttribute(child, "Rotation");
                        string trans = readAttribute(child, "Translation");
                        string scale = readAttribute(child, "Scale");
                        string scaleFac = readAttribute(child, "ScaleFac", "1");
                        string[] vp = readAttribute(child, "Viewport").Split(",".ToCharArray());
                        float vpScale = 1;
                        if (vp.Length >= 6)
                        {
                            Microsoft.DirectX.Direct3D.Viewport vPort = new Microsoft.DirectX.Direct3D.Viewport();
                            vPort.X = int.Parse(vp[0]);
                            vPort.Width = int.Parse(vp[1]);
                            vPort.Y = int.Parse(vp[2]);
                            vPort.Height = int.Parse(vp[3]);
                            vPort.MinZ = float.Parse(vp[4]);
                            vPort.MaxZ = float.Parse(vp[5]);

                            Microsoft.DirectX.Direct3D.Viewport current = view.Viewport;
                            vpScale = (float)current.Width / (float)vPort.Width;
                            vpScale = (vpScale > (float)current.Height / (float)vPort.Height) ? (float)current.Height / (float)vPort.Height : vpScale;
                        }

                        view.ArcBallCtrl.RotationMatrix = GetAsMatrix(rot);
                        view.ArcBallCtrl.TranslationMatrix = GetAsMatrix(trans);
            //                        view.ArcBallCtrl.Scaling = GetAsMatrix(scale);
                        view.ArcBallCtrl.ZoomAbsolute(Convert.ToSingle(scaleFac) * vpScale);
            //                        view.ArcBallCtrl.ScalingFac = Convert.ToSingle(scaleFac) * vpScale;
                        view.ViewMatrix = view.ArcBallCtrl.ViewMatrix;
                        view.ModelRenderer.RenderOptions.OptionsShown = (Canguro.View.Renderer.RenderOptions.ShowOptions)options;
                    }
                }
            }
        }