private void queryMultiSelectionToolStripMenuItem_Click(object sender, EventArgs e) { TopoShapeGroup group = new TopoShapeGroup(); MultiShapeQuery query = new MultiShapeQuery(); m_RenderView.QuerySelection(query); int nCount = query.GetCount(); for (int ii = 0; ii < nCount; ++ii) { SelectedShapeQuery shapeQuery = query.GetSubContext(ii); TopoShape subShape = shapeQuery.GetSubGeometry(); if (subShape != null) { group.Add(subShape); } } // clear the scene and only keep the selected shapes if (group.Size() > 0) { m_RenderView.ClearScene(); for (int ii = 0; ii < group.Size(); ++ii) { m_RenderView.ShowGeometry(group.GetAt(ii), 100 + ii);; } } }
public override bool Run(FeatureContext context) { context.RenderView.SetDisplayMode((int)(EnumDisplayStyle.DS_ShadeEdge | EnumDisplayStyle.DS_Vertex)); // construct a wire; TopoShape TS = GlobalInstance.BrepTools.MakeEllipse(Vector3.ZERO, 100D, 50D, Vector3.UNIT_Z); context.ShowGeometry(TS); TopoShape line = GlobalInstance.BrepTools.MakeLine(new Vector3(0, -200, 0), new Vector3(200, 200, 0)); context.ShowGeometry(line); IntersectionLineCurve intersector = new IntersectionLineCurve(); TopoExplor tp = new TopoExplor(); TopoShapeGroup tg = tp.ExplorEdges(TS); intersector.SetCurve(tg.GetAt(0)); if (intersector.Perform(line)) { int nCount = intersector.GetPointCount(); List <Vector3> LV = new List <Vector3>(); for (int ii = 0; ii < nCount; ++ii) { Vector3 pt = intersector.GetPoint(ii + 1); LV.Add(pt); context.ShowGeometry(GlobalInstance.BrepTools.MakePoint(pt)); } MessageBox.Show(String.Format("{0}", nCount)); } return(true); }
public override void OnFace(TopoShape shape) { WireClassifier wc = new WireClassifier(); if (!wc.Initialize(shape)) { return; } TopoShapeGroup innerWires = wc.GetInnerWires(); int nCount = innerWires.Size(); for (int ii = 0; ii < nCount; ++ii) { SceneNode node = _Context.ShowGeometry(innerWires.GetAt(ii)); node.SetLineStyle(_LineStyle); } SceneNode faceNode = _Context.ShowGeometry(shape); faceNode.SetFaceStyle(_FaceStyle); }
public override bool Run(FeatureContext context) { TopoShape arc = GlobalInstance.BrepTools.MakeArc(new Vector3(-100, 0, 0), new Vector3(100, 0, 0), Vector3.ZERO, Vector3.UNIT_Z); TopoShape line = GlobalInstance.BrepTools.MakeLine(new Vector3(100, 0, 0), new Vector3(100, 200, 0)); TopoShapeGroup group = new TopoShapeGroup(); group.Add(arc); group.Add(line); TopoShape wire = GlobalInstance.BrepTools.MakeSpline(group); TopoShape splitter1 = GlobalInstance.BrepTools.MakePoint(new Vector3(0, -100, 0)); TopoShape splitter2 = GlobalInstance.BrepTools.MakePoint(new Vector3(100, 100, 0)); TopoShapeGroup spliterGroup = new TopoShapeGroup(); spliterGroup.Add(splitter1); spliterGroup.Add(splitter2); TopoShape result = GlobalInstance.BrepTools.MakeSplit(wire, spliterGroup); TopoExplor exp = new TopoExplor(); TopoShapeGroup itmes = exp.ExplorSubShapes(result); for (int ii = 0; ii < itmes.Size(); ++ii) { SceneNode node = context.ShowGeometry(itmes.GetAt(ii)); LineStyle ls = new LineStyle(); ls.SetLineWidth(3.0f); ls.SetColor((ii + 1) * 50, ii * 20, ii * 10); node.SetLineStyle(ls); } return(true); }