public void AddGeometric3DObject(cGeometric3DObject object3D) { AddObject3D((cObject3D)object3D); }
public c3DIsoContours(cGeometric3DObject AssociatedObject, cDRC_Region AssociatedRegion, double Zposition, bool IsIsoboles) { Create(AssociatedObject, AssociatedRegion, Color.White, Zposition, IsIsoboles); }
private void Create(cGeometric3DObject AssociatedObject, cDRC_Region AssociatedRegion, Color Color, double ZPosition, bool IsIsoboles) { if (AssociatedObject.AlgoOutPut == null) return; SetPosition(new cPoint3D(AssociatedObject.GetActor().GetPosition()[0], AssociatedObject.GetActor().GetPosition()[1], 0));// AssociatedObject.GetActor().GetPosition()[2]); //Position = new cPoint3D(0, 0, 0);// AssociatedObject.GetActor().GetPosition()[2]); vtkPlane plane = vtkPlane.New(); // isoboles if (IsIsoboles) { plane.SetOrigin(AssociatedObject.GetActor().GetPosition()[0], AssociatedObject.GetActor().GetPosition()[1], ZPosition); plane.SetNormal(0, 0, 1); } else { plane.SetOrigin(AssociatedObject.GetPosition().X - AssociatedObject.GetActor().GetPosition()[0], AssociatedObject.GetPosition().Y - AssociatedObject.GetActor().GetPosition()[1], 0); plane.SetNormal(AssociatedRegion.SizeY - 1 + 2 * ZPosition, -AssociatedRegion.SizeX, 0); // vtkPlaneSource PlaneSource = vtkPlaneSource.New(); //PlaneSource.SetOrigin(AssociatedObject.Position.X, AssociatedObject.Position.Y, 0); //PlaneSource.SetNormal(5, -10, 0); } // Create cutter vtkCutter cutter = vtkCutter.New(); cutter.SetCutFunction(plane); cutter.SetInputConnection(AssociatedObject.AlgoOutPut); cutter.Update(); vtkPoints Pts = cutter.GetOutput().GetPoints(); int NumPts = (int)Pts.GetNumberOfPoints(); for (int IdxPt = 0; IdxPt < NumPts; IdxPt++) { double[] Pt = Pts.GetPoint(IdxPt); cPoint3D NewPt = new cPoint3D(Pt[0], Pt[1], Pt[2]); ListPtContour.Add(NewPt); } vtkTubeFilter tubeFilter = vtkTubeFilter.New(); tubeFilter.SetInputConnection(cutter.GetOutputPort()); tubeFilter.SetRadius(.035); //default is .5 tubeFilter.SetNumberOfSides(50); tubeFilter.Update(); // vtkPolyDataMapper cutterMapper = vtkPolyDataMapper.New(); vtk_PolyDataMapper = vtkPolyDataMapper.New(); vtk_PolyDataMapper.SetInputConnection(/*PlaneSource.GetOutputPort());*/ tubeFilter.GetOutputPort()); // Create plane actor //vtkActor planeActor = vtkActor.New(); //planeActor.SetMapper(vtk_PolyDataMapper); CreateVTK3DObject(0); SetColor(Color); SetOpacity(1); SetToSurface(); }
public void AddGeometric3DObject(cGeometric3DObject object3D) { AddObject3D((cObject3D)object3D); object3D.AssociatedWorld = this; if(AssociatedVTKRenderer!=null) AssociatedVTKRenderer.AddViewProp(object3D.GetActor()); }