Example #1
0
        override public Capture UpdateCapture(InputState input, CaptureData data)
        {
            DrawPrimitivesTool tool =
                (context.ToolManager.ActiveRightTool as DrawPrimitivesTool);
            capture_data cap = data.custom_data as capture_data;

            tool.UpdateDraw_Ray(input.vMouseWorldRay, cap.nStep);

            if (input.bLeftMouseReleased)
            {
                if ((cap.nStep + 1) < tool.Steps)
                {
                    cap.nStep++;
                    return(Capture.Continue);
                }
                else
                {
                    tool.EndDraw();
                    return(Capture.End);
                }
            }
            else
            {
                return(Capture.Continue);
            }
        }
Example #2
0
        override public Capture UpdateCapture(InputState input, CaptureData data)
        {
            capture_data d = data.custom_data as capture_data;

            if (d.is_right)
            {
                if (input.bRightMouseReleased)
                {
                    return(Capture.End);
                }
            }
            else
            {
                if (input.bLeftMouseReleased)
                {
                    return(Capture.End);
                }
            }

            int point = (d.is_right || d.is_secondary_left) ? 1 : 0;

            Ray3f     ray = input.vMouseWorldRay;
            AnyRayHit rayHit;

            if (context.Scene.FindSceneRayIntersection(ray, out rayHit, false))
            {
                tool.UpdateMeasurePoint(rayHit.hitPos, CoordSpace.WorldCoords, point, true);
            }

            return(Capture.Continue);
        }
Example #3
0
        override public Capture BeginCapture(InputState input, CaptureSide eSide)
        {
            capture_data d = new capture_data()
            {
                is_right          = input.bRightMouseDown,
                is_secondary_left = (input.bRightMouseDown == false) && input.bLeftMouseDown && input.bShiftKeyDown
            };

            return(Capture.Begin(this, eSide, d));
        }
Example #4
0
        override public Capture UpdateCapture(InputState input, CaptureData data)
        {
            DrawPrimitivesTool tool = context.ToolManager.GetActiveTool((int)data.which) as DrawPrimitivesTool;

            // [RMS] this is a hack for trigger+shoulder grab gesture...really need some way
            //   to interrupt captures!!
            if ((data.which == CaptureSide.Left && input.bLeftShoulderPressed) ||
                (data.which == CaptureSide.Right && input.bRightShoulderPressed))
            {
                tool.CancelDraw();
                return(Capture.End);
            }

            Ray          sideRay   = (data.which == CaptureSide.Left) ? input.vLeftSpatialWorldRay : input.vRightSpatialWorldRay;
            Frame3f      sideHandF = (data.which == CaptureSide.Left) ? input.LeftHandFrame : input.RightHandFrame;
            capture_data cap       = data.custom_data as capture_data;

            tool.UpdateDraw_Spatial(sideRay, sideHandF, cap.nStep);

            bool bReleased = (data.which == CaptureSide.Left) ? input.bLeftTriggerReleased : input.bRightTriggerReleased;

            if (bReleased)
            {
                if ((cap.nStep + 1) < tool.Steps)
                {
                    cap.nStep++;
                    return(Capture.Continue);
                }
                else
                {
                    tool.EndDraw();
                    return(Capture.End);
                }
            }
            else
            {
                return(Capture.Continue);
            }
        }