예제 #1
0
    public AnimationCurve DrawHandle(AnimationCurve curve)
    {
        AnimationCurve ret;

        //Update the mouse world position:
        Ray r = HandleUtility.GUIPointToWorldRay(e.mousePosition);

        if (CustomHandleUtility.GetPointOnPlane(matrix, r, out currentMouseWorld))
        {
            currentMouseWorld = matrix.inverse.MultiplyPoint3x4(currentMouseWorld);
        }

        if (e.type == EventType.Repaint)
        {
            PushGLContext();
            DrawBorders();
            DrawCurve(curve);
            DrawLabels(curve);
            PopGLContext();
        }

        //draw curve handles:
        ret = DrawCurvePointsHandle(curve);

        if (e.type == EventType.MouseDown && e.button == 0 && mouseOverCurveEdge)
        {
            ret = AddCurveKeyframe(curve);
            e.Use();
        }

        return(ret);
    }
예제 #2
0
    bool GetMousePositionInWorld(out Vector3 position)
    {
        Ray r = HandleUtility.GUIPointToWorldRay(e.mousePosition);

        return(CustomHandleUtility.GetPointOnPlane(matrix, r, out position));
    }