Example #1
0
        public static void BeginDrawTrimLineTool()
        {
            var M = OG.Model;

            M.Context.ToolManager.DeactivateTool(ToolSide.Right);
            M.Scene.ClearSelection();
            M.Context.ToolManager.SetActiveToolType(BodyModelTools.DrawTrimLineIdentifier, ToolSide.Right);
            M.Scene.Select(OG.Leg.SO, true);
            M.Context.ToolManager.ActivateTool(ToolSide.Right);

            DrawSurfaceCurveTool tool = M.Context.ToolManager.ActiveRightTool as DrawSurfaceCurveTool;
            var target = new SOProjectionTarget(OG.Leg.SO)
            {
                Offset = M.Scene.ToWorldDimension(0.5f)
            };

            tool.CurveProcessorF = gs.CurveDrawingUtil.MakeLoopOnSurfaceProcessorF(M.Scene, target,
                                                                                   () => { return(tool.SamplingRateScene); },
                                                                                   () => { return(tool.Closed); },
                                                                                   0.5f, 25);
        }
Example #2
0
        /// <summary>
        /// this is set as DrawSurfaceCurveTool.EmitNewCurveF, which is called automatically when user
        /// releases mouse, so we need to exit the tool here.
        /// </summary>
        public static void EmitRegionDeformationFromCurvePreview(CurvePreview preview)
        {
            if (preview.Closed == false)
            {
                preview.Closed = true;
                DrawSurfaceCurveTool tool = OG.Context.ToolManager.ActiveRightTool as DrawSurfaceCurveTool;
                if (tool != null)
                {
                    tool.Closed = true;
                }
            }
            EnclosedPatchSO curveSO = EnclosedPatchSO.CreateFromPreview(preview, OrthogenMaterials.OffsetRegionMaterial, OG.Scene);

            AddNewRegionDeformation(curveSO, CurrentLegDeformType);

            // [RMS] this is called at end
            OG.Context.RegisterNextFrameAction(() => {
                OG.Transition(OGWorkflow.DrawAreaExitT);
                OG.Scene.Select(curveSO, true);
            });
        }