Stream(ArrayList data, PromptOptions opts) { data.Add(new Snoop.Data.ClassSeparator(typeof(PromptOptions))); data.Add(new Snoop.Data.String("Message", opts.Message)); data.Add(new Snoop.Data.Bool("Append keywords to message", opts.AppendKeywordsToMessage)); data.Add(new Snoop.Data.Bool("Is read-only", opts.IsReadOnly)); data.Add(new Snoop.Data.Object("Keywords", opts.Keywords)); PromptEditorOptions promptEdOpts = opts as PromptEditorOptions; if (promptEdOpts != null) { Stream(data, promptEdOpts); return; } JigPromptOptions jigPromptOpts = opts as JigPromptOptions; if (jigPromptOpts != null) { Stream(data, jigPromptOpts); return; } }
protected override SamplerStatus Sampler(JigPrompts prompts) { JigPromptOptions jigOpts = new JigPromptOptions(); jigOpts.UserInputControls = (UserInputControls.Accept3dCoordinates | UserInputControls.NoZeroResponseAccepted | UserInputControls.NoNegativeResponseAccepted); if(mPromptCounter == 0) { jigOpts.Message = "\nEllipse Major axis:"; PromptPointResult dres = prompts.AcquirePoint(jigOpts); Point3d axisPointTemp = dres.Value; if(axisPointTemp != mAxisPt) { mAxisPt = axisPointTemp; } else return SamplerStatus.NoChange; if(dres.Status == PromptStatus.Cancel) return SamplerStatus.Cancel; else return SamplerStatus.OK; } else if (mPromptCounter == 1) { jigOpts.BasePoint = mCenterPt; jigOpts.UseBasePoint = true; jigOpts.Message = "\nEllipse Minor axis:"; double radiusRatioTemp = -1; PromptPointResult res = prompts.AcquirePoint(jigOpts); acquiredPoint = res.Value; radiusRatioTemp = mCenterPt.DistanceTo(acquiredPoint); if (radiusRatioTemp != mRadiusRatio) mRadiusRatio = radiusRatioTemp; else return SamplerStatus.NoChange; if(res.Status == PromptStatus.Cancel) return SamplerStatus.Cancel; else return SamplerStatus.OK; } else { return SamplerStatus.NoChange; } }