/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVEnSightOfficeBin(String [] argv) { //Prefix Content is: "" ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); // read data[] //[] reader = new vtkGenericEnSightReader(); // Make sure all algorithms use the composite data pipeline[] cdp = new vtkCompositeDataPipeline(); vtkGenericEnSightReader.SetDefaultExecutivePrototype((vtkExecutive)cdp); reader.SetCaseFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/EnSight/office_bin.case"); reader.Update(); // to add coverage for vtkOnePieceExtentTranslator[] translator = new vtkOnePieceExtentTranslator(); vtkStreamingDemandDrivenPipeline.SetExtentTranslator(reader.GetOutputInformation(0), (vtkExtentTranslator)translator); outline = new vtkStructuredGridOutlineFilter(); // outline SetInputConnection [reader GetOutputPort][] outline.SetInputData((vtkDataObject)reader.GetOutput().GetBlock((uint)0)); mapOutline = vtkPolyDataMapper.New(); mapOutline.SetInputConnection((vtkAlgorithmOutput)outline.GetOutputPort()); outlineActor = new vtkActor(); outlineActor.SetMapper((vtkMapper)mapOutline); outlineActor.GetProperty().SetColor((double)0,(double)0,(double)0); // Create source for streamtubes[] streamer = new vtkStreamPoints(); // streamer SetInputConnection [reader GetOutputPort][] streamer.SetInputData((vtkDataObject)reader.GetOutput().GetBlock((uint)0)); streamer.SetStartPosition((double)0.1,(double)2.1,(double)0.5); streamer.SetMaximumPropagationTime((double)500); streamer.SetTimeIncrement((double)0.5); streamer.SetIntegrationDirectionToForward(); cone = new vtkConeSource(); cone.SetResolution((int)8); cones = new vtkGlyph3D(); cones.SetInputConnection((vtkAlgorithmOutput)streamer.GetOutputPort()); cones.SetSourceConnection(cone.GetOutputPort()); cones.SetScaleFactor((double)0.9); cones.SetScaleModeToScaleByVector(); mapCones = vtkPolyDataMapper.New(); mapCones.SetInputConnection((vtkAlgorithmOutput)cones.GetOutputPort()); // eval mapCones SetScalarRange [[reader GetOutput] GetScalarRange][] mapCones.SetScalarRange((double)((vtkDataSet)reader.GetOutput().GetBlock((uint)0)).GetScalarRange()[0], (double)((vtkDataSet)reader.GetOutput().GetBlock((uint)0)).GetScalarRange()[1]); conesActor = new vtkActor(); conesActor.SetMapper((vtkMapper)mapCones); ren1.AddActor((vtkProp)outlineActor); ren1.AddActor((vtkProp)conesActor); ren1.SetBackground((double)0.4,(double)0.4,(double)0.5); renWin.SetSize((int)300,(int)300); iren.Initialize(); // interact with data[] vtkGenericEnSightReader.SetDefaultExecutivePrototype(null); //deleteAllVTKObjects(); }
public void Initialize() { // Initialize Actors GlyphX = vtkGlyph3D.New(); MapperX = vtkDataSetMapper.New(); MapperX.SetInputConnection(GlyphX.GetOutputPort()); ActorX = vtkActor.New(); ActorX.SetMapper(MapperX); ClipperX = vtkTableBasedClipDataSet.New(); GlyphY = vtkGlyph3D.New(); MapperY = vtkDataSetMapper.New(); MapperY.SetInputConnection(GlyphY.GetOutputPort()); ActorY = vtkActor.New(); ActorY.SetMapper(MapperY); ClipperY = vtkTableBasedClipDataSet.New(); GlyphZ = vtkGlyph3D.New(); MapperZ = vtkDataSetMapper.New(); MapperZ.SetInputConnection(GlyphZ.GetOutputPort()); ActorZ = vtkActor.New(); ActorZ.SetMapper(MapperZ); ClipperZ = vtkTableBasedClipDataSet.New(); // Enable wireframe display mode ActorX.GetProperty().EdgeVisibilityOn(); ActorY.GetProperty().EdgeVisibilityOn(); ActorZ.GetProperty().EdgeVisibilityOn(); // Hide Actors ActorX.VisibilityOff(); ActorY.VisibilityOff(); ActorZ.VisibilityOff(); }
private void SelectPointClick(vtkObject sender, vtkObjectEventArgs e) { if (ModelLoaded == true && SelectionMode == true) { int[] clickPos = Inter.GetEventPosition(); vtkPointPicker PointPicker = vtkPointPicker.New(); PointPicker.SetTolerance(0.05); PointPicker.Pick(clickPos[0], clickPos[1], 0, Viewport); vtkPoints points = Faces.GetPoints(); double[] PickPosition = PointPicker.GetPickPosition(); for (int j = 0; j < points.GetNumberOfPoints(); j++) { if (Math.Abs(points.GetPoint(j)[0] - PickPosition[0]) < 1e-6 && Math.Abs(points.GetPoint(j)[1] - PickPosition[1]) < 1e-6 && Math.Abs(points.GetPoint(j)[2] - PickPosition[2]) < 1e-6) { SelectionPoints.InsertNextPoint(PickPosition[0], PickPosition[1], PickPosition[2]); break; } } SelectionGlyph = vtkGlyph3D.New(); SelectionGlyph.SetInput(SelectionPolyData); SelectionGlyph.SetSourceConnection(SelectionSphere.GetOutputPort()); SelectionMapper.SetInputConnection(SelectionGlyph.GetOutputPort()); SelectionActor.SetMapper(SelectionMapper); // Refresh Viewport Refresh(); } }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVEnSightOfficeBin(String [] argv) { //Prefix Content is: "" ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); // read data[] //[] reader = new vtkGenericEnSightReader(); // Make sure all algorithms use the composite data pipeline[] cdp = new vtkCompositeDataPipeline(); vtkGenericEnSightReader.SetDefaultExecutivePrototype((vtkExecutive)cdp); reader.SetCaseFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/EnSight/office_bin.case"); reader.Update(); // to add coverage for vtkOnePieceExtentTranslator[] translator = new vtkOnePieceExtentTranslator(); vtkStreamingDemandDrivenPipeline.SetExtentTranslator(reader.GetOutputInformation(0), (vtkExtentTranslator)translator); outline = new vtkStructuredGridOutlineFilter(); // outline SetInputConnection [reader GetOutputPort][] outline.SetInputData((vtkDataObject)reader.GetOutput().GetBlock((uint)0)); mapOutline = vtkPolyDataMapper.New(); mapOutline.SetInputConnection((vtkAlgorithmOutput)outline.GetOutputPort()); outlineActor = new vtkActor(); outlineActor.SetMapper((vtkMapper)mapOutline); outlineActor.GetProperty().SetColor((double)0, (double)0, (double)0); // Create source for streamtubes[] streamer = new vtkStreamPoints(); // streamer SetInputConnection [reader GetOutputPort][] streamer.SetInputData((vtkDataObject)reader.GetOutput().GetBlock((uint)0)); streamer.SetStartPosition((double)0.1, (double)2.1, (double)0.5); streamer.SetMaximumPropagationTime((double)500); streamer.SetTimeIncrement((double)0.5); streamer.SetIntegrationDirectionToForward(); cone = new vtkConeSource(); cone.SetResolution((int)8); cones = new vtkGlyph3D(); cones.SetInputConnection((vtkAlgorithmOutput)streamer.GetOutputPort()); cones.SetSourceConnection(cone.GetOutputPort()); cones.SetScaleFactor((double)0.9); cones.SetScaleModeToScaleByVector(); mapCones = vtkPolyDataMapper.New(); mapCones.SetInputConnection((vtkAlgorithmOutput)cones.GetOutputPort()); // eval mapCones SetScalarRange [[reader GetOutput] GetScalarRange][] mapCones.SetScalarRange((double)((vtkDataSet)reader.GetOutput().GetBlock((uint)0)).GetScalarRange()[0], (double)((vtkDataSet)reader.GetOutput().GetBlock((uint)0)).GetScalarRange()[1]); conesActor = new vtkActor(); conesActor.SetMapper((vtkMapper)mapCones); ren1.AddActor((vtkProp)outlineActor); ren1.AddActor((vtkProp)conesActor); ren1.SetBackground((double)0.4, (double)0.4, (double)0.5); renWin.SetSize((int)300, (int)300); iren.Initialize(); // interact with data[] vtkGenericEnSightReader.SetDefaultExecutivePrototype(null); //deleteAllVTKObjects(); }
/// <summary> /// Entry Point /// </summary> /// <param name="argv"></param> public static void Main(String[] argv) { // This example demonstrates how to use 2D Delaunay triangulation. // We create a fancy image of a 2D Delaunay triangulation. Points are // randomly generated. // first we load in the standard vtk packages into tcl // Generate some random points math = vtkMath.New(); points = vtkPoints.New(); for(int i = 0; i < 50; i++) { points.InsertPoint(i, vtkMath.Random(0, 1), vtkMath.Random(0, 1), 0.0); } // Create a polydata with the points we just created. profile = vtkPolyData.New(); profile.SetPoints(points); // Perform a 2D Delaunay triangulation on them. del = vtkDelaunay2D.New(); del.SetInput(profile); del.SetTolerance(0.001); mapMesh = vtkPolyDataMapper.New(); mapMesh.SetInputConnection(del.GetOutputPort()); meshActor = vtkActor.New(); meshActor.SetMapper(mapMesh); meshActor.GetProperty().SetColor(.1, .2, .4); // We will now create a nice looking mesh by wrapping the edges in tubes, // and putting fat spheres at the points. extract = vtkExtractEdges.New(); extract.SetInputConnection(del.GetOutputPort()); tubes = vtkTubeFilter.New(); tubes.SetInputConnection(extract.GetOutputPort()); tubes.SetRadius(0.01); tubes.SetNumberOfSides(6); mapEdges = vtkPolyDataMapper.New(); mapEdges.SetInputConnection(tubes.GetOutputPort()); edgeActor = vtkActor.New(); edgeActor.SetMapper(mapEdges); edgeActor.GetProperty().SetColor(0.2000, 0.6300, 0.7900); edgeActor.GetProperty().SetSpecularColor(1, 1, 1); edgeActor.GetProperty().SetSpecular(0.3); edgeActor.GetProperty().SetSpecularPower(20); edgeActor.GetProperty().SetAmbient(0.2); edgeActor.GetProperty().SetDiffuse(0.8); ball = vtkSphereSource.New(); ball.SetRadius(0.025); ball.SetThetaResolution(12); ball.SetPhiResolution(12); balls = vtkGlyph3D.New(); balls.SetInputConnection(del.GetOutputPort()); balls.SetSourceConnection(ball.GetOutputPort()); mapBalls = vtkPolyDataMapper.New(); mapBalls.SetInputConnection(balls.GetOutputPort()); ballActor = vtkActor.New(); ballActor.SetMapper(mapBalls); ballActor.GetProperty().SetColor(1.0000, 0.4118, 0.7059); ballActor.GetProperty().SetSpecularColor(1, 1, 1); ballActor.GetProperty().SetSpecular(0.3); ballActor.GetProperty().SetSpecularPower(20); ballActor.GetProperty().SetAmbient(0.2); ballActor.GetProperty().SetDiffuse(0.8); // Create graphics objects // Create the rendering window, renderer, and interactive renderer ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.AddRenderer(ren1); iren = vtkRenderWindowInteractor.New(); iren.SetRenderWindow(renWin); // Add the actors to the renderer, set the background and size ren1.AddActor(ballActor); ren1.AddActor(edgeActor); ren1.SetBackground(1, 1, 1); renWin.SetSize(150, 150); // render the image ren1.ResetCamera(); ren1.GetActiveCamera().Zoom(1.5); iren.Initialize(); iren.Start(); // Clean Up deleteAllVTKObjects(); }
/// <summary> /// Update Boundary Condition actor (arrows) in Viewport /// </summary> public void Update_Arrows(Dictionary <int, Node> NodeLib, double scale, int Step, bool ClipMode) { vtkPoints PointsX = vtkPoints.New(); vtkPoints PointsY = vtkPoints.New(); vtkPoints PointsZ = vtkPoints.New(); // Create Cone Sources for X, Y and Z direction vtkConeSource ConeSourceX = vtkConeSource.New(); vtkConeSource ConeSourceY = vtkConeSource.New(); vtkConeSource ConeSourceZ = vtkConeSource.New(); ConeSourceX.SetAngle(15); ConeSourceX.SetHeight(scale); ConeSourceX.SetRadius(scale / 4); ConeSourceX.SetResolution(12); ConeSourceX.SetDirection(1, 0, 0); ConeSourceY.SetAngle(15); ConeSourceY.SetHeight(scale); ConeSourceY.SetRadius(scale / 4); ConeSourceY.SetResolution(12); ConeSourceY.SetDirection(0, 1, 0); ConeSourceZ.SetAngle(15); ConeSourceZ.SetHeight(scale); ConeSourceZ.SetRadius(scale / 4); ConeSourceZ.SetResolution(12); ConeSourceZ.SetDirection(0, 0, 1); // Create Points foreach (int i in NodalValues.Keys) { double X = NodeLib[i].X + NodeLib[i].GetDisp(Step, 0); double Y = NodeLib[i].Y + NodeLib[i].GetDisp(Step, 1); double Z = NodeLib[i].Z + NodeLib[i].GetDisp(Step, 2); if (NodalValues[i].Get(0, 0) != 0) { PointsX.InsertNextPoint(X - scale / 2, Y, Z); } if (NodalValues[i].Get(1, 0) != 0) { PointsY.InsertNextPoint(X, Y - scale / 2, Z); } if (NodalValues[i].Get(2, 0) != 0) { PointsZ.InsertNextPoint(X, Y, Z - scale / 2); } } // Set Points to PolyData vtkPolyData PolyX = vtkPolyData.New(); PolyX.SetPoints(PointsX); vtkPolyData PolyY = vtkPolyData.New(); PolyY.SetPoints(PointsY); vtkPolyData PolyZ = vtkPolyData.New(); PolyZ.SetPoints(PointsZ); // Create Glyphs 3D GlyphX = vtkGlyph3D.New(); GlyphY = vtkGlyph3D.New(); GlyphZ = vtkGlyph3D.New(); GlyphX.SetSourceConnection(ConeSourceX.GetOutputPort()); GlyphX.SetInput(PolyX); GlyphX.Update(); GlyphY.SetSourceConnection(ConeSourceY.GetOutputPort()); GlyphY.SetInput(PolyY); GlyphY.Update(); GlyphZ.SetSourceConnection(ConeSourceZ.GetOutputPort()); GlyphZ.SetInput(PolyZ); GlyphZ.Update(); // Set Mapper based on Clip Mode if (ClipMode == true) { // Add Clippers to Mapper ClipperX.SetInputConnection(GlyphX.GetOutputPort()); ClipperX.Update(); MapperX.SetInputConnection(ClipperX.GetOutputPort()); MapperX.Update(); ClipperY.SetInputConnection(GlyphY.GetOutputPort()); ClipperY.Update(); MapperY.SetInputConnection(ClipperY.GetOutputPort()); MapperY.Update(); ClipperZ.SetInputConnection(GlyphZ.GetOutputPort()); ClipperZ.Update(); MapperZ.SetInputConnection(ClipperZ.GetOutputPort()); MapperZ.Update(); } else { // Add Glyphs to Mapper MapperX.SetInputConnection(GlyphX.GetOutputPort()); MapperY.SetInputConnection(GlyphY.GetOutputPort()); MapperZ.SetInputConnection(GlyphZ.GetOutputPort()); MapperX.Update(); MapperY.Update(); MapperZ.Update(); } // Update Actor color ActorX.GetProperty().SetColor( GetColor()[0] / 255.0, GetColor()[1] / 255.0, GetColor()[2] / 255.0); ActorY.GetProperty().SetColor( GetColor()[0] / 255.0, GetColor()[1] / 255.0, GetColor()[2] / 255.0); ActorZ.GetProperty().SetColor( GetColor()[0] / 255.0, GetColor()[1] / 255.0, GetColor()[2] / 255.0); }
///<summary> A Set Method for Static Variables </summary> public static void Setcones(vtkGlyph3D toSet) { cones = toSet; }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVofficeStreamPoints(String [] argv) { //Prefix Content is: "" ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); // read data[] //[] reader = new vtkStructuredGridReader(); reader.SetFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/office.binary.vtk"); reader.Update(); //force a read to occur[] // to add coverage for vtkOnePieceExtentTranslator[] translator = new vtkOnePieceExtentTranslator(); vtkStreamingDemandDrivenPipeline.SetExtentTranslator(reader.GetOutputInformation(0), (vtkExtentTranslator)translator); length = reader.GetOutput().GetLength(); maxVelocity = reader.GetOutput().GetPointData().GetVectors().GetMaxNorm(); maxTime = 35.0*length/maxVelocity; table1 = new vtkStructuredGridGeometryFilter(); table1.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); table1.SetExtent((int)11,(int)15,(int)7,(int)9,(int)8,(int)8); mapTable1 = vtkPolyDataMapper.New(); mapTable1.SetInputConnection((vtkAlgorithmOutput)table1.GetOutputPort()); mapTable1.ScalarVisibilityOff(); table1Actor = new vtkActor(); table1Actor.SetMapper((vtkMapper)mapTable1); table1Actor.GetProperty().SetColor((double).59,(double).427,(double).392); table2 = new vtkStructuredGridGeometryFilter(); table2.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); table2.SetExtent((int)11,(int)15,(int)10,(int)12,(int)8,(int)8); mapTable2 = vtkPolyDataMapper.New(); mapTable2.SetInputConnection((vtkAlgorithmOutput)table2.GetOutputPort()); mapTable2.ScalarVisibilityOff(); table2Actor = new vtkActor(); table2Actor.SetMapper((vtkMapper)mapTable2); table2Actor.GetProperty().SetColor((double).59,(double).427,(double).392); FilingCabinet1 = new vtkStructuredGridGeometryFilter(); FilingCabinet1.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); FilingCabinet1.SetExtent((int)15,(int)15,(int)7,(int)9,(int)0,(int)8); mapFilingCabinet1 = vtkPolyDataMapper.New(); mapFilingCabinet1.SetInputConnection((vtkAlgorithmOutput)FilingCabinet1.GetOutputPort()); mapFilingCabinet1.ScalarVisibilityOff(); FilingCabinet1Actor = new vtkActor(); FilingCabinet1Actor.SetMapper((vtkMapper)mapFilingCabinet1); FilingCabinet1Actor.GetProperty().SetColor((double).8,(double).8,(double).6); FilingCabinet2 = new vtkStructuredGridGeometryFilter(); FilingCabinet2.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); FilingCabinet2.SetExtent((int)15,(int)15,(int)10,(int)12,(int)0,(int)8); mapFilingCabinet2 = vtkPolyDataMapper.New(); mapFilingCabinet2.SetInputConnection((vtkAlgorithmOutput)FilingCabinet2.GetOutputPort()); mapFilingCabinet2.ScalarVisibilityOff(); FilingCabinet2Actor = new vtkActor(); FilingCabinet2Actor.SetMapper((vtkMapper)mapFilingCabinet2); FilingCabinet2Actor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf1Top = new vtkStructuredGridGeometryFilter(); bookshelf1Top.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf1Top.SetExtent((int)13,(int)13,(int)0,(int)4,(int)0,(int)11); mapBookshelf1Top = vtkPolyDataMapper.New(); mapBookshelf1Top.SetInputConnection((vtkAlgorithmOutput)bookshelf1Top.GetOutputPort()); mapBookshelf1Top.ScalarVisibilityOff(); bookshelf1TopActor = new vtkActor(); bookshelf1TopActor.SetMapper((vtkMapper)mapBookshelf1Top); bookshelf1TopActor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf1Bottom = new vtkStructuredGridGeometryFilter(); bookshelf1Bottom.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf1Bottom.SetExtent((int)20,(int)20,(int)0,(int)4,(int)0,(int)11); mapBookshelf1Bottom = vtkPolyDataMapper.New(); mapBookshelf1Bottom.SetInputConnection((vtkAlgorithmOutput)bookshelf1Bottom.GetOutputPort()); mapBookshelf1Bottom.ScalarVisibilityOff(); bookshelf1BottomActor = new vtkActor(); bookshelf1BottomActor.SetMapper((vtkMapper)mapBookshelf1Bottom); bookshelf1BottomActor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf1Front = new vtkStructuredGridGeometryFilter(); bookshelf1Front.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf1Front.SetExtent((int)13,(int)20,(int)0,(int)0,(int)0,(int)11); mapBookshelf1Front = vtkPolyDataMapper.New(); mapBookshelf1Front.SetInputConnection((vtkAlgorithmOutput)bookshelf1Front.GetOutputPort()); mapBookshelf1Front.ScalarVisibilityOff(); bookshelf1FrontActor = new vtkActor(); bookshelf1FrontActor.SetMapper((vtkMapper)mapBookshelf1Front); bookshelf1FrontActor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf1Back = new vtkStructuredGridGeometryFilter(); bookshelf1Back.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf1Back.SetExtent((int)13,(int)20,(int)4,(int)4,(int)0,(int)11); mapBookshelf1Back = vtkPolyDataMapper.New(); mapBookshelf1Back.SetInputConnection((vtkAlgorithmOutput)bookshelf1Back.GetOutputPort()); mapBookshelf1Back.ScalarVisibilityOff(); bookshelf1BackActor = new vtkActor(); bookshelf1BackActor.SetMapper((vtkMapper)mapBookshelf1Back); bookshelf1BackActor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf1LHS = new vtkStructuredGridGeometryFilter(); bookshelf1LHS.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf1LHS.SetExtent((int)13,(int)20,(int)0,(int)4,(int)0,(int)0); mapBookshelf1LHS = vtkPolyDataMapper.New(); mapBookshelf1LHS.SetInputConnection((vtkAlgorithmOutput)bookshelf1LHS.GetOutputPort()); mapBookshelf1LHS.ScalarVisibilityOff(); bookshelf1LHSActor = new vtkActor(); bookshelf1LHSActor.SetMapper((vtkMapper)mapBookshelf1LHS); bookshelf1LHSActor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf1RHS = new vtkStructuredGridGeometryFilter(); bookshelf1RHS.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf1RHS.SetExtent((int)13,(int)20,(int)0,(int)4,(int)11,(int)11); mapBookshelf1RHS = vtkPolyDataMapper.New(); mapBookshelf1RHS.SetInputConnection((vtkAlgorithmOutput)bookshelf1RHS.GetOutputPort()); mapBookshelf1RHS.ScalarVisibilityOff(); bookshelf1RHSActor = new vtkActor(); bookshelf1RHSActor.SetMapper((vtkMapper)mapBookshelf1RHS); bookshelf1RHSActor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf2Top = new vtkStructuredGridGeometryFilter(); bookshelf2Top.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf2Top.SetExtent((int)13,(int)13,(int)15,(int)19,(int)0,(int)11); mapBookshelf2Top = vtkPolyDataMapper.New(); mapBookshelf2Top.SetInputConnection((vtkAlgorithmOutput)bookshelf2Top.GetOutputPort()); mapBookshelf2Top.ScalarVisibilityOff(); bookshelf2TopActor = new vtkActor(); bookshelf2TopActor.SetMapper((vtkMapper)mapBookshelf2Top); bookshelf2TopActor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf2Bottom = new vtkStructuredGridGeometryFilter(); bookshelf2Bottom.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf2Bottom.SetExtent((int)20,(int)20,(int)15,(int)19,(int)0,(int)11); mapBookshelf2Bottom = vtkPolyDataMapper.New(); mapBookshelf2Bottom.SetInputConnection((vtkAlgorithmOutput)bookshelf2Bottom.GetOutputPort()); mapBookshelf2Bottom.ScalarVisibilityOff(); bookshelf2BottomActor = new vtkActor(); bookshelf2BottomActor.SetMapper((vtkMapper)mapBookshelf2Bottom); bookshelf2BottomActor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf2Front = new vtkStructuredGridGeometryFilter(); bookshelf2Front.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf2Front.SetExtent((int)13,(int)20,(int)15,(int)15,(int)0,(int)11); mapBookshelf2Front = vtkPolyDataMapper.New(); mapBookshelf2Front.SetInputConnection((vtkAlgorithmOutput)bookshelf2Front.GetOutputPort()); mapBookshelf2Front.ScalarVisibilityOff(); bookshelf2FrontActor = new vtkActor(); bookshelf2FrontActor.SetMapper((vtkMapper)mapBookshelf2Front); bookshelf2FrontActor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf2Back = new vtkStructuredGridGeometryFilter(); bookshelf2Back.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf2Back.SetExtent((int)13,(int)20,(int)19,(int)19,(int)0,(int)11); mapBookshelf2Back = vtkPolyDataMapper.New(); mapBookshelf2Back.SetInputConnection((vtkAlgorithmOutput)bookshelf2Back.GetOutputPort()); mapBookshelf2Back.ScalarVisibilityOff(); bookshelf2BackActor = new vtkActor(); bookshelf2BackActor.SetMapper((vtkMapper)mapBookshelf2Back); bookshelf2BackActor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf2LHS = new vtkStructuredGridGeometryFilter(); bookshelf2LHS.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf2LHS.SetExtent((int)13,(int)20,(int)15,(int)19,(int)0,(int)0); mapBookshelf2LHS = vtkPolyDataMapper.New(); mapBookshelf2LHS.SetInputConnection((vtkAlgorithmOutput)bookshelf2LHS.GetOutputPort()); mapBookshelf2LHS.ScalarVisibilityOff(); bookshelf2LHSActor = new vtkActor(); bookshelf2LHSActor.SetMapper((vtkMapper)mapBookshelf2LHS); bookshelf2LHSActor.GetProperty().SetColor((double).8,(double).8,(double).6); bookshelf2RHS = new vtkStructuredGridGeometryFilter(); bookshelf2RHS.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); bookshelf2RHS.SetExtent((int)13,(int)20,(int)15,(int)19,(int)11,(int)11); mapBookshelf2RHS = vtkPolyDataMapper.New(); mapBookshelf2RHS.SetInputConnection((vtkAlgorithmOutput)bookshelf2RHS.GetOutputPort()); mapBookshelf2RHS.ScalarVisibilityOff(); bookshelf2RHSActor = new vtkActor(); bookshelf2RHSActor.SetMapper((vtkMapper)mapBookshelf2RHS); bookshelf2RHSActor.GetProperty().SetColor((double).8,(double).8,(double).6); window = new vtkStructuredGridGeometryFilter(); window.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); window.SetExtent((int)20,(int)20,(int)6,(int)13,(int)10,(int)13); mapWindow = vtkPolyDataMapper.New(); mapWindow.SetInputConnection((vtkAlgorithmOutput)window.GetOutputPort()); mapWindow.ScalarVisibilityOff(); windowActor = new vtkActor(); windowActor.SetMapper((vtkMapper)mapWindow); windowActor.GetProperty().SetColor((double).3,(double).3,(double).5); outlet = new vtkStructuredGridGeometryFilter(); outlet.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); outlet.SetExtent((int)0,(int)0,(int)9,(int)10,(int)14,(int)16); mapOutlet = vtkPolyDataMapper.New(); mapOutlet.SetInputConnection((vtkAlgorithmOutput)outlet.GetOutputPort()); mapOutlet.ScalarVisibilityOff(); outletActor = new vtkActor(); outletActor.SetMapper((vtkMapper)mapOutlet); outletActor.GetProperty().SetColor((double)0,(double)0,(double)0); inlet = new vtkStructuredGridGeometryFilter(); inlet.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); inlet.SetExtent((int)0,(int)0,(int)9,(int)10,(int)0,(int)6); mapInlet = vtkPolyDataMapper.New(); mapInlet.SetInputConnection((vtkAlgorithmOutput)inlet.GetOutputPort()); mapInlet.ScalarVisibilityOff(); inletActor = new vtkActor(); inletActor.SetMapper((vtkMapper)mapInlet); inletActor.GetProperty().SetColor((double)0,(double)0,(double)0); outline = new vtkStructuredGridOutlineFilter(); outline.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); mapOutline = vtkPolyDataMapper.New(); mapOutline.SetInputConnection((vtkAlgorithmOutput)outline.GetOutputPort()); outlineActor = new vtkActor(); outlineActor.SetMapper((vtkMapper)mapOutline); outlineActor.GetProperty().SetColor((double)0,(double)0,(double)0); // Create source for streamtubes[] streamer = new vtkStreamPoints(); streamer.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); streamer.SetStartPosition((double)0.1,(double)2.1,(double)0.5); streamer.SetMaximumPropagationTime((double)500); streamer.SetTimeIncrement((double)0.5); streamer.SetIntegrationDirectionToForward(); cone = new vtkConeSource(); cone.SetResolution((int)8); cones = new vtkGlyph3D(); cones.SetInputConnection((vtkAlgorithmOutput)streamer.GetOutputPort()); cones.SetSourceConnection(cone.GetOutputPort()); cones.SetScaleFactor((double)0.5); cones.SetScaleModeToScaleByVector(); mapCones = vtkPolyDataMapper.New(); mapCones.SetInputConnection((vtkAlgorithmOutput)cones.GetOutputPort()); mapCones.SetScalarRange((double)((vtkDataSet)reader.GetOutput()).GetScalarRange()[0],(double)((vtkDataSet)reader.GetOutput()).GetScalarRange()[1]); conesActor = new vtkActor(); conesActor.SetMapper((vtkMapper)mapCones); ren1.AddActor((vtkProp)table1Actor); ren1.AddActor((vtkProp)table2Actor); ren1.AddActor((vtkProp)FilingCabinet1Actor); ren1.AddActor((vtkProp)FilingCabinet2Actor); ren1.AddActor((vtkProp)bookshelf1TopActor); ren1.AddActor((vtkProp)bookshelf1BottomActor); ren1.AddActor((vtkProp)bookshelf1FrontActor); ren1.AddActor((vtkProp)bookshelf1BackActor); ren1.AddActor((vtkProp)bookshelf1LHSActor); ren1.AddActor((vtkProp)bookshelf1RHSActor); ren1.AddActor((vtkProp)bookshelf2TopActor); ren1.AddActor((vtkProp)bookshelf2BottomActor); ren1.AddActor((vtkProp)bookshelf2FrontActor); ren1.AddActor((vtkProp)bookshelf2BackActor); ren1.AddActor((vtkProp)bookshelf2LHSActor); ren1.AddActor((vtkProp)bookshelf2RHSActor); ren1.AddActor((vtkProp)windowActor); ren1.AddActor((vtkProp)outletActor); ren1.AddActor((vtkProp)inletActor); ren1.AddActor((vtkProp)outlineActor); ren1.AddActor((vtkProp)conesActor); ren1.SetBackground((double)0.4,(double)0.4,(double)0.5); aCamera = new vtkCamera(); aCamera.SetClippingRange((double)0.7724,(double)39); aCamera.SetFocalPoint((double)1.14798,(double)3.08416,(double)2.47187); aCamera.SetPosition((double)-2.64683,(double)-3.55525,(double)3.55848); aCamera.SetViewUp((double)0.0511273,(double)0.132773,(double)0.989827); aCamera.SetViewAngle((double)15.5033); ren1.SetActiveCamera((vtkCamera)aCamera); renWin.SetSize((int)500,(int)300); iren.Initialize(); // interact with data[] //deleteAllVTKObjects(); }
/// <summary> /// A console application that creates a /// vtkRenderWindow without a Windows Form /// </summary> /// <param name="argv"></param> public static void Main(String[] argv) { // Demonstrate how to use the vtkBoxWidget 3D widget, // This script uses a 3D box widget to define a "clipping box" to clip some // simple geometry (a mace). Make sure that you hit the "W" key to activate the widget. // Create a mace out of filters. sphere = vtkSphereSource.New(); cone = vtkConeSource.New(); glyph = vtkGlyph3D.New(); glyph.SetInputConnection(sphere.GetOutputPort()); glyph.SetSource(cone.GetOutput()); glyph.SetVectorModeToUseNormal(); glyph.SetScaleModeToScaleByVector(); glyph.SetScaleFactor(0.25); // The sphere and spikes are appended into a single polydata. This just makes things // simpler to manage. apd = vtkAppendPolyData.New(); apd.AddInput(glyph.GetOutput()); apd.AddInput(sphere.GetOutput()); maceMapper = vtkPolyDataMapper.New(); maceMapper.SetInputConnection(apd.GetOutputPort()); maceActor = vtkLODActor.New(); maceActor.SetMapper(maceMapper); maceActor.VisibilityOn(); // This portion of the code clips the mace with the vtkPlanes implicit function. // The clipped region is colored green. planes = vtkPlanes.New(); clipper = vtkClipPolyData.New(); clipper.SetInputConnection(apd.GetOutputPort()); clipper.SetClipFunction(planes); clipper.InsideOutOn(); selectMapper = vtkPolyDataMapper.New(); selectMapper.SetInputConnection(clipper.GetOutputPort()); selectActor = vtkLODActor.New(); selectActor.SetMapper(selectMapper); selectActor.GetProperty().SetColor(0, 1, 0); selectActor.VisibilityOff(); selectActor.SetScale(1.01, 1.01, 1.01); // Create the RenderWindow, Renderer and both Actors ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.AddRenderer(ren1); iren = vtkRenderWindowInteractor.New(); iren.SetRenderWindow(renWin); // The SetInteractor method is how 3D widgets are associated with the render // window interactor. Internally, SetInteractor sets up a bunch of callbacks // using the Command/Observer mechanism (AddObserver()). boxWidget = vtkBoxWidget.New(); boxWidget.SetInteractor(iren); boxWidget.SetPlaceFactor(1.25); ren1.AddActor(maceActor); ren1.AddActor(selectActor); // Add the actors to the renderer, set the background and size ren1.SetBackground(0.1, 0.2, 0.4); renWin.SetSize(300, 300); // Place the interactor initially. The input to a 3D widget is used to // initially position and scale the widget. The EndInteractionEvent is // observed which invokes the SelectPolygons callback. boxWidget.SetInput(glyph.GetOutput()); boxWidget.PlaceWidget(); boxWidget.EndInteractionEvt += new vtkObject.vtkObjectEventHandler(SelectPolygons); // render the image iren.Initialize(); iren.Start(); //Clean up deleteAllVTKObjects(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVgaussian(String [] argv) { //Prefix Content is: "" ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.SetMultiSamples(0); renWin.AddRenderer((vtkRenderer)ren1); renWin.SetSize((int)300, (int)300); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); camera = new vtkCamera(); camera.ParallelProjectionOn(); camera.SetViewUp((double)0, (double)1, (double)0); camera.SetFocalPoint((double)12, (double)10.5, (double)15); camera.SetPosition((double)-70, (double)15, (double)34); camera.ComputeViewPlaneNormal(); ren1.SetActiveCamera((vtkCamera)camera); // Create the reader for the data[] //vtkStructuredPointsReader reader[] reader = new vtkGaussianCubeReader(); reader.SetFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/m4_TotalDensity.cube"); reader.SetHBScale((double)1.1); reader.SetBScale((double)10); reader.Update(); range = reader.GetGridOutput().GetPointData().GetScalars().GetRange(); min = (double)(lindex(range, 0)); max = (double)(lindex(range, 1)); readerSS = new vtkImageShiftScale(); readerSS.SetInputData((vtkDataObject)reader.GetGridOutput()); readerSS.SetShift((double)min * -1); readerSS.SetScale((double)255 / (max - min)); readerSS.SetOutputScalarTypeToUnsignedChar(); bounds = new vtkOutlineFilter(); bounds.SetInputData((vtkDataObject)reader.GetGridOutput()); boundsMapper = vtkPolyDataMapper.New(); boundsMapper.SetInputConnection((vtkAlgorithmOutput)bounds.GetOutputPort()); boundsActor = new vtkActor(); boundsActor.SetMapper((vtkMapper)boundsMapper); boundsActor.GetProperty().SetColor((double)0, (double)0, (double)0); contour = new vtkContourFilter(); contour.SetInputData((vtkDataObject)reader.GetGridOutput()); contour.GenerateValues((int)5, (double)0, (double).05); contourMapper = vtkPolyDataMapper.New(); contourMapper.SetInputConnection((vtkAlgorithmOutput)contour.GetOutputPort()); contourMapper.SetScalarRange((double)0, (double).1); ((vtkLookupTable)contourMapper.GetLookupTable()).SetHueRange(0.32, 0); contourActor = new vtkActor(); contourActor.SetMapper((vtkMapper)contourMapper); contourActor.GetProperty().SetOpacity((double).5); // Create transfer mapping scalar value to opacity[] opacityTransferFunction = new vtkPiecewiseFunction(); opacityTransferFunction.AddPoint((double)0, (double)0.01); opacityTransferFunction.AddPoint((double)255, (double)0.35); opacityTransferFunction.ClampingOn(); // Create transfer mapping scalar value to color[] colorTransferFunction = new vtkColorTransferFunction(); colorTransferFunction.AddHSVPoint((double)0.0, (double)0.66, (double)1.0, (double)1.0); colorTransferFunction.AddHSVPoint((double)50.0, (double)0.33, (double)1.0, (double)1.0); colorTransferFunction.AddHSVPoint((double)100.0, (double)0.00, (double)1.0, (double)1.0); // The property describes how the data will look[] volumeProperty = new vtkVolumeProperty(); volumeProperty.SetColor((vtkColorTransferFunction)colorTransferFunction); volumeProperty.SetScalarOpacity((vtkPiecewiseFunction)opacityTransferFunction); volumeProperty.SetInterpolationTypeToLinear(); // The mapper / ray cast function know how to render the data[] compositeFunction = new vtkVolumeRayCastCompositeFunction(); volumeMapper = new vtkVolumeRayCastMapper(); //vtkVolumeTextureMapper2D volumeMapper[] volumeMapper.SetVolumeRayCastFunction((vtkVolumeRayCastFunction)compositeFunction); volumeMapper.SetInputConnection((vtkAlgorithmOutput)readerSS.GetOutputPort()); // The volume holds the mapper and the property and[] // can be used to position/orient the volume[] volume = new vtkVolume(); volume.SetMapper((vtkAbstractVolumeMapper)volumeMapper); volume.SetProperty((vtkVolumeProperty)volumeProperty); ren1.AddVolume((vtkProp)volume); //ren1 AddActor contourActor[] ren1.AddActor((vtkProp)boundsActor); //#####################################################################[] Sphere = new vtkSphereSource(); Sphere.SetCenter((double)0, (double)0, (double)0); Sphere.SetRadius((double)1); Sphere.SetThetaResolution((int)16); Sphere.SetStartTheta((double)0); Sphere.SetEndTheta((double)360); Sphere.SetPhiResolution((int)16); Sphere.SetStartPhi((double)0); Sphere.SetEndPhi((double)180); Glyph = new vtkGlyph3D(); Glyph.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); Glyph.SetOrient((int)1); Glyph.SetColorMode((int)1); //Glyph ScalingOn[] Glyph.SetScaleMode((int)2); Glyph.SetScaleFactor((double).6); Glyph.SetSourceConnection(Sphere.GetOutputPort()); AtomsMapper = vtkPolyDataMapper.New(); AtomsMapper.SetInputConnection((vtkAlgorithmOutput)Glyph.GetOutputPort()); AtomsMapper.SetImmediateModeRendering((int)1); AtomsMapper.UseLookupTableScalarRangeOff(); AtomsMapper.SetScalarVisibility((int)1); AtomsMapper.SetScalarModeToDefault(); Atoms = new vtkActor(); Atoms.SetMapper((vtkMapper)AtomsMapper); Atoms.GetProperty().SetRepresentationToSurface(); Atoms.GetProperty().SetInterpolationToGouraud(); Atoms.GetProperty().SetAmbient((double)0.15); Atoms.GetProperty().SetDiffuse((double)0.85); Atoms.GetProperty().SetSpecular((double)0.1); Atoms.GetProperty().SetSpecularPower((double)100); Atoms.GetProperty().SetSpecularColor((double)1, (double)1, (double)1); Atoms.GetProperty().SetColor((double)1, (double)1, (double)1); Tube = new vtkTubeFilter(); Tube.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); Tube.SetNumberOfSides((int)16); Tube.SetCapping((int)0); Tube.SetRadius((double)0.2); Tube.SetVaryRadius((int)0); Tube.SetRadiusFactor((double)10); BondsMapper = vtkPolyDataMapper.New(); BondsMapper.SetInputConnection((vtkAlgorithmOutput)Tube.GetOutputPort()); BondsMapper.SetImmediateModeRendering((int)1); BondsMapper.UseLookupTableScalarRangeOff(); BondsMapper.SetScalarVisibility((int)1); BondsMapper.SetScalarModeToDefault(); Bonds = new vtkActor(); Bonds.SetMapper((vtkMapper)BondsMapper); Bonds.GetProperty().SetRepresentationToSurface(); Bonds.GetProperty().SetInterpolationToGouraud(); Bonds.GetProperty().SetAmbient((double)0.15); Bonds.GetProperty().SetDiffuse((double)0.85); Bonds.GetProperty().SetSpecular((double)0.1); Bonds.GetProperty().SetSpecularPower((double)100); Bonds.GetProperty().SetSpecularColor((double)1, (double)1, (double)1); Bonds.GetProperty().SetColor((double)1, (double)1, (double)1); ren1.AddActor((vtkProp)Bonds); ren1.AddActor((vtkProp)Atoms); //###################################################[] ren1.SetBackground((double)1, (double)1, (double)1); ren1.ResetCamera(); renWin.Render(); //method moved renWin.AbortCheckEvt += new Kitware.VTK.vtkObject.vtkObjectEventHandler(TkCheckAbort_Command.Execute); iren.Initialize(); //deleteAllVTKObjects(); }
///<summary> A Set Method for Static Variables </summary> public static void SetGlyph(vtkGlyph3D toSet) { Glyph = toSet; }
///<summary> A Set Method for Static Variables </summary> public static void SetglyphPoints(vtkGlyph3D toSet) { glyphPoints = toSet; }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVclosedSplines(String [] argv) { //Prefix Content is: "" // get the interactor ui[] // Now create the RenderWindow, Renderer and Interactor[] //[] ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); math = new vtkMath(); numberOfInputPoints = 30; aKSplineX = new vtkKochanekSpline(); aKSplineX.ClosedOn(); aKSplineY = new vtkKochanekSpline(); aKSplineY.ClosedOn(); aKSplineZ = new vtkKochanekSpline(); aKSplineZ.ClosedOn(); aCSplineX = new vtkCardinalSpline(); aCSplineX.ClosedOn(); aCSplineY = new vtkCardinalSpline(); aCSplineY.ClosedOn(); aCSplineZ = new vtkCardinalSpline(); aCSplineZ.ClosedOn(); // add some points[] inputPoints = new vtkPoints(); x = -1.0; y = -1.0; z = 0.0; aKSplineX.AddPoint((double)0, (double)x); aKSplineY.AddPoint((double)0, (double)y); aKSplineZ.AddPoint((double)0, (double)z); aCSplineX.AddPoint((double)0, (double)x); aCSplineY.AddPoint((double)0, (double)y); aCSplineZ.AddPoint((double)0, (double)z); inputPoints.InsertPoint((int)0, (double)x, (double)y, (double)z); x = 1.0; y = -1.0; z = 0.0; aKSplineX.AddPoint((double)1, (double)x); aKSplineY.AddPoint((double)1, (double)y); aKSplineZ.AddPoint((double)1, (double)z); aCSplineX.AddPoint((double)1, (double)x); aCSplineY.AddPoint((double)1, (double)y); aCSplineZ.AddPoint((double)1, (double)z); inputPoints.InsertPoint((int)1, (double)x, (double)y, (double)z); x = 1.0; y = 1.0; z = 0.0; aKSplineX.AddPoint((double)2, (double)x); aKSplineY.AddPoint((double)2, (double)y); aKSplineZ.AddPoint((double)2, (double)z); aCSplineX.AddPoint((double)2, (double)x); aCSplineY.AddPoint((double)2, (double)y); aCSplineZ.AddPoint((double)2, (double)z); inputPoints.InsertPoint((int)2, (double)x, (double)y, (double)z); x = -1.0; y = 1.0; z = 0.0; aKSplineX.AddPoint((double)3, (double)x); aKSplineY.AddPoint((double)3, (double)y); aKSplineZ.AddPoint((double)3, (double)z); aCSplineX.AddPoint((double)3, (double)x); aCSplineY.AddPoint((double)3, (double)y); aCSplineZ.AddPoint((double)3, (double)z); inputPoints.InsertPoint((int)3, (double)x, (double)y, (double)z); inputData = new vtkPolyData(); inputData.SetPoints((vtkPoints)inputPoints); balls = new vtkSphereSource(); balls.SetRadius((double).04); balls.SetPhiResolution((int)10); balls.SetThetaResolution((int)10); balls.Update(); glyphPoints = new vtkGlyph3D(); glyphPoints.SetInputData((vtkDataObject)inputData); glyphPoints.SetSourceData((vtkPolyData)balls.GetOutput()); glyphMapper = vtkPolyDataMapper.New(); glyphMapper.SetInputConnection((vtkAlgorithmOutput)glyphPoints.GetOutputPort()); glyph = new vtkActor(); glyph.SetMapper((vtkMapper)glyphMapper); glyph.GetProperty().SetDiffuseColor((double)1.0000, 0.3882, 0.2784); glyph.GetProperty().SetSpecular((double).3); glyph.GetProperty().SetSpecularPower((double)30); ren1.AddActor((vtkProp)glyph); Kpoints = new vtkPoints(); Cpoints = new vtkPoints(); profileKData = new vtkPolyData(); profileCData = new vtkPolyData(); numberOfInputPoints = 5; numberOfOutputPoints = 100; offset = 1.0; //method moved fit(); lines = new vtkCellArray(); lines.InsertNextCell((int)numberOfOutputPoints); i = 0; while ((i) < numberOfOutputPoints) { lines.InsertCellPoint((int)i); i = i + 1; } profileKData.SetPoints((vtkPoints)Kpoints); profileKData.SetLines((vtkCellArray)lines); profileCData.SetPoints((vtkPoints)Cpoints); profileCData.SetLines((vtkCellArray)lines); profileKTubes = new vtkTubeFilter(); profileKTubes.SetNumberOfSides((int)8); profileKTubes.SetInputData((vtkDataObject)profileKData); profileKTubes.SetRadius((double).01); profileKMapper = vtkPolyDataMapper.New(); profileKMapper.SetInputConnection((vtkAlgorithmOutput)profileKTubes.GetOutputPort()); profileK = new vtkActor(); profileK.SetMapper((vtkMapper)profileKMapper); profileK.GetProperty().SetDiffuseColor((double)0.8900, 0.8100, 0.3400); profileK.GetProperty().SetSpecular((double).3); profileK.GetProperty().SetSpecularPower((double)30); ren1.AddActor((vtkProp)profileK); profileCTubes = new vtkTubeFilter(); profileCTubes.SetNumberOfSides((int)8); profileCTubes.SetInputData((vtkDataObject)profileCData); profileCTubes.SetRadius((double).01); profileCMapper = vtkPolyDataMapper.New(); profileCMapper.SetInputConnection((vtkAlgorithmOutput)profileCTubes.GetOutputPort()); profileC = new vtkActor(); profileC.SetMapper((vtkMapper)profileCMapper); profileC.GetProperty().SetDiffuseColor((double)0.2000, 0.6300, 0.7900); profileC.GetProperty().SetSpecular((double).3); profileC.GetProperty().SetSpecularPower((double)30); ren1.AddActor((vtkProp)profileC); ren1.ResetCamera(); ren1.GetActiveCamera().Dolly((double)1.5); ren1.ResetCameraClippingRange(); renWin.SetSize((int)300, (int)300); // render the image[] //[] iren.Initialize(); // prevent the tk window from showing up then start the event loop[] //method moved //method moved //method moved //method moved //method moved //method moved //deleteAllVTKObjects(); }
public void CreateViewport(Grid Window) { WindowsFormsHost VTK_Window = new WindowsFormsHost(); // Create Windows Forms Host for VTK Window RenWinControl = new RenderWindowControl(); // Initialize VTK Renderer Window Control // Clear input Window and add new host Window.Children.Clear(); Window.Children.Add(VTK_Window); VTK_Window.Child = RenWinControl; // Create Render Window renderWindow = RenWinControl.RenderWindow; // Initialize Interactor Inter = vtkRenderWindowInteractor.New(); Inter.LeftButtonPressEvt += new vtkObject.vtkObjectEventHandler(SelectPointClick); Inter.RightButtonPressEvt += new vtkObject.vtkObjectEventHandler(UnselectPointClick); renderWindow.SetInteractor(Inter); Inter.Initialize(); InterStyleTrack = vtkInteractorStyleTrackballCamera.New(); //Inter.SetInteractorStyle(InterStyleTrack); InterStylePick = vtkInteractorStyleRubberBandPick.New(); Inter.SetInteractorStyle(InterStylePick); // Initialize View Viewport = renderWindow.GetRenderers().GetFirstRenderer(); Viewport.RemoveAllViewProps(); CreateViewportBorder(Viewport, new double[3] { 128.0, 128.0, 128.0 }); // Set default background color Viewport.GradientBackgroundOn(); Viewport.SetBackground(163.0 / 255.0, 163.0 / 255.0, 163.0 / 255.0); Viewport.SetBackground2(45.0 / 255.0, 85.0 / 255.0, 125.0 / 255.0); // Other properties Viewport.GetActiveCamera().ParallelProjectionOn(); // Initialize Selection objects AppendFaces = vtkAppendPolyData.New(); Faces = vtkPolyData.New(); SelectionMode = false; SelectionSize = 0.1; SelectionPoints = vtkPoints.New(); SelectionActor = vtkActor.New(); SelectionPolyData = vtkPolyData.New(); SelectionPolyData.SetPoints(SelectionPoints); SelectionSphere = vtkSphereSource.New(); SelectionSphere.SetPhiResolution(12); SelectionSphere.SetThetaResolution(12); SelectionSphere.SetRadius(SelectionSize); SelectionGlyph = vtkGlyph3D.New(); SelectionGlyph.SetInput(SelectionPolyData); SelectionGlyph.SetSourceConnection(SelectionSphere.GetOutputPort()); SelectionMapper = vtkPolyDataMapper.New(); SelectionMapper.SetInputConnection(SelectionGlyph.GetOutputPort()); SelectionActor.SetMapper(SelectionMapper); SelectionActor.GetProperty().SetColor(1, 1, 1); SelectionActor.VisibilityOn(); Viewport.AddActor(SelectionActor); // Create new Properties and Objects CreateColorMap(); CreateScalarBar(); CreateAxes(); CreateSlider(); CreateClipPlane(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVTestCellDerivs(String [] argv) { //Prefix Content is: "" // Demonstrates vtkCellDerivatives for all cell types[] //[] // get the interactor ui[] ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); // create a scene with one of each cell type[] // Voxel[] voxelPoints = new vtkPoints(); voxelPoints.SetNumberOfPoints((int)8); voxelPoints.InsertPoint((int)0,(double)0,(double)0,(double)0); voxelPoints.InsertPoint((int)1,(double)1,(double)0,(double)0); voxelPoints.InsertPoint((int)2,(double)0,(double)1,(double)0); voxelPoints.InsertPoint((int)3,(double)1,(double)1,(double)0); voxelPoints.InsertPoint((int)4,(double)0,(double)0,(double)1); voxelPoints.InsertPoint((int)5,(double)1,(double)0,(double)1); voxelPoints.InsertPoint((int)6,(double)0,(double)1,(double)1); voxelPoints.InsertPoint((int)7,(double)1,(double)1,(double)1); aVoxel = new vtkVoxel(); aVoxel.GetPointIds().SetId((int)0,(int)0); aVoxel.GetPointIds().SetId((int)1,(int)1); aVoxel.GetPointIds().SetId((int)2,(int)2); aVoxel.GetPointIds().SetId((int)3,(int)3); aVoxel.GetPointIds().SetId((int)4,(int)4); aVoxel.GetPointIds().SetId((int)5,(int)5); aVoxel.GetPointIds().SetId((int)6,(int)6); aVoxel.GetPointIds().SetId((int)7,(int)7); aVoxelGrid = new vtkUnstructuredGrid(); aVoxelGrid.Allocate((int)1,(int)1); aVoxelGrid.InsertNextCell((int)aVoxel.GetCellType(),(vtkIdList)aVoxel.GetPointIds()); aVoxelGrid.SetPoints((vtkPoints)voxelPoints); aVoxelMapper = new vtkDataSetMapper(); aVoxelMapper.SetInput((vtkDataSet)aVoxelGrid); aVoxelActor = new vtkActor(); aVoxelActor.SetMapper((vtkMapper)aVoxelMapper); aVoxelActor.GetProperty().BackfaceCullingOn(); // Hexahedron[] hexahedronPoints = new vtkPoints(); hexahedronPoints.SetNumberOfPoints((int)8); hexahedronPoints.InsertPoint((int)0,(double)0,(double)0,(double)0); hexahedronPoints.InsertPoint((int)1,(double)1,(double)0,(double)0); hexahedronPoints.InsertPoint((int)2,(double)1,(double)1,(double)0); hexahedronPoints.InsertPoint((int)3,(double)0,(double)1,(double)0); hexahedronPoints.InsertPoint((int)4,(double)0,(double)0,(double)1); hexahedronPoints.InsertPoint((int)5,(double)1,(double)0,(double)1); hexahedronPoints.InsertPoint((int)6,(double)1,(double)1,(double)1); hexahedronPoints.InsertPoint((int)7,(double)0,(double)1,(double)1); aHexahedron = new vtkHexahedron(); aHexahedron.GetPointIds().SetId((int)0,(int)0); aHexahedron.GetPointIds().SetId((int)1,(int)1); aHexahedron.GetPointIds().SetId((int)2,(int)2); aHexahedron.GetPointIds().SetId((int)3,(int)3); aHexahedron.GetPointIds().SetId((int)4,(int)4); aHexahedron.GetPointIds().SetId((int)5,(int)5); aHexahedron.GetPointIds().SetId((int)6,(int)6); aHexahedron.GetPointIds().SetId((int)7,(int)7); aHexahedronGrid = new vtkUnstructuredGrid(); aHexahedronGrid.Allocate((int)1,(int)1); aHexahedronGrid.InsertNextCell((int)aHexahedron.GetCellType(),(vtkIdList)aHexahedron.GetPointIds()); aHexahedronGrid.SetPoints((vtkPoints)hexahedronPoints); aHexahedronMapper = new vtkDataSetMapper(); aHexahedronMapper.SetInput((vtkDataSet)aHexahedronGrid); aHexahedronActor = new vtkActor(); aHexahedronActor.SetMapper((vtkMapper)aHexahedronMapper); aHexahedronActor.AddPosition((double)2,(double)0,(double)0); aHexahedronActor.GetProperty().BackfaceCullingOn(); // Tetra[] tetraPoints = new vtkPoints(); tetraPoints.SetNumberOfPoints((int)4); tetraPoints.InsertPoint((int)0,(double)0,(double)0,(double)0); tetraPoints.InsertPoint((int)1,(double)1,(double)0,(double)0); tetraPoints.InsertPoint((int)2,(double)0,(double)1,(double)0); tetraPoints.InsertPoint((int)3,(double)1,(double)1,(double)1); aTetra = new vtkTetra(); aTetra.GetPointIds().SetId((int)0,(int)0); aTetra.GetPointIds().SetId((int)1,(int)1); aTetra.GetPointIds().SetId((int)2,(int)2); aTetra.GetPointIds().SetId((int)3,(int)3); aTetraGrid = new vtkUnstructuredGrid(); aTetraGrid.Allocate((int)1,(int)1); aTetraGrid.InsertNextCell((int)aTetra.GetCellType(),(vtkIdList)aTetra.GetPointIds()); aTetraGrid.SetPoints((vtkPoints)tetraPoints); aTetraMapper = new vtkDataSetMapper(); aTetraMapper.SetInput((vtkDataSet)aTetraGrid); aTetraActor = new vtkActor(); aTetraActor.SetMapper((vtkMapper)aTetraMapper); aTetraActor.AddPosition((double)4,(double)0,(double)0); aTetraActor.GetProperty().BackfaceCullingOn(); // Wedge[] wedgePoints = new vtkPoints(); wedgePoints.SetNumberOfPoints((int)6); wedgePoints.InsertPoint((int)0,(double)0,(double)1,(double)0); wedgePoints.InsertPoint((int)1,(double)0,(double)0,(double)0); wedgePoints.InsertPoint((int)2,(double)0,(double).5,(double).5); wedgePoints.InsertPoint((int)3,(double)1,(double)1,(double)0); wedgePoints.InsertPoint((int)4,(double)1,(double)0,(double)0); wedgePoints.InsertPoint((int)5,(double)1,(double).5,(double).5); aWedge = new vtkWedge(); aWedge.GetPointIds().SetId((int)0,(int)0); aWedge.GetPointIds().SetId((int)1,(int)1); aWedge.GetPointIds().SetId((int)2,(int)2); aWedge.GetPointIds().SetId((int)3,(int)3); aWedge.GetPointIds().SetId((int)4,(int)4); aWedge.GetPointIds().SetId((int)5,(int)5); aWedgeGrid = new vtkUnstructuredGrid(); aWedgeGrid.Allocate((int)1,(int)1); aWedgeGrid.InsertNextCell((int)aWedge.GetCellType(),(vtkIdList)aWedge.GetPointIds()); aWedgeGrid.SetPoints((vtkPoints)wedgePoints); aWedgeMapper = new vtkDataSetMapper(); aWedgeMapper.SetInput((vtkDataSet)aWedgeGrid); aWedgeActor = new vtkActor(); aWedgeActor.SetMapper((vtkMapper)aWedgeMapper); aWedgeActor.AddPosition((double)6,(double)0,(double)0); aWedgeActor.GetProperty().BackfaceCullingOn(); // Pyramid[] pyramidPoints = new vtkPoints(); pyramidPoints.SetNumberOfPoints((int)5); pyramidPoints.InsertPoint((int)0,(double)0,(double)0,(double)0); pyramidPoints.InsertPoint((int)1,(double)1,(double)0,(double)0); pyramidPoints.InsertPoint((int)2,(double)1,(double)1,(double)0); pyramidPoints.InsertPoint((int)3,(double)0,(double)1,(double)0); pyramidPoints.InsertPoint((int)4,(double).5,(double).5,(double)1); aPyramid = new vtkPyramid(); aPyramid.GetPointIds().SetId((int)0,(int)0); aPyramid.GetPointIds().SetId((int)1,(int)1); aPyramid.GetPointIds().SetId((int)2,(int)2); aPyramid.GetPointIds().SetId((int)3,(int)3); aPyramid.GetPointIds().SetId((int)4,(int)4); aPyramidGrid = new vtkUnstructuredGrid(); aPyramidGrid.Allocate((int)1,(int)1); aPyramidGrid.InsertNextCell((int)aPyramid.GetCellType(),(vtkIdList)aPyramid.GetPointIds()); aPyramidGrid.SetPoints((vtkPoints)pyramidPoints); aPyramidMapper = new vtkDataSetMapper(); aPyramidMapper.SetInput((vtkDataSet)aPyramidGrid); aPyramidActor = new vtkActor(); aPyramidActor.SetMapper((vtkMapper)aPyramidMapper); aPyramidActor.AddPosition((double)8,(double)0,(double)0); aPyramidActor.GetProperty().BackfaceCullingOn(); // Pixel[] pixelPoints = new vtkPoints(); pixelPoints.SetNumberOfPoints((int)4); pixelPoints.InsertPoint((int)0,(double)0,(double)0,(double)0); pixelPoints.InsertPoint((int)1,(double)1,(double)0,(double)0); pixelPoints.InsertPoint((int)2,(double)0,(double)1,(double)0); pixelPoints.InsertPoint((int)3,(double)1,(double)1,(double)0); aPixel = new vtkPixel(); aPixel.GetPointIds().SetId((int)0,(int)0); aPixel.GetPointIds().SetId((int)1,(int)1); aPixel.GetPointIds().SetId((int)2,(int)2); aPixel.GetPointIds().SetId((int)3,(int)3); aPixelGrid = new vtkUnstructuredGrid(); aPixelGrid.Allocate((int)1,(int)1); aPixelGrid.InsertNextCell((int)aPixel.GetCellType(),(vtkIdList)aPixel.GetPointIds()); aPixelGrid.SetPoints((vtkPoints)pixelPoints); aPixelMapper = new vtkDataSetMapper(); aPixelMapper.SetInput((vtkDataSet)aPixelGrid); aPixelActor = new vtkActor(); aPixelActor.SetMapper((vtkMapper)aPixelMapper); aPixelActor.AddPosition((double)0,(double)0,(double)2); aPixelActor.GetProperty().BackfaceCullingOn(); // Quad[] quadPoints = new vtkPoints(); quadPoints.SetNumberOfPoints((int)4); quadPoints.InsertPoint((int)0,(double)0,(double)0,(double)0); quadPoints.InsertPoint((int)1,(double)1,(double)0,(double)0); quadPoints.InsertPoint((int)2,(double)1,(double)1,(double)0); quadPoints.InsertPoint((int)3,(double)0,(double)1,(double)0); aQuad = new vtkQuad(); aQuad.GetPointIds().SetId((int)0,(int)0); aQuad.GetPointIds().SetId((int)1,(int)1); aQuad.GetPointIds().SetId((int)2,(int)2); aQuad.GetPointIds().SetId((int)3,(int)3); aQuadGrid = new vtkUnstructuredGrid(); aQuadGrid.Allocate((int)1,(int)1); aQuadGrid.InsertNextCell((int)aQuad.GetCellType(),(vtkIdList)aQuad.GetPointIds()); aQuadGrid.SetPoints((vtkPoints)quadPoints); aQuadMapper = new vtkDataSetMapper(); aQuadMapper.SetInput((vtkDataSet)aQuadGrid); aQuadActor = new vtkActor(); aQuadActor.SetMapper((vtkMapper)aQuadMapper); aQuadActor.AddPosition((double)2,(double)0,(double)2); aQuadActor.GetProperty().BackfaceCullingOn(); // Triangle[] trianglePoints = new vtkPoints(); trianglePoints.SetNumberOfPoints((int)3); trianglePoints.InsertPoint((int)0,(double)0,(double)0,(double)0); trianglePoints.InsertPoint((int)1,(double)1,(double)0,(double)0); trianglePoints.InsertPoint((int)2,(double).5,(double).5,(double)0); triangleTCoords = new vtkFloatArray(); triangleTCoords.SetNumberOfComponents((int)2); triangleTCoords.SetNumberOfTuples((int)3); triangleTCoords.InsertTuple2((int)0,(double)1,(double)1); triangleTCoords.InsertTuple2((int)1,(double)2,(double)2); triangleTCoords.InsertTuple2((int)2,(double)3,(double)3); aTriangle = new vtkTriangle(); aTriangle.GetPointIds().SetId((int)0,(int)0); aTriangle.GetPointIds().SetId((int)1,(int)1); aTriangle.GetPointIds().SetId((int)2,(int)2); aTriangleGrid = new vtkUnstructuredGrid(); aTriangleGrid.Allocate((int)1,(int)1); aTriangleGrid.InsertNextCell((int)aTriangle.GetCellType(),(vtkIdList)aTriangle.GetPointIds()); aTriangleGrid.SetPoints((vtkPoints)trianglePoints); aTriangleGrid.GetPointData().SetTCoords((vtkDataArray)triangleTCoords); aTriangleMapper = new vtkDataSetMapper(); aTriangleMapper.SetInput((vtkDataSet)aTriangleGrid); aTriangleActor = new vtkActor(); aTriangleActor.SetMapper((vtkMapper)aTriangleMapper); aTriangleActor.AddPosition((double)4,(double)0,(double)2); aTriangleActor.GetProperty().BackfaceCullingOn(); // Polygon[] polygonPoints = new vtkPoints(); polygonPoints.SetNumberOfPoints((int)4); polygonPoints.InsertPoint((int)0,(double)0,(double)0,(double)0); polygonPoints.InsertPoint((int)1,(double)1,(double)0,(double)0); polygonPoints.InsertPoint((int)2,(double)1,(double)1,(double)0); polygonPoints.InsertPoint((int)3,(double)0,(double)1,(double)0); aPolygon = new vtkPolygon(); aPolygon.GetPointIds().SetNumberOfIds((int)4); aPolygon.GetPointIds().SetId((int)0,(int)0); aPolygon.GetPointIds().SetId((int)1,(int)1); aPolygon.GetPointIds().SetId((int)2,(int)2); aPolygon.GetPointIds().SetId((int)3,(int)3); aPolygonGrid = new vtkUnstructuredGrid(); aPolygonGrid.Allocate((int)1,(int)1); aPolygonGrid.InsertNextCell((int)aPolygon.GetCellType(),(vtkIdList)aPolygon.GetPointIds()); aPolygonGrid.SetPoints((vtkPoints)polygonPoints); aPolygonMapper = new vtkDataSetMapper(); aPolygonMapper.SetInput((vtkDataSet)aPolygonGrid); aPolygonActor = new vtkActor(); aPolygonActor.SetMapper((vtkMapper)aPolygonMapper); aPolygonActor.AddPosition((double)6,(double)0,(double)2); aPolygonActor.GetProperty().BackfaceCullingOn(); // Triangle strip[] triangleStripPoints = new vtkPoints(); triangleStripPoints.SetNumberOfPoints((int)5); triangleStripPoints.InsertPoint((int)0,(double)0,(double)1,(double)0); triangleStripPoints.InsertPoint((int)1,(double)0,(double)0,(double)0); triangleStripPoints.InsertPoint((int)2,(double)1,(double)1,(double)0); triangleStripPoints.InsertPoint((int)3,(double)1,(double)0,(double)0); triangleStripPoints.InsertPoint((int)4,(double)2,(double)1,(double)0); triangleStripTCoords = new vtkFloatArray(); triangleStripTCoords.SetNumberOfComponents((int)2); triangleStripTCoords.SetNumberOfTuples((int)3); triangleStripTCoords.InsertTuple2((int)0,(double)1,(double)1); triangleStripTCoords.InsertTuple2((int)1,(double)2,(double)2); triangleStripTCoords.InsertTuple2((int)2,(double)3,(double)3); triangleStripTCoords.InsertTuple2((int)3,(double)4,(double)4); triangleStripTCoords.InsertTuple2((int)4,(double)5,(double)5); aTriangleStrip = new vtkTriangleStrip(); aTriangleStrip.GetPointIds().SetNumberOfIds((int)5); aTriangleStrip.GetPointIds().SetId((int)0,(int)0); aTriangleStrip.GetPointIds().SetId((int)1,(int)1); aTriangleStrip.GetPointIds().SetId((int)2,(int)2); aTriangleStrip.GetPointIds().SetId((int)3,(int)3); aTriangleStrip.GetPointIds().SetId((int)4,(int)4); aTriangleStripGrid = new vtkUnstructuredGrid(); aTriangleStripGrid.Allocate((int)1,(int)1); aTriangleStripGrid.InsertNextCell((int)aTriangleStrip.GetCellType(),(vtkIdList)aTriangleStrip.GetPointIds()); aTriangleStripGrid.SetPoints((vtkPoints)triangleStripPoints); aTriangleStripGrid.GetPointData().SetTCoords((vtkDataArray)triangleStripTCoords); aTriangleStripMapper = new vtkDataSetMapper(); aTriangleStripMapper.SetInput((vtkDataSet)aTriangleStripGrid); aTriangleStripActor = new vtkActor(); aTriangleStripActor.SetMapper((vtkMapper)aTriangleStripMapper); aTriangleStripActor.AddPosition((double)8,(double)0,(double)2); aTriangleStripActor.GetProperty().BackfaceCullingOn(); // Line[] linePoints = new vtkPoints(); linePoints.SetNumberOfPoints((int)2); linePoints.InsertPoint((int)0,(double)0,(double)0,(double)0); linePoints.InsertPoint((int)1,(double)1,(double)1,(double)0); aLine = new vtkLine(); aLine.GetPointIds().SetId((int)0,(int)0); aLine.GetPointIds().SetId((int)1,(int)1); aLineGrid = new vtkUnstructuredGrid(); aLineGrid.Allocate((int)1,(int)1); aLineGrid.InsertNextCell((int)aLine.GetCellType(),(vtkIdList)aLine.GetPointIds()); aLineGrid.SetPoints((vtkPoints)linePoints); aLineMapper = new vtkDataSetMapper(); aLineMapper.SetInput((vtkDataSet)aLineGrid); aLineActor = new vtkActor(); aLineActor.SetMapper((vtkMapper)aLineMapper); aLineActor.AddPosition((double)0,(double)0,(double)4); aLineActor.GetProperty().BackfaceCullingOn(); // Polyline[] polyLinePoints = new vtkPoints(); polyLinePoints.SetNumberOfPoints((int)3); polyLinePoints.InsertPoint((int)0,(double)0,(double)0,(double)0); polyLinePoints.InsertPoint((int)1,(double)1,(double)1,(double)0); polyLinePoints.InsertPoint((int)2,(double)1,(double)0,(double)0); aPolyLine = new vtkPolyLine(); aPolyLine.GetPointIds().SetNumberOfIds((int)3); aPolyLine.GetPointIds().SetId((int)0,(int)0); aPolyLine.GetPointIds().SetId((int)1,(int)1); aPolyLine.GetPointIds().SetId((int)2,(int)2); aPolyLineGrid = new vtkUnstructuredGrid(); aPolyLineGrid.Allocate((int)1,(int)1); aPolyLineGrid.InsertNextCell((int)aPolyLine.GetCellType(),(vtkIdList)aPolyLine.GetPointIds()); aPolyLineGrid.SetPoints((vtkPoints)polyLinePoints); aPolyLineMapper = new vtkDataSetMapper(); aPolyLineMapper.SetInput((vtkDataSet)aPolyLineGrid); aPolyLineActor = new vtkActor(); aPolyLineActor.SetMapper((vtkMapper)aPolyLineMapper); aPolyLineActor.AddPosition((double)2,(double)0,(double)4); aPolyLineActor.GetProperty().BackfaceCullingOn(); // Vertex[] vertexPoints = new vtkPoints(); vertexPoints.SetNumberOfPoints((int)1); vertexPoints.InsertPoint((int)0,(double)0,(double)0,(double)0); aVertex = new vtkVertex(); aVertex.GetPointIds().SetId((int)0,(int)0); aVertexGrid = new vtkUnstructuredGrid(); aVertexGrid.Allocate((int)1,(int)1); aVertexGrid.InsertNextCell((int)aVertex.GetCellType(),(vtkIdList)aVertex.GetPointIds()); aVertexGrid.SetPoints((vtkPoints)vertexPoints); aVertexMapper = new vtkDataSetMapper(); aVertexMapper.SetInput((vtkDataSet)aVertexGrid); aVertexActor = new vtkActor(); aVertexActor.SetMapper((vtkMapper)aVertexMapper); aVertexActor.AddPosition((double)0,(double)0,(double)6); aVertexActor.GetProperty().BackfaceCullingOn(); // Polyvertex[] polyVertexPoints = new vtkPoints(); polyVertexPoints.SetNumberOfPoints((int)3); polyVertexPoints.InsertPoint((int)0,(double)0,(double)0,(double)0); polyVertexPoints.InsertPoint((int)1,(double)1,(double)0,(double)0); polyVertexPoints.InsertPoint((int)2,(double)1,(double)1,(double)0); aPolyVertex = new vtkPolyVertex(); aPolyVertex.GetPointIds().SetNumberOfIds((int)3); aPolyVertex.GetPointIds().SetId((int)0,(int)0); aPolyVertex.GetPointIds().SetId((int)1,(int)1); aPolyVertex.GetPointIds().SetId((int)2,(int)2); aPolyVertexGrid = new vtkUnstructuredGrid(); aPolyVertexGrid.Allocate((int)1,(int)1); aPolyVertexGrid.InsertNextCell((int)aPolyVertex.GetCellType(),(vtkIdList)aPolyVertex.GetPointIds()); aPolyVertexGrid.SetPoints((vtkPoints)polyVertexPoints); aPolyVertexMapper = new vtkDataSetMapper(); aPolyVertexMapper.SetInput((vtkDataSet)aPolyVertexGrid); aPolyVertexActor = new vtkActor(); aPolyVertexActor.SetMapper((vtkMapper)aPolyVertexMapper); aPolyVertexActor.AddPosition((double)2,(double)0,(double)6); aPolyVertexActor.GetProperty().BackfaceCullingOn(); // Pentagonal prism[] pentaPoints = new vtkPoints(); pentaPoints.SetNumberOfPoints((int)10); pentaPoints.InsertPoint((int)0,(double)0.25,(double)0.0,(double)0.0); pentaPoints.InsertPoint((int)1,(double)0.75,(double)0.0,(double)0.0); pentaPoints.InsertPoint((int)2,(double)1.0,(double)0.5,(double)0.0); pentaPoints.InsertPoint((int)3,(double)0.5,(double)1.0,(double)0.0); pentaPoints.InsertPoint((int)4,(double)0.0,(double)0.5,(double)0.0); pentaPoints.InsertPoint((int)5,(double)0.25,(double)0.0,(double)1.0); pentaPoints.InsertPoint((int)6,(double)0.75,(double)0.0,(double)1.0); pentaPoints.InsertPoint((int)7,(double)1.0,(double)0.5,(double)1.0); pentaPoints.InsertPoint((int)8,(double)0.5,(double)1.0,(double)1.0); pentaPoints.InsertPoint((int)9,(double)0.0,(double)0.5,(double)1.0); aPenta = new vtkPentagonalPrism(); aPenta.GetPointIds().SetId((int)0,(int)0); aPenta.GetPointIds().SetId((int)1,(int)1); aPenta.GetPointIds().SetId((int)2,(int)2); aPenta.GetPointIds().SetId((int)3,(int)3); aPenta.GetPointIds().SetId((int)4,(int)4); aPenta.GetPointIds().SetId((int)5,(int)5); aPenta.GetPointIds().SetId((int)6,(int)6); aPenta.GetPointIds().SetId((int)7,(int)7); aPenta.GetPointIds().SetId((int)8,(int)8); aPenta.GetPointIds().SetId((int)9,(int)9); aPentaGrid = new vtkUnstructuredGrid(); aPentaGrid.Allocate((int)1,(int)1); aPentaGrid.InsertNextCell((int)aPenta.GetCellType(),(vtkIdList)aPenta.GetPointIds()); aPentaGrid.SetPoints((vtkPoints)pentaPoints); aPentaMapper = new vtkDataSetMapper(); aPentaMapper.SetInput((vtkDataSet)aPentaGrid); aPentaActor = new vtkActor(); aPentaActor.SetMapper((vtkMapper)aPentaMapper); aPentaActor.AddPosition((double)10,(double)0,(double)0); aPentaActor.GetProperty().BackfaceCullingOn(); // Hexagonal prism[] hexaPoints = new vtkPoints(); hexaPoints.SetNumberOfPoints((int)12); hexaPoints.InsertPoint((int)0,(double)0.0,(double)0.0,(double)0.0); hexaPoints.InsertPoint((int)1,(double)0.5,(double)0.0,(double)0.0); hexaPoints.InsertPoint((int)2,(double)1.0,(double)0.5,(double)0.0); hexaPoints.InsertPoint((int)3,(double)1.0,(double)1.0,(double)0.0); hexaPoints.InsertPoint((int)4,(double)0.5,(double)1.0,(double)0.0); hexaPoints.InsertPoint((int)5,(double)0.0,(double)0.5,(double)0.0); hexaPoints.InsertPoint((int)6,(double)0.0,(double)0.0,(double)1.0); hexaPoints.InsertPoint((int)7,(double)0.5,(double)0.0,(double)1.0); hexaPoints.InsertPoint((int)8,(double)1.0,(double)0.5,(double)1.0); hexaPoints.InsertPoint((int)9,(double)1.0,(double)1.0,(double)1.0); hexaPoints.InsertPoint((int)10,(double)0.5,(double)1.0,(double)1.0); hexaPoints.InsertPoint((int)11,(double)0.0,(double)0.5,(double)1.0); aHexa = new vtkHexagonalPrism(); aHexa.GetPointIds().SetId((int)0,(int)0); aHexa.GetPointIds().SetId((int)1,(int)1); aHexa.GetPointIds().SetId((int)2,(int)2); aHexa.GetPointIds().SetId((int)3,(int)3); aHexa.GetPointIds().SetId((int)4,(int)4); aHexa.GetPointIds().SetId((int)5,(int)5); aHexa.GetPointIds().SetId((int)6,(int)6); aHexa.GetPointIds().SetId((int)7,(int)7); aHexa.GetPointIds().SetId((int)8,(int)8); aHexa.GetPointIds().SetId((int)9,(int)9); aHexa.GetPointIds().SetId((int)10,(int)10); aHexa.GetPointIds().SetId((int)11,(int)11); aHexaGrid = new vtkUnstructuredGrid(); aHexaGrid.Allocate((int)1,(int)1); aHexaGrid.InsertNextCell((int)aHexa.GetCellType(),(vtkIdList)aHexa.GetPointIds()); aHexaGrid.SetPoints((vtkPoints)hexaPoints); aHexaMapper = new vtkDataSetMapper(); aHexaMapper.SetInput((vtkDataSet)aHexaGrid); aHexaActor = new vtkActor(); aHexaActor.SetMapper((vtkMapper)aHexaMapper); aHexaActor.AddPosition((double)12,(double)0,(double)0); aHexaActor.GetProperty().BackfaceCullingOn(); ren1.SetBackground((double)1,(double)1,(double)1); ren1.AddActor((vtkProp)aVoxelActor); aVoxelActor.GetProperty().SetDiffuseColor((double)1,(double)0,(double)0); ren1.AddActor((vtkProp)aHexahedronActor); aHexahedronActor.GetProperty().SetDiffuseColor((double)1,(double)1,(double)0); ren1.AddActor((vtkProp)aTetraActor); aTetraActor.GetProperty().SetDiffuseColor((double)0,(double)1,(double)0); ren1.AddActor((vtkProp)aWedgeActor); aWedgeActor.GetProperty().SetDiffuseColor((double)0,(double)1,(double)1); ren1.AddActor((vtkProp)aPyramidActor); aPyramidActor.GetProperty().SetDiffuseColor((double)1,(double)0,(double)1); ren1.AddActor((vtkProp)aPixelActor); aPixelActor.GetProperty().SetDiffuseColor((double)0,(double)1,(double)1); ren1.AddActor((vtkProp)aQuadActor); aQuadActor.GetProperty().SetDiffuseColor((double)1,(double)0,(double)1); ren1.AddActor((vtkProp)aTriangleActor); aTriangleActor.GetProperty().SetDiffuseColor((double).3,(double)1,(double).5); ren1.AddActor((vtkProp)aPolygonActor); aPolygonActor.GetProperty().SetDiffuseColor((double)1,(double).4,(double).5); ren1.AddActor((vtkProp)aTriangleStripActor); aTriangleStripActor.GetProperty().SetDiffuseColor((double).3,(double).7,(double)1); ren1.AddActor((vtkProp)aLineActor); aLineActor.GetProperty().SetDiffuseColor((double).2,(double)1,(double)1); ren1.AddActor((vtkProp)aPolyLineActor); aPolyLineActor.GetProperty().SetDiffuseColor((double)1,(double)1,(double)1); ren1.AddActor((vtkProp)aVertexActor); aVertexActor.GetProperty().SetDiffuseColor((double)1,(double)1,(double)1); ren1.AddActor((vtkProp)aPolyVertexActor); aPolyVertexActor.GetProperty().SetDiffuseColor((double)1,(double)1,(double)1); ren1.AddActor((vtkProp)aPentaActor); aPentaActor.GetProperty().SetDiffuseColor((double)1,(double)1,(double)0); ren1.AddActor((vtkProp)aHexaActor); aHexaActor.GetProperty().SetDiffuseColor((double)1,(double)1,(double)0); //[] // get the cell center of each type and put a glyph there[] //[] ball = new vtkSphereSource(); ball.SetRadius((double).2); bool tryWorked = false; aVoxelScalars = new vtkFloatArray(); N = aVoxelGrid.GetNumberOfPoints(); aVoxelScalar = new vtkFloatArray(); aVoxelScalar.SetNumberOfTuples((int)N); aVoxelScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aVoxelScalar.SetValue(i,0); i = i + 1; } aVoxelScalar.SetValue(0,4); aVoxelGrid.GetPointData().SetScalars(aVoxelScalar); aHexahedronScalars = new vtkFloatArray(); N = aHexahedronGrid.GetNumberOfPoints(); aHexahedronScalar = new vtkFloatArray(); aHexahedronScalar.SetNumberOfTuples((int)N); aHexahedronScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aHexahedronScalar.SetValue(i,0); i = i + 1; } aHexahedronScalar.SetValue(0,4); aHexahedronGrid.GetPointData().SetScalars(aHexahedronScalar); aWedgeScalars = new vtkFloatArray(); N = aWedgeGrid.GetNumberOfPoints(); aWedgeScalar = new vtkFloatArray(); aWedgeScalar.SetNumberOfTuples((int)N); aWedgeScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aWedgeScalar.SetValue(i,0); i = i + 1; } aWedgeScalar.SetValue(0,4); aWedgeGrid.GetPointData().SetScalars(aWedgeScalar); aPyramidScalars = new vtkFloatArray(); N = aPyramidGrid.GetNumberOfPoints(); aPyramidScalar = new vtkFloatArray(); aPyramidScalar.SetNumberOfTuples((int)N); aPyramidScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aPyramidScalar.SetValue(i,0); i = i + 1; } aPyramidScalar.SetValue(0,4); aPyramidGrid.GetPointData().SetScalars(aPyramidScalar); aTetraScalars = new vtkFloatArray(); N = aTetraGrid.GetNumberOfPoints(); aTetraScalar = new vtkFloatArray(); aTetraScalar.SetNumberOfTuples((int)N); aTetraScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aTetraScalar.SetValue(i,0); i = i + 1; } aTetraScalar.SetValue(0,4); aTetraGrid.GetPointData().SetScalars(aTetraScalar); aQuadScalars = new vtkFloatArray(); N = aQuadGrid.GetNumberOfPoints(); aQuadScalar = new vtkFloatArray(); aQuadScalar.SetNumberOfTuples((int)N); aQuadScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aQuadScalar.SetValue(i,0); i = i + 1; } aQuadScalar.SetValue(0,4); aQuadGrid.GetPointData().SetScalars(aQuadScalar); aTriangleScalars = new vtkFloatArray(); N = aTriangleGrid.GetNumberOfPoints(); aTriangleScalar = new vtkFloatArray(); aTriangleScalar.SetNumberOfTuples((int)N); aTriangleScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aTriangleScalar.SetValue(i,0); i = i + 1; } aTriangleScalar.SetValue(0,4); aTriangleGrid.GetPointData().SetScalars(aTriangleScalar); aTriangleStripScalars = new vtkFloatArray(); N = aTriangleStripGrid.GetNumberOfPoints(); aTriangleStripScalar = new vtkFloatArray(); aTriangleStripScalar.SetNumberOfTuples((int)N); aTriangleStripScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aTriangleStripScalar.SetValue(i,0); i = i + 1; } aTriangleStripScalar.SetValue(0,4); aTriangleStripGrid.GetPointData().SetScalars(aTriangleStripScalar); aLineScalars = new vtkFloatArray(); N = aLineGrid.GetNumberOfPoints(); aLineScalar = new vtkFloatArray(); aLineScalar.SetNumberOfTuples((int)N); aLineScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aLineScalar.SetValue(i,0); i = i + 1; } aLineScalar.SetValue(0,4); aLineGrid.GetPointData().SetScalars(aLineScalar); aPolyLineScalars = new vtkFloatArray(); N = aPolyLineGrid.GetNumberOfPoints(); aPolyLineScalar = new vtkFloatArray(); aPolyLineScalar.SetNumberOfTuples((int)N); aPolyLineScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aPolyLineScalar.SetValue(i,0); i = i + 1; } aPolyLineScalar.SetValue(0,4); aPolyLineGrid.GetPointData().SetScalars(aPolyLineScalar); aVertexScalars = new vtkFloatArray(); N = aVertexGrid.GetNumberOfPoints(); aVertexScalar = new vtkFloatArray(); aVertexScalar.SetNumberOfTuples((int)N); aVertexScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aVertexScalar.SetValue(i,0); i = i + 1; } aVertexScalar.SetValue(0,4); aVertexGrid.GetPointData().SetScalars(aVertexScalar); aPolyVertexScalars = new vtkFloatArray(); N = aPolyVertexGrid.GetNumberOfPoints(); aPolyVertexScalar = new vtkFloatArray(); aPolyVertexScalar.SetNumberOfTuples((int)N); aPolyVertexScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aPolyVertexScalar.SetValue(i,0); i = i + 1; } aPolyVertexScalar.SetValue(0,4); aPolyVertexGrid.GetPointData().SetScalars(aPolyVertexScalar); aPixelScalars = new vtkFloatArray(); N = aPixelGrid.GetNumberOfPoints(); aPixelScalar = new vtkFloatArray(); aPixelScalar.SetNumberOfTuples((int)N); aPixelScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aPixelScalar.SetValue(i,0); i = i + 1; } aPixelScalar.SetValue(0,4); aPixelGrid.GetPointData().SetScalars(aPixelScalar); aPolygonScalars = new vtkFloatArray(); N = aPolygonGrid.GetNumberOfPoints(); aPolygonScalar = new vtkFloatArray(); aPolygonScalar.SetNumberOfTuples((int)N); aPolygonScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aPolygonScalar.SetValue(i,0); i = i + 1; } aPolygonScalar.SetValue(0,4); aPolygonGrid.GetPointData().SetScalars(aPolygonScalar); aPentaScalars = new vtkFloatArray(); N = aPentaGrid.GetNumberOfPoints(); aPentaScalar = new vtkFloatArray(); aPentaScalar.SetNumberOfTuples((int)N); aPentaScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aPentaScalar.SetValue(i,0); i = i + 1; } aPentaScalar.SetValue(0,4); aPentaGrid.GetPointData().SetScalars(aPentaScalar); aHexaScalars = new vtkFloatArray(); N = aHexaGrid.GetNumberOfPoints(); aHexaScalar = new vtkFloatArray(); aHexaScalar.SetNumberOfTuples((int)N); aHexaScalar.SetNumberOfComponents(1); i = 0; while((i) < N) { aHexaScalar.SetValue(i,0); i = i + 1; } aHexaScalar.SetValue(0,4); aHexaGrid.GetPointData().SetScalars(aHexaScalar); // write to the temp directory if possible, otherwise use .[] dir = "."; dir = TclToCsScriptTestDriver.GetTempDirectory(); aVoxelderivs = new vtkCellDerivatives(); aVoxelderivs.SetInput(aVoxelGrid); aVoxelderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aVoxel"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aVoxelWriter = new vtkUnstructuredGridWriter(); aVoxelWriter.SetInputConnection(aVoxelderivs.GetOutputPort()); aVoxelWriter.SetFileName(FileName); aVoxelWriter.Write(); // delete the file[] File.Delete("FileName"); } aVoxelCenters = new vtkCellCenters(); aVoxelCenters.SetInputConnection(aVoxelderivs.GetOutputPort()); aVoxelCenters.VertexCellsOn(); aVoxelhog = new vtkHedgeHog(); aVoxelhog.SetInputConnection(aVoxelCenters.GetOutputPort()); aVoxelmapHog = vtkPolyDataMapper.New(); aVoxelmapHog.SetInputConnection(aVoxelhog.GetOutputPort()); aVoxelmapHog.SetScalarModeToUseCellData(); aVoxelmapHog.ScalarVisibilityOff(); aVoxelhogActor = new vtkActor(); aVoxelhogActor.SetMapper(aVoxelmapHog); aVoxelhogActor.GetProperty().SetColor(0,1,0); aVoxelGlyph3D = new vtkGlyph3D(); aVoxelGlyph3D.SetInputConnection(aVoxelCenters.GetOutputPort()); aVoxelGlyph3D.SetSource(ball.GetOutput()); aVoxelCentersMapper = vtkPolyDataMapper.New(); aVoxelCentersMapper.SetInputConnection(aVoxelGlyph3D.GetOutputPort()); aVoxelCentersActor = new vtkActor(); aVoxelCentersActor.SetMapper(aVoxelCentersMapper); aVoxelhogActor.SetPosition(aVoxelActor.GetPosition()[0],aVoxelActor.GetPosition()[1],aVoxelActor.GetPosition()[2]); ren1.AddActor((vtkProp)aVoxelhogActor); aVoxelhogActor.GetProperty().SetRepresentationToWireframe(); aHexahedronderivs = new vtkCellDerivatives(); aHexahedronderivs.SetInput(aHexahedronGrid); aHexahedronderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aHexahedron"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aHexahedronWriter = new vtkUnstructuredGridWriter(); aHexahedronWriter.SetInputConnection(aHexahedronderivs.GetOutputPort()); aHexahedronWriter.SetFileName(FileName); aHexahedronWriter.Write(); // delete the file[] File.Delete("FileName"); } aHexahedronCenters = new vtkCellCenters(); aHexahedronCenters.SetInputConnection(aHexahedronderivs.GetOutputPort()); aHexahedronCenters.VertexCellsOn(); aHexahedronhog = new vtkHedgeHog(); aHexahedronhog.SetInputConnection(aHexahedronCenters.GetOutputPort()); aHexahedronmapHog = vtkPolyDataMapper.New(); aHexahedronmapHog.SetInputConnection(aHexahedronhog.GetOutputPort()); aHexahedronmapHog.SetScalarModeToUseCellData(); aHexahedronmapHog.ScalarVisibilityOff(); aHexahedronhogActor = new vtkActor(); aHexahedronhogActor.SetMapper(aHexahedronmapHog); aHexahedronhogActor.GetProperty().SetColor(0,1,0); aHexahedronGlyph3D = new vtkGlyph3D(); aHexahedronGlyph3D.SetInputConnection(aHexahedronCenters.GetOutputPort()); aHexahedronGlyph3D.SetSource(ball.GetOutput()); aHexahedronCentersMapper = vtkPolyDataMapper.New(); aHexahedronCentersMapper.SetInputConnection(aHexahedronGlyph3D.GetOutputPort()); aHexahedronCentersActor = new vtkActor(); aHexahedronCentersActor.SetMapper(aHexahedronCentersMapper); aHexahedronhogActor.SetPosition(aHexahedronActor.GetPosition()[0],aHexahedronActor.GetPosition()[1],aHexahedronActor.GetPosition()[2]); ren1.AddActor((vtkProp)aHexahedronhogActor); aHexahedronhogActor.GetProperty().SetRepresentationToWireframe(); aWedgederivs = new vtkCellDerivatives(); aWedgederivs.SetInput(aWedgeGrid); aWedgederivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aWedge"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aWedgeWriter = new vtkUnstructuredGridWriter(); aWedgeWriter.SetInputConnection(aWedgederivs.GetOutputPort()); aWedgeWriter.SetFileName(FileName); aWedgeWriter.Write(); // delete the file[] File.Delete("FileName"); } aWedgeCenters = new vtkCellCenters(); aWedgeCenters.SetInputConnection(aWedgederivs.GetOutputPort()); aWedgeCenters.VertexCellsOn(); aWedgehog = new vtkHedgeHog(); aWedgehog.SetInputConnection(aWedgeCenters.GetOutputPort()); aWedgemapHog = vtkPolyDataMapper.New(); aWedgemapHog.SetInputConnection(aWedgehog.GetOutputPort()); aWedgemapHog.SetScalarModeToUseCellData(); aWedgemapHog.ScalarVisibilityOff(); aWedgehogActor = new vtkActor(); aWedgehogActor.SetMapper(aWedgemapHog); aWedgehogActor.GetProperty().SetColor(0,1,0); aWedgeGlyph3D = new vtkGlyph3D(); aWedgeGlyph3D.SetInputConnection(aWedgeCenters.GetOutputPort()); aWedgeGlyph3D.SetSource(ball.GetOutput()); aWedgeCentersMapper = vtkPolyDataMapper.New(); aWedgeCentersMapper.SetInputConnection(aWedgeGlyph3D.GetOutputPort()); aWedgeCentersActor = new vtkActor(); aWedgeCentersActor.SetMapper(aWedgeCentersMapper); aWedgehogActor.SetPosition(aWedgeActor.GetPosition()[0],aWedgeActor.GetPosition()[1],aWedgeActor.GetPosition()[2]); ren1.AddActor((vtkProp)aWedgehogActor); aWedgehogActor.GetProperty().SetRepresentationToWireframe(); aPyramidderivs = new vtkCellDerivatives(); aPyramidderivs.SetInput(aPyramidGrid); aPyramidderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aPyramid"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aPyramidWriter = new vtkUnstructuredGridWriter(); aPyramidWriter.SetInputConnection(aPyramidderivs.GetOutputPort()); aPyramidWriter.SetFileName(FileName); aPyramidWriter.Write(); // delete the file[] File.Delete("FileName"); } aPyramidCenters = new vtkCellCenters(); aPyramidCenters.SetInputConnection(aPyramidderivs.GetOutputPort()); aPyramidCenters.VertexCellsOn(); aPyramidhog = new vtkHedgeHog(); aPyramidhog.SetInputConnection(aPyramidCenters.GetOutputPort()); aPyramidmapHog = vtkPolyDataMapper.New(); aPyramidmapHog.SetInputConnection(aPyramidhog.GetOutputPort()); aPyramidmapHog.SetScalarModeToUseCellData(); aPyramidmapHog.ScalarVisibilityOff(); aPyramidhogActor = new vtkActor(); aPyramidhogActor.SetMapper(aPyramidmapHog); aPyramidhogActor.GetProperty().SetColor(0,1,0); aPyramidGlyph3D = new vtkGlyph3D(); aPyramidGlyph3D.SetInputConnection(aPyramidCenters.GetOutputPort()); aPyramidGlyph3D.SetSource(ball.GetOutput()); aPyramidCentersMapper = vtkPolyDataMapper.New(); aPyramidCentersMapper.SetInputConnection(aPyramidGlyph3D.GetOutputPort()); aPyramidCentersActor = new vtkActor(); aPyramidCentersActor.SetMapper(aPyramidCentersMapper); aPyramidhogActor.SetPosition(aPyramidActor.GetPosition()[0],aPyramidActor.GetPosition()[1],aPyramidActor.GetPosition()[2]); ren1.AddActor((vtkProp)aPyramidhogActor); aPyramidhogActor.GetProperty().SetRepresentationToWireframe(); aTetraderivs = new vtkCellDerivatives(); aTetraderivs.SetInput(aTetraGrid); aTetraderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aTetra"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aTetraWriter = new vtkUnstructuredGridWriter(); aTetraWriter.SetInputConnection(aTetraderivs.GetOutputPort()); aTetraWriter.SetFileName(FileName); aTetraWriter.Write(); // delete the file[] File.Delete("FileName"); } aTetraCenters = new vtkCellCenters(); aTetraCenters.SetInputConnection(aTetraderivs.GetOutputPort()); aTetraCenters.VertexCellsOn(); aTetrahog = new vtkHedgeHog(); aTetrahog.SetInputConnection(aTetraCenters.GetOutputPort()); aTetramapHog = vtkPolyDataMapper.New(); aTetramapHog.SetInputConnection(aTetrahog.GetOutputPort()); aTetramapHog.SetScalarModeToUseCellData(); aTetramapHog.ScalarVisibilityOff(); aTetrahogActor = new vtkActor(); aTetrahogActor.SetMapper(aTetramapHog); aTetrahogActor.GetProperty().SetColor(0,1,0); aTetraGlyph3D = new vtkGlyph3D(); aTetraGlyph3D.SetInputConnection(aTetraCenters.GetOutputPort()); aTetraGlyph3D.SetSource(ball.GetOutput()); aTetraCentersMapper = vtkPolyDataMapper.New(); aTetraCentersMapper.SetInputConnection(aTetraGlyph3D.GetOutputPort()); aTetraCentersActor = new vtkActor(); aTetraCentersActor.SetMapper(aTetraCentersMapper); aTetrahogActor.SetPosition(aTetraActor.GetPosition()[0],aTetraActor.GetPosition()[1],aTetraActor.GetPosition()[2]); ren1.AddActor((vtkProp)aTetrahogActor); aTetrahogActor.GetProperty().SetRepresentationToWireframe(); aQuadderivs = new vtkCellDerivatives(); aQuadderivs.SetInput(aQuadGrid); aQuadderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aQuad"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aQuadWriter = new vtkUnstructuredGridWriter(); aQuadWriter.SetInputConnection(aQuadderivs.GetOutputPort()); aQuadWriter.SetFileName(FileName); aQuadWriter.Write(); // delete the file[] File.Delete("FileName"); } aQuadCenters = new vtkCellCenters(); aQuadCenters.SetInputConnection(aQuadderivs.GetOutputPort()); aQuadCenters.VertexCellsOn(); aQuadhog = new vtkHedgeHog(); aQuadhog.SetInputConnection(aQuadCenters.GetOutputPort()); aQuadmapHog = vtkPolyDataMapper.New(); aQuadmapHog.SetInputConnection(aQuadhog.GetOutputPort()); aQuadmapHog.SetScalarModeToUseCellData(); aQuadmapHog.ScalarVisibilityOff(); aQuadhogActor = new vtkActor(); aQuadhogActor.SetMapper(aQuadmapHog); aQuadhogActor.GetProperty().SetColor(0,1,0); aQuadGlyph3D = new vtkGlyph3D(); aQuadGlyph3D.SetInputConnection(aQuadCenters.GetOutputPort()); aQuadGlyph3D.SetSource(ball.GetOutput()); aQuadCentersMapper = vtkPolyDataMapper.New(); aQuadCentersMapper.SetInputConnection(aQuadGlyph3D.GetOutputPort()); aQuadCentersActor = new vtkActor(); aQuadCentersActor.SetMapper(aQuadCentersMapper); aQuadhogActor.SetPosition(aQuadActor.GetPosition()[0],aQuadActor.GetPosition()[1],aQuadActor.GetPosition()[2]); ren1.AddActor((vtkProp)aQuadhogActor); aQuadhogActor.GetProperty().SetRepresentationToWireframe(); aTrianglederivs = new vtkCellDerivatives(); aTrianglederivs.SetInput(aTriangleGrid); aTrianglederivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aTriangle"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aTriangleWriter = new vtkUnstructuredGridWriter(); aTriangleWriter.SetInputConnection(aTrianglederivs.GetOutputPort()); aTriangleWriter.SetFileName(FileName); aTriangleWriter.Write(); // delete the file[] File.Delete("FileName"); } aTriangleCenters = new vtkCellCenters(); aTriangleCenters.SetInputConnection(aTrianglederivs.GetOutputPort()); aTriangleCenters.VertexCellsOn(); aTrianglehog = new vtkHedgeHog(); aTrianglehog.SetInputConnection(aTriangleCenters.GetOutputPort()); aTrianglemapHog = vtkPolyDataMapper.New(); aTrianglemapHog.SetInputConnection(aTrianglehog.GetOutputPort()); aTrianglemapHog.SetScalarModeToUseCellData(); aTrianglemapHog.ScalarVisibilityOff(); aTrianglehogActor = new vtkActor(); aTrianglehogActor.SetMapper(aTrianglemapHog); aTrianglehogActor.GetProperty().SetColor(0,1,0); aTriangleGlyph3D = new vtkGlyph3D(); aTriangleGlyph3D.SetInputConnection(aTriangleCenters.GetOutputPort()); aTriangleGlyph3D.SetSource(ball.GetOutput()); aTriangleCentersMapper = vtkPolyDataMapper.New(); aTriangleCentersMapper.SetInputConnection(aTriangleGlyph3D.GetOutputPort()); aTriangleCentersActor = new vtkActor(); aTriangleCentersActor.SetMapper(aTriangleCentersMapper); aTrianglehogActor.SetPosition(aTriangleActor.GetPosition()[0],aTriangleActor.GetPosition()[1],aTriangleActor.GetPosition()[2]); ren1.AddActor((vtkProp)aTrianglehogActor); aTrianglehogActor.GetProperty().SetRepresentationToWireframe(); aTriangleStripderivs = new vtkCellDerivatives(); aTriangleStripderivs.SetInput(aTriangleStripGrid); aTriangleStripderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aTriangleStrip"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aTriangleStripWriter = new vtkUnstructuredGridWriter(); aTriangleStripWriter.SetInputConnection(aTriangleStripderivs.GetOutputPort()); aTriangleStripWriter.SetFileName(FileName); aTriangleStripWriter.Write(); // delete the file[] File.Delete("FileName"); } aTriangleStripCenters = new vtkCellCenters(); aTriangleStripCenters.SetInputConnection(aTriangleStripderivs.GetOutputPort()); aTriangleStripCenters.VertexCellsOn(); aTriangleStriphog = new vtkHedgeHog(); aTriangleStriphog.SetInputConnection(aTriangleStripCenters.GetOutputPort()); aTriangleStripmapHog = vtkPolyDataMapper.New(); aTriangleStripmapHog.SetInputConnection(aTriangleStriphog.GetOutputPort()); aTriangleStripmapHog.SetScalarModeToUseCellData(); aTriangleStripmapHog.ScalarVisibilityOff(); aTriangleStriphogActor = new vtkActor(); aTriangleStriphogActor.SetMapper(aTriangleStripmapHog); aTriangleStriphogActor.GetProperty().SetColor(0,1,0); aTriangleStripGlyph3D = new vtkGlyph3D(); aTriangleStripGlyph3D.SetInputConnection(aTriangleStripCenters.GetOutputPort()); aTriangleStripGlyph3D.SetSource(ball.GetOutput()); aTriangleStripCentersMapper = vtkPolyDataMapper.New(); aTriangleStripCentersMapper.SetInputConnection(aTriangleStripGlyph3D.GetOutputPort()); aTriangleStripCentersActor = new vtkActor(); aTriangleStripCentersActor.SetMapper(aTriangleStripCentersMapper); aTriangleStriphogActor.SetPosition(aTriangleStripActor.GetPosition()[0],aTriangleStripActor.GetPosition()[1],aTriangleStripActor.GetPosition()[2]); ren1.AddActor((vtkProp)aTriangleStriphogActor); aTriangleStriphogActor.GetProperty().SetRepresentationToWireframe(); aLinederivs = new vtkCellDerivatives(); aLinederivs.SetInput(aLineGrid); aLinederivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aLine"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aLineWriter = new vtkUnstructuredGridWriter(); aLineWriter.SetInputConnection(aLinederivs.GetOutputPort()); aLineWriter.SetFileName(FileName); aLineWriter.Write(); // delete the file[] File.Delete("FileName"); } aLineCenters = new vtkCellCenters(); aLineCenters.SetInputConnection(aLinederivs.GetOutputPort()); aLineCenters.VertexCellsOn(); aLinehog = new vtkHedgeHog(); aLinehog.SetInputConnection(aLineCenters.GetOutputPort()); aLinemapHog = vtkPolyDataMapper.New(); aLinemapHog.SetInputConnection(aLinehog.GetOutputPort()); aLinemapHog.SetScalarModeToUseCellData(); aLinemapHog.ScalarVisibilityOff(); aLinehogActor = new vtkActor(); aLinehogActor.SetMapper(aLinemapHog); aLinehogActor.GetProperty().SetColor(0,1,0); aLineGlyph3D = new vtkGlyph3D(); aLineGlyph3D.SetInputConnection(aLineCenters.GetOutputPort()); aLineGlyph3D.SetSource(ball.GetOutput()); aLineCentersMapper = vtkPolyDataMapper.New(); aLineCentersMapper.SetInputConnection(aLineGlyph3D.GetOutputPort()); aLineCentersActor = new vtkActor(); aLineCentersActor.SetMapper(aLineCentersMapper); aLinehogActor.SetPosition(aLineActor.GetPosition()[0],aLineActor.GetPosition()[1],aLineActor.GetPosition()[2]); ren1.AddActor((vtkProp)aLinehogActor); aLinehogActor.GetProperty().SetRepresentationToWireframe(); aPolyLinederivs = new vtkCellDerivatives(); aPolyLinederivs.SetInput(aPolyLineGrid); aPolyLinederivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aPolyLine"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aPolyLineWriter = new vtkUnstructuredGridWriter(); aPolyLineWriter.SetInputConnection(aPolyLinederivs.GetOutputPort()); aPolyLineWriter.SetFileName(FileName); aPolyLineWriter.Write(); // delete the file[] File.Delete("FileName"); } aPolyLineCenters = new vtkCellCenters(); aPolyLineCenters.SetInputConnection(aPolyLinederivs.GetOutputPort()); aPolyLineCenters.VertexCellsOn(); aPolyLinehog = new vtkHedgeHog(); aPolyLinehog.SetInputConnection(aPolyLineCenters.GetOutputPort()); aPolyLinemapHog = vtkPolyDataMapper.New(); aPolyLinemapHog.SetInputConnection(aPolyLinehog.GetOutputPort()); aPolyLinemapHog.SetScalarModeToUseCellData(); aPolyLinemapHog.ScalarVisibilityOff(); aPolyLinehogActor = new vtkActor(); aPolyLinehogActor.SetMapper(aPolyLinemapHog); aPolyLinehogActor.GetProperty().SetColor(0,1,0); aPolyLineGlyph3D = new vtkGlyph3D(); aPolyLineGlyph3D.SetInputConnection(aPolyLineCenters.GetOutputPort()); aPolyLineGlyph3D.SetSource(ball.GetOutput()); aPolyLineCentersMapper = vtkPolyDataMapper.New(); aPolyLineCentersMapper.SetInputConnection(aPolyLineGlyph3D.GetOutputPort()); aPolyLineCentersActor = new vtkActor(); aPolyLineCentersActor.SetMapper(aPolyLineCentersMapper); aPolyLinehogActor.SetPosition(aPolyLineActor.GetPosition()[0],aPolyLineActor.GetPosition()[1],aPolyLineActor.GetPosition()[2]); ren1.AddActor((vtkProp)aPolyLinehogActor); aPolyLinehogActor.GetProperty().SetRepresentationToWireframe(); aVertexderivs = new vtkCellDerivatives(); aVertexderivs.SetInput(aVertexGrid); aVertexderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aVertex"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aVertexWriter = new vtkUnstructuredGridWriter(); aVertexWriter.SetInputConnection(aVertexderivs.GetOutputPort()); aVertexWriter.SetFileName(FileName); aVertexWriter.Write(); // delete the file[] File.Delete("FileName"); } aVertexCenters = new vtkCellCenters(); aVertexCenters.SetInputConnection(aVertexderivs.GetOutputPort()); aVertexCenters.VertexCellsOn(); aVertexhog = new vtkHedgeHog(); aVertexhog.SetInputConnection(aVertexCenters.GetOutputPort()); aVertexmapHog = vtkPolyDataMapper.New(); aVertexmapHog.SetInputConnection(aVertexhog.GetOutputPort()); aVertexmapHog.SetScalarModeToUseCellData(); aVertexmapHog.ScalarVisibilityOff(); aVertexhogActor = new vtkActor(); aVertexhogActor.SetMapper(aVertexmapHog); aVertexhogActor.GetProperty().SetColor(0,1,0); aVertexGlyph3D = new vtkGlyph3D(); aVertexGlyph3D.SetInputConnection(aVertexCenters.GetOutputPort()); aVertexGlyph3D.SetSource(ball.GetOutput()); aVertexCentersMapper = vtkPolyDataMapper.New(); aVertexCentersMapper.SetInputConnection(aVertexGlyph3D.GetOutputPort()); aVertexCentersActor = new vtkActor(); aVertexCentersActor.SetMapper(aVertexCentersMapper); aVertexhogActor.SetPosition(aVertexActor.GetPosition()[0],aVertexActor.GetPosition()[1],aVertexActor.GetPosition()[2]); ren1.AddActor((vtkProp)aVertexhogActor); aVertexhogActor.GetProperty().SetRepresentationToWireframe(); aPolyVertexderivs = new vtkCellDerivatives(); aPolyVertexderivs.SetInput(aPolyVertexGrid); aPolyVertexderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aPolyVertex"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aPolyVertexWriter = new vtkUnstructuredGridWriter(); aPolyVertexWriter.SetInputConnection(aPolyVertexderivs.GetOutputPort()); aPolyVertexWriter.SetFileName(FileName); aPolyVertexWriter.Write(); // delete the file[] File.Delete("FileName"); } aPolyVertexCenters = new vtkCellCenters(); aPolyVertexCenters.SetInputConnection(aPolyVertexderivs.GetOutputPort()); aPolyVertexCenters.VertexCellsOn(); aPolyVertexhog = new vtkHedgeHog(); aPolyVertexhog.SetInputConnection(aPolyVertexCenters.GetOutputPort()); aPolyVertexmapHog = vtkPolyDataMapper.New(); aPolyVertexmapHog.SetInputConnection(aPolyVertexhog.GetOutputPort()); aPolyVertexmapHog.SetScalarModeToUseCellData(); aPolyVertexmapHog.ScalarVisibilityOff(); aPolyVertexhogActor = new vtkActor(); aPolyVertexhogActor.SetMapper(aPolyVertexmapHog); aPolyVertexhogActor.GetProperty().SetColor(0,1,0); aPolyVertexGlyph3D = new vtkGlyph3D(); aPolyVertexGlyph3D.SetInputConnection(aPolyVertexCenters.GetOutputPort()); aPolyVertexGlyph3D.SetSource(ball.GetOutput()); aPolyVertexCentersMapper = vtkPolyDataMapper.New(); aPolyVertexCentersMapper.SetInputConnection(aPolyVertexGlyph3D.GetOutputPort()); aPolyVertexCentersActor = new vtkActor(); aPolyVertexCentersActor.SetMapper(aPolyVertexCentersMapper); aPolyVertexhogActor.SetPosition(aPolyVertexActor.GetPosition()[0],aPolyVertexActor.GetPosition()[1],aPolyVertexActor.GetPosition()[2]); ren1.AddActor((vtkProp)aPolyVertexhogActor); aPolyVertexhogActor.GetProperty().SetRepresentationToWireframe(); aPixelderivs = new vtkCellDerivatives(); aPixelderivs.SetInput(aPixelGrid); aPixelderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aPixel"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aPixelWriter = new vtkUnstructuredGridWriter(); aPixelWriter.SetInputConnection(aPixelderivs.GetOutputPort()); aPixelWriter.SetFileName(FileName); aPixelWriter.Write(); // delete the file[] File.Delete("FileName"); } aPixelCenters = new vtkCellCenters(); aPixelCenters.SetInputConnection(aPixelderivs.GetOutputPort()); aPixelCenters.VertexCellsOn(); aPixelhog = new vtkHedgeHog(); aPixelhog.SetInputConnection(aPixelCenters.GetOutputPort()); aPixelmapHog = vtkPolyDataMapper.New(); aPixelmapHog.SetInputConnection(aPixelhog.GetOutputPort()); aPixelmapHog.SetScalarModeToUseCellData(); aPixelmapHog.ScalarVisibilityOff(); aPixelhogActor = new vtkActor(); aPixelhogActor.SetMapper(aPixelmapHog); aPixelhogActor.GetProperty().SetColor(0,1,0); aPixelGlyph3D = new vtkGlyph3D(); aPixelGlyph3D.SetInputConnection(aPixelCenters.GetOutputPort()); aPixelGlyph3D.SetSource(ball.GetOutput()); aPixelCentersMapper = vtkPolyDataMapper.New(); aPixelCentersMapper.SetInputConnection(aPixelGlyph3D.GetOutputPort()); aPixelCentersActor = new vtkActor(); aPixelCentersActor.SetMapper(aPixelCentersMapper); aPixelhogActor.SetPosition(aPixelActor.GetPosition()[0],aPixelActor.GetPosition()[1],aPixelActor.GetPosition()[2]); ren1.AddActor((vtkProp)aPixelhogActor); aPixelhogActor.GetProperty().SetRepresentationToWireframe(); aPolygonderivs = new vtkCellDerivatives(); aPolygonderivs.SetInput(aPolygonGrid); aPolygonderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aPolygon"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aPolygonWriter = new vtkUnstructuredGridWriter(); aPolygonWriter.SetInputConnection(aPolygonderivs.GetOutputPort()); aPolygonWriter.SetFileName(FileName); aPolygonWriter.Write(); // delete the file[] File.Delete("FileName"); } aPolygonCenters = new vtkCellCenters(); aPolygonCenters.SetInputConnection(aPolygonderivs.GetOutputPort()); aPolygonCenters.VertexCellsOn(); aPolygonhog = new vtkHedgeHog(); aPolygonhog.SetInputConnection(aPolygonCenters.GetOutputPort()); aPolygonmapHog = vtkPolyDataMapper.New(); aPolygonmapHog.SetInputConnection(aPolygonhog.GetOutputPort()); aPolygonmapHog.SetScalarModeToUseCellData(); aPolygonmapHog.ScalarVisibilityOff(); aPolygonhogActor = new vtkActor(); aPolygonhogActor.SetMapper(aPolygonmapHog); aPolygonhogActor.GetProperty().SetColor(0,1,0); aPolygonGlyph3D = new vtkGlyph3D(); aPolygonGlyph3D.SetInputConnection(aPolygonCenters.GetOutputPort()); aPolygonGlyph3D.SetSource(ball.GetOutput()); aPolygonCentersMapper = vtkPolyDataMapper.New(); aPolygonCentersMapper.SetInputConnection(aPolygonGlyph3D.GetOutputPort()); aPolygonCentersActor = new vtkActor(); aPolygonCentersActor.SetMapper(aPolygonCentersMapper); aPolygonhogActor.SetPosition(aPolygonActor.GetPosition()[0],aPolygonActor.GetPosition()[1],aPolygonActor.GetPosition()[2]); ren1.AddActor((vtkProp)aPolygonhogActor); aPolygonhogActor.GetProperty().SetRepresentationToWireframe(); aPentaderivs = new vtkCellDerivatives(); aPentaderivs.SetInput(aPentaGrid); aPentaderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aPenta"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aPentaWriter = new vtkUnstructuredGridWriter(); aPentaWriter.SetInputConnection(aPentaderivs.GetOutputPort()); aPentaWriter.SetFileName(FileName); aPentaWriter.Write(); // delete the file[] File.Delete("FileName"); } aPentaCenters = new vtkCellCenters(); aPentaCenters.SetInputConnection(aPentaderivs.GetOutputPort()); aPentaCenters.VertexCellsOn(); aPentahog = new vtkHedgeHog(); aPentahog.SetInputConnection(aPentaCenters.GetOutputPort()); aPentamapHog = vtkPolyDataMapper.New(); aPentamapHog.SetInputConnection(aPentahog.GetOutputPort()); aPentamapHog.SetScalarModeToUseCellData(); aPentamapHog.ScalarVisibilityOff(); aPentahogActor = new vtkActor(); aPentahogActor.SetMapper(aPentamapHog); aPentahogActor.GetProperty().SetColor(0,1,0); aPentaGlyph3D = new vtkGlyph3D(); aPentaGlyph3D.SetInputConnection(aPentaCenters.GetOutputPort()); aPentaGlyph3D.SetSource(ball.GetOutput()); aPentaCentersMapper = vtkPolyDataMapper.New(); aPentaCentersMapper.SetInputConnection(aPentaGlyph3D.GetOutputPort()); aPentaCentersActor = new vtkActor(); aPentaCentersActor.SetMapper(aPentaCentersMapper); aPentahogActor.SetPosition(aPentaActor.GetPosition()[0],aPentaActor.GetPosition()[1],aPentaActor.GetPosition()[2]); ren1.AddActor((vtkProp)aPentahogActor); aPentahogActor.GetProperty().SetRepresentationToWireframe(); aHexaderivs = new vtkCellDerivatives(); aHexaderivs.SetInput(aHexaGrid); aHexaderivs.SetVectorModeToComputeGradient(); FileName = dir; FileName += "/aHexa"; FileName += ".vtk"; // make sure the directory is writeable first[] tryWorked = false; try { channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp"); tryWorked = true; } catch(Exception) { tryWorked = false; } if(tryWorked) { channel.Close(); File.Delete("" + (dir.ToString()) + "/test.tmp"); aHexaWriter = new vtkUnstructuredGridWriter(); aHexaWriter.SetInputConnection(aHexaderivs.GetOutputPort()); aHexaWriter.SetFileName(FileName); aHexaWriter.Write(); // delete the file[] File.Delete("FileName"); } aHexaCenters = new vtkCellCenters(); aHexaCenters.SetInputConnection(aHexaderivs.GetOutputPort()); aHexaCenters.VertexCellsOn(); aHexahog = new vtkHedgeHog(); aHexahog.SetInputConnection(aHexaCenters.GetOutputPort()); aHexamapHog = vtkPolyDataMapper.New(); aHexamapHog.SetInputConnection(aHexahog.GetOutputPort()); aHexamapHog.SetScalarModeToUseCellData(); aHexamapHog.ScalarVisibilityOff(); aHexahogActor = new vtkActor(); aHexahogActor.SetMapper(aHexamapHog); aHexahogActor.GetProperty().SetColor(0,1,0); aHexaGlyph3D = new vtkGlyph3D(); aHexaGlyph3D.SetInputConnection(aHexaCenters.GetOutputPort()); aHexaGlyph3D.SetSource(ball.GetOutput()); aHexaCentersMapper = vtkPolyDataMapper.New(); aHexaCentersMapper.SetInputConnection(aHexaGlyph3D.GetOutputPort()); aHexaCentersActor = new vtkActor(); aHexaCentersActor.SetMapper(aHexaCentersMapper); aHexahogActor.SetPosition(aHexaActor.GetPosition()[0],aHexaActor.GetPosition()[1],aHexaActor.GetPosition()[2]); ren1.AddActor((vtkProp)aHexahogActor); aHexahogActor.GetProperty().SetRepresentationToWireframe(); ren1.ResetCamera(); ren1.GetActiveCamera().Azimuth((double)30); ren1.GetActiveCamera().Elevation((double)20); ren1.GetActiveCamera().Dolly((double)3.0); ren1.ResetCameraClippingRange(); renWin.SetSize((int)300,(int)150); renWin.Render(); // render the image[] //[] iren.Initialize(); //deleteAllVTKObjects(); }
///<summary> A Set Method for Static Variables </summary> public static void SetglyphPoints(vtkGlyph3D toSet) { glyphPoints = toSet; }
private void ReadPDB() { // Path to vtk data must be set as an environment variable // VTK_DATA_ROOT = "C:\VTK\vtkdata-5.8.0" vtkTesting test = vtkTesting.New(); string root = test.GetDataRoot(); string filePath = System.IO.Path.Combine(root, @"Data\caffeine.pdb"); vtkPDBReader pdb = vtkPDBReader.New(); pdb.SetFileName(filePath); pdb.SetHBScale(1.0); pdb.SetBScale(1.0); pdb.Update(); Debug.WriteLine("# of atoms is: " + pdb.GetNumberOfAtoms()); // if molecule contains a lot of atoms, reduce the resolution of the sphere (represents an atom) for faster rendering int resolution = (int)Math.Floor(Math.Sqrt(300000.0 / pdb.GetNumberOfAtoms())); // 300000.0 is an empriric value if (resolution > 20) { resolution = 20; } else if (resolution < 4) { resolution = 4; } Debug.WriteLine("Resolution is: " + resolution); vtkSphereSource sphere = vtkSphereSource.New(); sphere.SetCenter(0, 0, 0); sphere.SetRadius(1); sphere.SetThetaResolution(resolution); sphere.SetPhiResolution(resolution); vtkGlyph3D glyph = vtkGlyph3D.New(); glyph.SetInputConnection(pdb.GetOutputPort()); glyph.SetOrient(1); glyph.SetColorMode(1); // glyph.ScalingOn(); glyph.SetScaleMode(2); glyph.SetScaleFactor(.25); glyph.SetSourceConnection(sphere.GetOutputPort()); vtkPolyDataMapper atomMapper = vtkPolyDataMapper.New(); atomMapper.SetInputConnection(glyph.GetOutputPort()); atomMapper.UseLookupTableScalarRangeOff(); atomMapper.ScalarVisibilityOn(); atomMapper.SetScalarModeToDefault(); vtkLODActor atom = vtkLODActor.New(); atom.SetMapper(atomMapper); atom.GetProperty().SetRepresentationToSurface(); atom.GetProperty().SetInterpolationToGouraud(); atom.GetProperty().SetAmbient(0.15); atom.GetProperty().SetDiffuse(0.85); atom.GetProperty().SetSpecular(0.1); atom.GetProperty().SetSpecularPower(30); atom.GetProperty().SetSpecularColor(1, 1, 1); atom.SetNumberOfCloudPoints(30000); vtkTubeFilter tube = vtkTubeFilter.New(); tube.SetInputConnection(pdb.GetOutputPort()); tube.SetNumberOfSides(resolution); tube.CappingOff(); tube.SetRadius(0.2); // turn off variation of tube radius with scalar values tube.SetVaryRadius(0); tube.SetRadiusFactor(10); vtkPolyDataMapper bondMapper = vtkPolyDataMapper.New(); bondMapper.SetInputConnection(tube.GetOutputPort()); bondMapper.UseLookupTableScalarRangeOff(); bondMapper.ScalarVisibilityOff(); bondMapper.SetScalarModeToDefault(); vtkLODActor bond = vtkLODActor.New(); bond.SetMapper(bondMapper); bond.GetProperty().SetRepresentationToSurface(); bond.GetProperty().SetInterpolationToGouraud(); bond.GetProperty().SetAmbient(0.15); bond.GetProperty().SetDiffuse(0.85); bond.GetProperty().SetSpecular(0.1); bond.GetProperty().SetSpecularPower(30); bond.GetProperty().SetSpecularColor(1, 1, 1); bond.GetProperty().SetDiffuseColor(1.0000, 0.8941, 0.70981); // get a reference to the renderwindow of our renderWindowControl1 vtkRenderWindow renderWindow = renderWindowControl1.RenderWindow; // renderer vtkRenderer renderer = renderWindow.GetRenderers().GetFirstRenderer(); // set background color renderer.SetBackground(0.2, 0.3, 0.4); // add our actor to the renderer renderer.AddActor(atom); renderer.AddActor(bond); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVclosedSplines(String [] argv) { //Prefix Content is: "" // get the interactor ui[] // Now create the RenderWindow, Renderer and Interactor[] //[] ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); math = new vtkMath(); numberOfInputPoints = 30; aKSplineX = new vtkKochanekSpline(); aKSplineX.ClosedOn(); aKSplineY = new vtkKochanekSpline(); aKSplineY.ClosedOn(); aKSplineZ = new vtkKochanekSpline(); aKSplineZ.ClosedOn(); aCSplineX = new vtkCardinalSpline(); aCSplineX.ClosedOn(); aCSplineY = new vtkCardinalSpline(); aCSplineY.ClosedOn(); aCSplineZ = new vtkCardinalSpline(); aCSplineZ.ClosedOn(); // add some points[] inputPoints = new vtkPoints(); x = -1.0; y = -1.0; z = 0.0; aKSplineX.AddPoint((double)0,(double)x); aKSplineY.AddPoint((double)0,(double)y); aKSplineZ.AddPoint((double)0,(double)z); aCSplineX.AddPoint((double)0,(double)x); aCSplineY.AddPoint((double)0,(double)y); aCSplineZ.AddPoint((double)0,(double)z); inputPoints.InsertPoint((int)0,(double)x,(double)y,(double)z); x = 1.0; y = -1.0; z = 0.0; aKSplineX.AddPoint((double)1,(double)x); aKSplineY.AddPoint((double)1,(double)y); aKSplineZ.AddPoint((double)1,(double)z); aCSplineX.AddPoint((double)1,(double)x); aCSplineY.AddPoint((double)1,(double)y); aCSplineZ.AddPoint((double)1,(double)z); inputPoints.InsertPoint((int)1,(double)x,(double)y,(double)z); x = 1.0; y = 1.0; z = 0.0; aKSplineX.AddPoint((double)2,(double)x); aKSplineY.AddPoint((double)2,(double)y); aKSplineZ.AddPoint((double)2,(double)z); aCSplineX.AddPoint((double)2,(double)x); aCSplineY.AddPoint((double)2,(double)y); aCSplineZ.AddPoint((double)2,(double)z); inputPoints.InsertPoint((int)2,(double)x,(double)y,(double)z); x = -1.0; y = 1.0; z = 0.0; aKSplineX.AddPoint((double)3,(double)x); aKSplineY.AddPoint((double)3,(double)y); aKSplineZ.AddPoint((double)3,(double)z); aCSplineX.AddPoint((double)3,(double)x); aCSplineY.AddPoint((double)3,(double)y); aCSplineZ.AddPoint((double)3,(double)z); inputPoints.InsertPoint((int)3,(double)x,(double)y,(double)z); inputData = new vtkPolyData(); inputData.SetPoints((vtkPoints)inputPoints); balls = new vtkSphereSource(); balls.SetRadius((double).04); balls.SetPhiResolution((int)10); balls.SetThetaResolution((int)10); glyphPoints = new vtkGlyph3D(); glyphPoints.SetInput((vtkDataObject)inputData); glyphPoints.SetSource((vtkPolyData)balls.GetOutput()); glyphMapper = vtkPolyDataMapper.New(); glyphMapper.SetInputConnection((vtkAlgorithmOutput)glyphPoints.GetOutputPort()); glyph = new vtkActor(); glyph.SetMapper((vtkMapper)glyphMapper); glyph.GetProperty().SetDiffuseColor((double) 1.0000, 0.3882, 0.2784 ); glyph.GetProperty().SetSpecular((double).3); glyph.GetProperty().SetSpecularPower((double)30); ren1.AddActor((vtkProp)glyph); Kpoints = new vtkPoints(); Cpoints = new vtkPoints(); profileKData = new vtkPolyData(); profileCData = new vtkPolyData(); numberOfInputPoints = 5; numberOfOutputPoints = 100; offset = 1.0; //method moved fit(); lines = new vtkCellArray(); lines.InsertNextCell((int)numberOfOutputPoints); i = 0; while((i) < numberOfOutputPoints) { lines.InsertCellPoint((int)i); i = i + 1; } profileKData.SetPoints((vtkPoints)Kpoints); profileKData.SetLines((vtkCellArray)lines); profileCData.SetPoints((vtkPoints)Cpoints); profileCData.SetLines((vtkCellArray)lines); profileKTubes = new vtkTubeFilter(); profileKTubes.SetNumberOfSides((int)8); profileKTubes.SetInput((vtkDataObject)profileKData); profileKTubes.SetRadius((double).01); profileKMapper = vtkPolyDataMapper.New(); profileKMapper.SetInputConnection((vtkAlgorithmOutput)profileKTubes.GetOutputPort()); profileK = new vtkActor(); profileK.SetMapper((vtkMapper)profileKMapper); profileK.GetProperty().SetDiffuseColor((double) 0.8900, 0.8100, 0.3400 ); profileK.GetProperty().SetSpecular((double).3); profileK.GetProperty().SetSpecularPower((double)30); ren1.AddActor((vtkProp)profileK); profileCTubes = new vtkTubeFilter(); profileCTubes.SetNumberOfSides((int)8); profileCTubes.SetInput((vtkDataObject)profileCData); profileCTubes.SetRadius((double).01); profileCMapper = vtkPolyDataMapper.New(); profileCMapper.SetInputConnection((vtkAlgorithmOutput)profileCTubes.GetOutputPort()); profileC = new vtkActor(); profileC.SetMapper((vtkMapper)profileCMapper); profileC.GetProperty().SetDiffuseColor((double) 0.2000, 0.6300, 0.7900 ); profileC.GetProperty().SetSpecular((double).3); profileC.GetProperty().SetSpecularPower((double)30); ren1.AddActor((vtkProp)profileC); ren1.ResetCamera(); ren1.GetActiveCamera().Dolly((double)1.5); ren1.ResetCameraClippingRange(); renWin.SetSize((int)300,(int)300); // render the image[] //[] iren.Initialize(); // prevent the tk window from showing up then start the event loop[] //method moved //method moved //method moved //method moved //method moved //method moved //deleteAllVTKObjects(); }
private void VectorFieldNonZeroExtraction() { // Create an image vtkImageData image = vtkImageData.New(); CreateVectorField(ref image); // This filter produces a vtkImageData with an array named "Magnitude" vtkImageMagnitude magnitudeFilter = vtkImageMagnitude.New(); magnitudeFilter.SetInputConnection(image.GetProducerPort()); magnitudeFilter.Update(); image.GetPointData().AddArray(magnitudeFilter.GetOutput().GetPointData().GetScalars()); image.GetPointData().SetActiveScalars("Magnitude"); vtkThresholdPoints thresholdVector = vtkThresholdPoints.New(); thresholdVector.SetInput(image); thresholdVector.SetInputArrayToProcess( 0, 0, (int)vtkDataObject.FieldAssociations.FIELD_ASSOCIATION_POINTS, (int)vtkDataSetAttributes.AttributeTypes.SCALARS, "Magnitude"); thresholdVector.ThresholdByUpper(0.00001); thresholdVector.Update(); // in case you want to save imageData //vtkXMLPolyDataWriter writer = vtkXMLPolyDataWriter.New(); //writer.SetFileName("output.vtp"); //writer.SetInputConnection(thresholdPoints.GetOutputPort()); //writer.Write(); // repesents the pixels vtkCubeSource cubeSource = vtkCubeSource.New(); cubeSource.SetXLength(2.0); cubeSource.SetYLength(2.0); cubeSource.SetZLength(2.0); vtkGlyph3D glyph = vtkGlyph3D.New(); glyph.SetInput(image); glyph.SetSourceConnection(cubeSource.GetOutputPort()); // don't scale glyphs according to any scalar data glyph.SetScaleModeToDataScalingOff(); vtkPolyDataMapper glyphMapper = vtkPolyDataMapper.New(); glyphMapper.SetInputConnection(glyph.GetOutputPort()); // don't color glyphs according to scalar data glyphMapper.ScalarVisibilityOff(); glyphMapper.SetScalarModeToDefault(); vtkActor actor = vtkActor.New(); actor.SetMapper(glyphMapper); // represent vector field vtkGlyph3D vectorGlyph = vtkGlyph3D.New(); vtkArrowSource arrowSource = vtkArrowSource.New(); vtkPolyDataMapper vectorGlyphMapper = vtkPolyDataMapper.New(); int n = image.GetPointData().GetNumberOfArrays(); for (int i = 0; i < n; i++) { Debug.WriteLine("name of array[" + i + "]: " + image.GetPointData().GetArrayName(i)); } vtkPolyData tmp = thresholdVector.GetOutput(); Debug.WriteLine("number of thresholded points: " + tmp.GetNumberOfPoints()); vectorGlyph.SetInputConnection(thresholdVector.GetOutputPort()); // in case you want the point glyphs to be oriented according to // scalar values in array "ImageScalars" uncomment the following line image.GetPointData().SetActiveVectors("ImageScalars"); vectorGlyph.SetSourceConnection(arrowSource.GetOutputPort()); vectorGlyph.SetScaleModeToScaleByVector(); vectorGlyph.SetVectorModeToUseVector(); vectorGlyph.ScalingOn(); vectorGlyph.OrientOn(); vectorGlyph.SetInputArrayToProcess( 1, 0, (int)vtkDataObject.FieldAssociations.FIELD_ASSOCIATION_POINTS, (int)vtkDataSetAttributes.AttributeTypes.SCALARS, "ImageScalars"); vectorGlyph.Update(); vectorGlyphMapper.SetInputConnection(vectorGlyph.GetOutputPort()); vectorGlyphMapper.Update(); vtkActor vectorActor = vtkActor.New(); vectorActor.SetMapper(vectorGlyphMapper); // get a reference to the renderwindow of our renderWindowControl1 vtkRenderWindow renderWindow = renderWindowControl1.RenderWindow; // renderer vtkRenderer renderer = renderWindow.GetRenderers().GetFirstRenderer(); // set background color renderer.SetBackground(.2, .6, .3); //Add the actors to the renderer, set the background and size renderer.AddActor(actor); renderer.AddActor(vectorActor); }
///<summary> A Set Method for Static Variables </summary> public static void SetGlyph(vtkGlyph3D toSet) { Glyph = toSet; }
///<summary> A Set Method for Static Variables </summary> public static void Setcones(vtkGlyph3D toSet) { cones = toSet; }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVgaussian(String [] argv) { //Prefix Content is: "" ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.AddRenderer((vtkRenderer)ren1); renWin.SetSize((int)300,(int)300); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); camera = new vtkCamera(); camera.ParallelProjectionOn(); camera.SetViewUp((double)0,(double)1,(double)0); camera.SetFocalPoint((double)12,(double)10.5,(double)15); camera.SetPosition((double)-70,(double)15,(double)34); camera.ComputeViewPlaneNormal(); ren1.SetActiveCamera((vtkCamera)camera); // Create the reader for the data[] //vtkStructuredPointsReader reader[] reader = new vtkGaussianCubeReader(); reader.SetFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/m4_TotalDensity.cube"); reader.SetHBScale((double)1.1); reader.SetBScale((double)10); reader.Update(); range = reader.GetGridOutput().GetPointData().GetScalars().GetRange(); min = (double)(lindex(range,0)); max = (double)(lindex(range,1)); readerSS = new vtkImageShiftScale(); readerSS.SetInput((vtkDataObject)reader.GetGridOutput()); readerSS.SetShift((double)min*-1); readerSS.SetScale((double)255/(max-min)); readerSS.SetOutputScalarTypeToUnsignedChar(); bounds = new vtkOutlineFilter(); bounds.SetInput((vtkDataObject)reader.GetGridOutput()); boundsMapper = vtkPolyDataMapper.New(); boundsMapper.SetInputConnection((vtkAlgorithmOutput)bounds.GetOutputPort()); boundsActor = new vtkActor(); boundsActor.SetMapper((vtkMapper)boundsMapper); boundsActor.GetProperty().SetColor((double)0,(double)0,(double)0); contour = new vtkContourFilter(); contour.SetInput((vtkDataObject)reader.GetGridOutput()); contour.GenerateValues((int)5,(double)0,(double).05); contourMapper = vtkPolyDataMapper.New(); contourMapper.SetInputConnection((vtkAlgorithmOutput)contour.GetOutputPort()); contourMapper.SetScalarRange((double)0,(double).1); ((vtkLookupTable)contourMapper.GetLookupTable()).SetHueRange(0.32,0); contourActor = new vtkActor(); contourActor.SetMapper((vtkMapper)contourMapper); contourActor.GetProperty().SetOpacity((double).5); // Create transfer mapping scalar value to opacity[] opacityTransferFunction = new vtkPiecewiseFunction(); opacityTransferFunction.AddPoint((double)0,(double)0.01); opacityTransferFunction.AddPoint((double)255,(double)0.35); opacityTransferFunction.ClampingOn(); // Create transfer mapping scalar value to color[] colorTransferFunction = new vtkColorTransferFunction(); colorTransferFunction.AddHSVPoint((double)0.0,(double)0.66,(double)1.0,(double)1.0); colorTransferFunction.AddHSVPoint((double)50.0,(double)0.33,(double)1.0,(double)1.0); colorTransferFunction.AddHSVPoint((double)100.0,(double)0.00,(double)1.0,(double)1.0); // The property describes how the data will look[] volumeProperty = new vtkVolumeProperty(); volumeProperty.SetColor((vtkColorTransferFunction)colorTransferFunction); volumeProperty.SetScalarOpacity((vtkPiecewiseFunction)opacityTransferFunction); volumeProperty.SetInterpolationTypeToLinear(); // The mapper / ray cast function know how to render the data[] compositeFunction = new vtkVolumeRayCastCompositeFunction(); volumeMapper = new vtkVolumeRayCastMapper(); //vtkVolumeTextureMapper2D volumeMapper[] volumeMapper.SetVolumeRayCastFunction((vtkVolumeRayCastFunction)compositeFunction); volumeMapper.SetInputConnection((vtkAlgorithmOutput)readerSS.GetOutputPort()); // The volume holds the mapper and the property and[] // can be used to position/orient the volume[] volume = new vtkVolume(); volume.SetMapper((vtkAbstractVolumeMapper)volumeMapper); volume.SetProperty((vtkVolumeProperty)volumeProperty); ren1.AddVolume((vtkProp)volume); //ren1 AddActor contourActor[] ren1.AddActor((vtkProp)boundsActor); //#####################################################################[] Sphere = new vtkSphereSource(); Sphere.SetCenter((double)0,(double)0,(double)0); Sphere.SetRadius((double)1); Sphere.SetThetaResolution((int)16); Sphere.SetStartTheta((double)0); Sphere.SetEndTheta((double)360); Sphere.SetPhiResolution((int)16); Sphere.SetStartPhi((double)0); Sphere.SetEndPhi((double)180); Glyph = new vtkGlyph3D(); Glyph.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); Glyph.SetOrient((int)1); Glyph.SetColorMode((int)1); //Glyph ScalingOn[] Glyph.SetScaleMode((int)2); Glyph.SetScaleFactor((double).6); Glyph.SetSource((vtkPolyData)Sphere.GetOutput()); AtomsMapper = vtkPolyDataMapper.New(); AtomsMapper.SetInputConnection((vtkAlgorithmOutput)Glyph.GetOutputPort()); AtomsMapper.SetImmediateModeRendering((int)1); AtomsMapper.UseLookupTableScalarRangeOff(); AtomsMapper.SetScalarVisibility((int)1); AtomsMapper.SetScalarModeToDefault(); Atoms = new vtkActor(); Atoms.SetMapper((vtkMapper)AtomsMapper); Atoms.GetProperty().SetRepresentationToSurface(); Atoms.GetProperty().SetInterpolationToGouraud(); Atoms.GetProperty().SetAmbient((double)0.15); Atoms.GetProperty().SetDiffuse((double)0.85); Atoms.GetProperty().SetSpecular((double)0.1); Atoms.GetProperty().SetSpecularPower((double)100); Atoms.GetProperty().SetSpecularColor((double)1,(double)1,(double)1); Atoms.GetProperty().SetColor((double)1,(double)1,(double)1); Tube = new vtkTubeFilter(); Tube.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); Tube.SetNumberOfSides((int)16); Tube.SetCapping((int)0); Tube.SetRadius((double)0.2); Tube.SetVaryRadius((int)0); Tube.SetRadiusFactor((double)10); BondsMapper = vtkPolyDataMapper.New(); BondsMapper.SetInputConnection((vtkAlgorithmOutput)Tube.GetOutputPort()); BondsMapper.SetImmediateModeRendering((int)1); BondsMapper.UseLookupTableScalarRangeOff(); BondsMapper.SetScalarVisibility((int)1); BondsMapper.SetScalarModeToDefault(); Bonds = new vtkActor(); Bonds.SetMapper((vtkMapper)BondsMapper); Bonds.GetProperty().SetRepresentationToSurface(); Bonds.GetProperty().SetInterpolationToGouraud(); Bonds.GetProperty().SetAmbient((double)0.15); Bonds.GetProperty().SetDiffuse((double)0.85); Bonds.GetProperty().SetSpecular((double)0.1); Bonds.GetProperty().SetSpecularPower((double)100); Bonds.GetProperty().SetSpecularColor((double)1,(double)1,(double)1); Bonds.GetProperty().SetColor((double)1,(double)1,(double)1); ren1.AddActor((vtkProp)Bonds); ren1.AddActor((vtkProp)Atoms); //###################################################[] ren1.SetBackground((double)1,(double)1,(double)1); ren1.ResetCamera(); renWin.Render(); //method moved renWin.AbortCheckEvt += new Kitware.VTK.vtkObject.vtkObjectEventHandler(TkCheckAbort_Command.Execute); iren.Initialize(); //deleteAllVTKObjects(); }
static void Main(string[] args) { // create a sphere source, mapper, and actor vtkSphereSource sphere = new vtkSphereSource(); vtkPolyDataMapper sphereMapper = new vtkPolyDataMapper(); sphereMapper.SetInputConnection(sphere.GetOutputPort()); vtkPolyDataMapper.GlobalImmediateModeRenderingOn(); vtkLODActor sphereActor = new vtkLODActor(); sphereActor.SetMapper(sphereMapper); // create the spikes by glyphing the sphere with a cone. Create the // mapper and actor for the glyphs. vtkConeSource cone = new vtkConeSource(); vtkGlyph3D glyph = new vtkGlyph3D(); glyph.SetInputConnection(sphere.GetOutputPort()); glyph.SetSource(cone.GetOutput()); glyph.SetVectorModeToUseNormal(); glyph.SetScaleModeToScaleByVector(); glyph.SetScaleFactor(0.25); vtkPolyDataMapper spikeMapper = new vtkPolyDataMapper(); spikeMapper.SetInputConnection(glyph.GetOutputPort()); vtkLODActor spikeActor = new vtkLODActor(); spikeActor.SetMapper(spikeMapper); // Create a text mapper and actor to display the results of picking. vtkTextMapper textMapper = new vtkTextMapper(); vtkTextProperty tprop = textMapper.GetTextProperty(); tprop.SetFontFamilyToArial(); tprop.SetFontSize(10); tprop.BoldOn(); tprop.ShadowOn(); tprop.SetColor(1, 0, 0); vtkActor2D textActor = new vtkActor2D(); textActor.VisibilityOff(); textActor.SetMapper(textMapper); // Create a cell picker. vtkCellPicker picker = new vtkCellPicker(); PickData pd = new PickData(); pd.textActor = textActor; pd.textMapper = textMapper; vtkDotNetCallback cb = new vtkDotNetCallback(pd.annotatePickCallback); // Now at the end of the pick event call the above function. picker.AddObserver((uint) EventIds.EndPickEvent, cb); // Create the Renderer, RenderWindow, etc. and set the Picker. vtkRenderer ren = new vtkRenderer(); vtkRenderWindow renWin = new vtkRenderWindow(); renWin.AddRenderer(ren); vtkRenderWindowInteractor iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow(renWin); iren.SetPicker(picker); // Add the actors to the renderer, set the background and size ren.AddActor2D(textActor); ren.AddActor(sphereActor); ren.AddActor(spikeActor); ren.SetBackground(1, 1, 1); renWin.SetSize(300, 300); // Get the camera and zoom in closer to the image. ren.ResetCamera(); vtkCamera cam1 = ren.GetActiveCamera(); cam1.Zoom(1.4); iren.Initialize(); // Initially pick the cell at this location. picker.Pick(85, 126, 0, ren); renWin.Render(); iren.Start(); vtkWin32OpenGLRenderWindow win32win = vtkWin32OpenGLRenderWindow.SafeDownCast(renWin); if (null != win32win) win32win.Clean(); }
private void SelectAreaClick(vtkObject sender, vtkObjectEventArgs e) { int[] clickPos = Inter.GetEventPosition(); vtkAreaPicker picker = vtkAreaPicker.New(); picker.AreaPick(clickPos[0], clickPos[1], clickPos[0] + 100, clickPos[1] + 100, Viewport); if (picker.GetActor() != null) { vtkPlanes Boundary = picker.GetFrustum(); vtkExtractGeometry Box = vtkExtractGeometry.New(); Box.SetImplicitFunction(Boundary); Box.SetInput(picker.GetActor().GetMapper().GetInput()); vtkVertexGlyphFilter glyphFilter = vtkVertexGlyphFilter.New(); glyphFilter.SetInputConnection(Box.GetOutputPort()); glyphFilter.Update(); vtkPolyData selected = glyphFilter.GetOutput(); vtkPoints points = vtkPoints.New(); vtkUnstructuredGrid grid = vtkUnstructuredGrid.New(); for (int i = 0; i < selected.GetNumberOfPoints(); i++) { points.InsertNextPoint(selected.GetPoint(i)[0], selected.GetPoint(i)[1], selected.GetPoint(i)[2]); } grid.SetPoints(points); vtkSphereSource sphere = vtkSphereSource.New(); sphere.SetPhiResolution(6); sphere.SetThetaResolution(6); sphere.SetRadius(0.1); vtkGlyph3D glyph3D = vtkGlyph3D.New(); glyph3D.SetInput(grid); glyph3D.SetSourceConnection(sphere.GetOutputPort()); vtkPolyDataMapper mapper = vtkPolyDataMapper.New(); mapper.SetInputConnection(glyph3D.GetOutputPort()); //double[] P = new double[3]; //bool selected = false; //vtkPoints points = Faces.GetPoints(); //double[] ClickedPoint = PointPicker.GetActor().GetMapper().GetInput().GetPoint(PointPicker.GetPointId()); //for (int i = 0; i < points.GetNumberOfPoints(); i++) //{ // if (Math.Abs(points.GetPoint(i)[0] - ClickedPoint[0]) < 1e-6 && // Math.Abs(points.GetPoint(i)[1] - ClickedPoint[1]) < 1e-6 && // Math.Abs(points.GetPoint(i)[2] - ClickedPoint[2]) < 1e-6) // { // selected = true; // P = points.GetPoint(i); // break; // } //} // //if (selected == true) //{ // SelectionPoints.InsertNextPoint(P[0], P[1], P[2]); // // SelectionGlyph = vtkGlyph3D.New(); // SelectionGlyph.SetInput(SelectionPolyData); // SelectionGlyph.SetSourceConnection(SelectionSphere.GetOutputPort()); // SelectionMapper.SetInputConnection(SelectionGlyph.GetOutputPort()); // // // Refresh Viewport // Refresh(); //} } }