override public Capture BeginCapture(InputState input, CaptureSide eSide)
        {
            update_last_hit(tool, WorldRay(ref input));
            curDrawFrameW = new Frame3f(lastHitPosW, context.ActiveCamera.Forward());

            tool.ActiveBrush = (input.bShiftKeyDown) ?
                               tool.SecondaryBrushTool : tool.PrimaryBrushTool;

            tool.BeginBrushStroke(new Frame3f(lastHitPosW));
            in_draw = true;

            return(Capture.Begin(this, CaptureSide.Any));
        }
        override public Capture BeginCapture(InputState input, CaptureSide eSide)
        {
            //Ray3f sideRay = (eSide == CaptureSide.Left) ? input.vLeftSpatialWorldRay : input.vRightSpatialWorldRay;
            Frame3f sideHandF = (eSide == CaptureSide.Left) ? input.LeftHandFrame : input.RightHandFrame;

            sideHandF.Origin += SceneGraphConfig.VRHandTipOffset * sideHandF.Z;
            SculptCurveTool tool = context.ToolManager.GetActiveTool((int)eSide) as SculptCurveTool;

            // [RMS] old oculus hack that was not very nice...
            //bool bTouchingStick =
            //    (eSide == CaptureSide.Left) ? input.bLeftStickTouching : input.bRightStickTouching;
            //tool.ActiveBrush = (bTouchingStick) ?
            //    SculptCurveTool.BrushTool.Smooth : SculptCurveTool.BrushTool.SoftMove;

            tool.BeginBrushStroke(sideHandF);
            in_draw = true;

            return(Capture.Begin(this, eSide));
        }