示例#1
0
        public override void RenderHandle(TransformGizmo gizmo, Vector4 color, bool outlined = false)
        {
            base.RenderHandle(gizmo, color);

            var editOffset  = 0f;
            var renderScale = new Vector3(GizmoSize);

            if (gizmo.IsEditing && IsSelected)
            {
                editOffset   = gizmo.TransformedAmount / 2f;
                renderScale += new Vector3(0, editOffset, 0);
            }

            var scaleMatrix    = Matrix4.CreateScale(renderScale);
            var cubeRenderSize = GizmoSize * CubeSize;

            if (gizmo.IsEditing)
            {
                cubeRenderSize *= IsSelected ? 1.25f : 0.75f;
            }

            var cubeScale = Matrix4.CreateScale(cubeRenderSize);
            var cubeTrans = cubeScale * Matrix4.CreateTranslation(0, GizmoSize + editOffset, 0);

            var baseTransform = Orientation * gizmo.GetActiveTransform();

            GL.PushAttrib(AttribMask.LineBit);
            GL.LineWidth(outlined ? 4.5f : 2.5f);

            RenderHelper.BeginDrawColor(gizmo.VertexBuffer, scaleMatrix * baseTransform, color);
            gizmo.VertexBuffer.DrawArrays(PrimitiveType.Lines, 32, 2);

            GL.PopAttrib();


            if (outlined)
            {
                RenderHelper.BeginDrawWireframe(ModelManager.CubeModel.VertexBuffer, cubeTrans * baseTransform, 2f, color);
                ModelManager.CubeModel.DrawElements();
                //gizmo.VertexBuffer.DrawElements(PrimitiveType.Triangles);
                RenderHelper.EndDrawWireframe(gizmo.VertexBuffer);
            }
            else
            {
                RenderHelper.BeginDrawColor(ModelManager.CubeModel.VertexBuffer, cubeTrans * baseTransform, color);
                ModelManager.CubeModel.DrawElements();
                //gizmo.VertexBuffer.DrawElements(PrimitiveType.Triangles);
            }
        }
示例#2
0
        public override void RenderHandle(TransformGizmo gizmo, Vector4 color, bool outlined = false)
        {
            base.RenderHandle(gizmo, color);

            if (gizmo.IsEditing && !IsSelected)
            {
                return;
            }

            var scale      = Matrix4.CreateScale(GizmoSize);
            var arrowSize  = GizmoSize * ArrowSize;
            var arrowScale = Matrix4.CreateScale(arrowSize / 2f, arrowSize, arrowSize / 2f);
            var arrowTrans = arrowScale * Matrix4.CreateTranslation(0, GizmoSize, 0);

            var baseTransform = Orientation * gizmo.GetActiveTransform();

            GL.PushAttrib(AttribMask.LineBit);
            GL.LineWidth(outlined ? 4.5f : 2.5f);

            RenderHelper.BeginDrawColor(gizmo.VertexBuffer, scale * baseTransform, color);
            gizmo.VertexBuffer.DrawArrays(PrimitiveType.Lines, 32, 2);

            GL.PopAttrib();


            if (outlined)
            {
                RenderHelper.BeginDrawWireframe(gizmo.VertexBuffer, arrowTrans * baseTransform, 2f, color);
                gizmo.VertexBuffer.DrawElements(PrimitiveType.Triangles);
                RenderHelper.EndDrawWireframe(gizmo.VertexBuffer);
            }
            else
            {
                RenderHelper.BeginDrawColor(gizmo.VertexBuffer, arrowTrans * baseTransform, color);
                gizmo.VertexBuffer.DrawElements(PrimitiveType.Triangles);
            }
        }
示例#3
0
        public override void RenderHandle(TransformGizmo gizmo, Vector4 color, bool outlined = false)
        {
            if (gizmo.IsEditing && outlined && !IsSelected)
            {
                return;
            }

            var scale         = Matrix4.CreateScale(GizmoSize * 2f);
            var baseTransform = Orientation * gizmo.GetActiveTransform();

            GL.PushAttrib(AttribMask.LineBit);
            float lineSize = gizmo.IsEditing && !IsSelected ? 1f : 3.5f;

            if (outlined)
            {
                lineSize += 2f;
            }
            GL.LineWidth(lineSize);

            RenderHelper.BeginDrawColor(gizmo.VertexBuffer, scale * baseTransform, color);
            gizmo.VertexBuffer.DrawArrays(PrimitiveType.LineLoop, 0, 32);

            GL.PopAttrib();
        }
示例#4
0
 public virtual void RenderHandle(TransformGizmo gizmo, Vector4 color, bool outlined = false)
 {
 }