Ejemplo n.º 1
0
        public static void GizmoInput(Vector2 Cursor, bool Left, bool Translate, bool Rotate, bool Scale, bool Local, bool Ctrl)
        {
            Cursor = ((Cursor / Camera.ActiveCamera.ViewportSize) * new Vector2(2) - Vector2.One) * new Vector2(1, -1);

            Vector3 RayDir = new Vector3(Cursor.X / Camera.ActiveCamera.Projection.M11, Cursor.Y / Camera.ActiveCamera.Projection.M22, -1);

            RayDir = Vector3.Normalize(RayDir);
            RayDir = Vector4.Transform(new Vector4(RayDir, 0), Camera.ActiveCamera.World).XYZ();

            TinyGizmo.GizmoInput(RayDir, Left, Translate, Rotate, Scale, Local, Ctrl);
        }
Ejemplo n.º 2
0
        public static bool Gizmo(/*string Name,*/ float Dt, ref Vector3 Pos, ref Quaternion Rot, ref Vector3 Scale, Vector3?Snapping = null, float ScreenScale = 25)
        {
            Camera Cam = Camera.ActiveCamera;

            TinyGizmo.GizmoBegin(Dt, Engine.WindowSize, Cam.Near, Cam.Far, Cam.VerticalFOV, Cam.Position, Cam.WorldForwardNormal, ScreenScale, Snapping ?? Vector3.Zero);

            Matrix3x3 RotMat = Matrix4x4.CreateFromQuaternion(Rot);
            bool      Ret    = TinyGizmo.Gizmo("GizmoName", ref Pos, ref RotMat, ref Scale);

            Rot = Quaternion.CreateFromRotationMatrix(RotMat);

            TinyGizmo.GizmoEnd();
            return(Ret);
        }
Ejemplo n.º 3
0
        static Immediate()
        {
            TinyGizmo.OnRender = (PrimType, Verts) => {
                Vector3[] Positions = Verts.Select((V) => V.Position.XYZ()).ToArray();
                Vector4[] Colors    = Verts.Select((V) => V.Color).ToArray();

                if (PrimType == Im3dPrimitiveType.Triangles)
                {
                    Triangles(Positions, Colors);
                }
                else if (PrimType == Im3dPrimitiveType.Lines)
                {
                    Lines(Positions, Colors, Verts.Select((V) => V.Position.W).ToArray());
                }
                else
                {
                    Points(Positions, Colors, Verts.Select((V) => V.Position.W).ToArray());
                }
            };

            TinyGizmo.GizmoInit();
        }