/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVTenEllip(String [] argv) { //Prefix Content is: "" // create tensor ellipsoids[] // Create the RenderWindow, Renderer and interactive renderer[] //[] ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.SetMultiSamples(0); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); //[] // Create tensor ellipsoids[] //[] // generate tensors[] ptLoad = new vtkPointLoad(); ptLoad.SetLoadValue((double)100.0); ptLoad.SetSampleDimensions((int)6,(int)6,(int)6); ptLoad.ComputeEffectiveStressOn(); ptLoad.SetModelBounds((double)-10,(double)10,(double)-10,(double)10,(double)-10,(double)10); // extract plane of data[] plane = new vtkImageDataGeometryFilter(); plane.SetInputConnection((vtkAlgorithmOutput)ptLoad.GetOutputPort()); plane.SetExtent((int)2,(int)2,(int)0,(int)99,(int)0,(int)99); // Generate ellipsoids[] sphere = new vtkSphereSource(); sphere.SetThetaResolution((int)8); sphere.SetPhiResolution((int)8); ellipsoids = new vtkTensorGlyph(); ellipsoids.SetInputConnection((vtkAlgorithmOutput)ptLoad.GetOutputPort()); ellipsoids.SetSourceConnection((vtkAlgorithmOutput)sphere.GetOutputPort()); ellipsoids.SetScaleFactor((double)10); ellipsoids.ClampScalingOn(); ellipNormals = new vtkPolyDataNormals(); ellipNormals.SetInputConnection((vtkAlgorithmOutput)ellipsoids.GetOutputPort()); // Map contour[] lut = new vtkLogLookupTable(); lut.SetHueRange((double).6667,(double)0.0); ellipMapper = vtkPolyDataMapper.New(); ellipMapper.SetInputConnection((vtkAlgorithmOutput)ellipNormals.GetOutputPort()); ellipMapper.SetLookupTable((vtkScalarsToColors)lut); plane.Update(); //force update for scalar range[] ellipMapper.SetScalarRange((double)((vtkDataSet)plane.GetOutput()).GetScalarRange()[0],(double)((vtkDataSet)plane.GetOutput()).GetScalarRange()[1]); ellipActor = new vtkActor(); ellipActor.SetMapper((vtkMapper)ellipMapper); //[] // Create outline around data[] //[] outline = new vtkOutlineFilter(); outline.SetInputConnection((vtkAlgorithmOutput)ptLoad.GetOutputPort()); outlineMapper = vtkPolyDataMapper.New(); outlineMapper.SetInputConnection((vtkAlgorithmOutput)outline.GetOutputPort()); outlineActor = new vtkActor(); outlineActor.SetMapper((vtkMapper)outlineMapper); outlineActor.GetProperty().SetColor((double)0,(double)0,(double)0); //[] // Create cone indicating application of load[] //[] coneSrc = new vtkConeSource(); coneSrc.SetRadius((double).5); coneSrc.SetHeight((double)2); coneMap = vtkPolyDataMapper.New(); coneMap.SetInputConnection((vtkAlgorithmOutput)coneSrc.GetOutputPort()); coneActor = new vtkActor(); coneActor.SetMapper((vtkMapper)coneMap); coneActor.SetPosition((double)0,(double)0,(double)11); coneActor.RotateY((double)90); coneActor.GetProperty().SetColor((double)1,(double)0,(double)0); camera = new vtkCamera(); camera.SetFocalPoint((double)0.113766,(double)-1.13665,(double)-1.01919); camera.SetPosition((double)-29.4886,(double)-63.1488,(double)26.5807); camera.SetViewAngle((double)24.4617); camera.SetViewUp((double)0.17138,(double)0.331163,(double)0.927879); camera.SetClippingRange((double)1,(double)100); ren1.AddActor((vtkProp)ellipActor); ren1.AddActor((vtkProp)outlineActor); ren1.AddActor((vtkProp)coneActor); ren1.SetBackground((double)1.0,(double)1.0,(double)1.0); ren1.SetActiveCamera((vtkCamera)camera); renWin.SetSize((int)400,(int)400); renWin.Render(); // prevent the tk window from showing up then start the event loop[] //deleteAllVTKObjects(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVlabeledContours(String [] argv) { //Prefix Content is: "" // demonstrate labeling of contour with scalar value[] // Create the RenderWindow, Renderer and both Actors[] //[] ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.SetMultiSamples(0); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); // Read a slice and contour it[] v16 = new vtkVolume16Reader(); v16.SetDataDimensions((int)64,(int)64); v16.GetOutput().SetOrigin((double)0.0,(double)0.0,(double)0.0); v16.SetDataByteOrderToLittleEndian(); v16.SetFilePrefix((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/headsq/quarter"); v16.SetImageRange((int)45,(int)45); v16.SetDataSpacing((double)3.2,(double)3.2,(double)1.5); iso = new vtkContourFilter(); iso.SetInputConnection((vtkAlgorithmOutput)v16.GetOutputPort()); iso.GenerateValues((int)6,(double)500,(double)1150); iso.Update(); numPts = iso.GetOutput().GetNumberOfPoints(); isoMapper = vtkPolyDataMapper.New(); isoMapper.SetInputConnection((vtkAlgorithmOutput)iso.GetOutputPort()); isoMapper.ScalarVisibilityOn(); isoMapper.SetScalarRange((double)((vtkDataSet)iso.GetOutput()).GetScalarRange()[0],(double)((vtkDataSet)iso.GetOutput()).GetScalarRange()[1]); isoActor = new vtkActor(); isoActor.SetMapper((vtkMapper)isoMapper); // Subsample the points and label them[] mask = new vtkMaskPoints(); mask.SetInputConnection((vtkAlgorithmOutput)iso.GetOutputPort()); mask.SetOnRatio((int)(numPts/50)); mask.SetMaximumNumberOfPoints((int)50); mask.RandomModeOn(); // Create labels for points - only show visible points[] visPts = new vtkSelectVisiblePoints(); visPts.SetInputConnection((vtkAlgorithmOutput)mask.GetOutputPort()); visPts.SetRenderer((vtkRenderer)ren1); ldm = new vtkLabeledDataMapper(); ldm.SetInputConnection((vtkAlgorithmOutput)mask.GetOutputPort()); // ldm SetLabelFormat "%g"[] ldm.SetLabelModeToLabelScalars(); tprop = ldm.GetLabelTextProperty(); tprop.SetFontFamilyToArial(); tprop.SetFontSize((int)10); tprop.SetColor((double)1,(double)0,(double)0); contourLabels = new vtkActor2D(); contourLabels.SetMapper((vtkMapper2D)ldm); // Add the actors to the renderer, set the background and size[] //[] ren1.AddActor2D((vtkProp)isoActor); ren1.AddActor2D((vtkProp)contourLabels); ren1.SetBackground((double)1,(double)1,(double)1); renWin.SetSize((int)500,(int)500); renWin.Render(); ren1.GetActiveCamera().Zoom((double)1.5); // render the image[] //[] // prevent the tk window from showing up then start the event loop[] //deleteAllVTKObjects(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVLineIntersectQuadraticCells(String [] argv) { //Prefix Content is: "" // Contour every quadratic cell type[] // Create a scene with one of each cell type.[] // QuadraticEdge[] edgePoints = new vtkPoints(); edgePoints.SetNumberOfPoints((int)3); edgePoints.InsertPoint((int)0,(double)0,(double)0,(double)0); edgePoints.InsertPoint((int)1,(double)1.0,(double)0,(double)0); edgePoints.InsertPoint((int)2,(double)0.5,(double)0.25,(double)0); edgeScalars = new vtkFloatArray(); edgeScalars.SetNumberOfTuples((int)3); edgeScalars.InsertValue((int)0,(float)0.0); edgeScalars.InsertValue((int)1,(float)0.0); edgeScalars.InsertValue((int)2,(float)0.9); aEdge = new vtkQuadraticEdge(); aEdge.GetPointIds().SetId((int)0,(int)0); aEdge.GetPointIds().SetId((int)1,(int)1); aEdge.GetPointIds().SetId((int)2,(int)2); aEdgeGrid = new vtkUnstructuredGrid(); aEdgeGrid.Allocate((int)1,(int)1); aEdgeGrid.InsertNextCell((int)aEdge.GetCellType(),(vtkIdList)aEdge.GetPointIds()); aEdgeGrid.SetPoints((vtkPoints)edgePoints); aEdgeGrid.GetPointData().SetScalars((vtkDataArray)edgeScalars); aEdgeMapper = new vtkDataSetMapper(); aEdgeMapper.SetInputData((vtkDataSet)aEdgeGrid); aEdgeMapper.ScalarVisibilityOff(); aEdgeActor = new vtkActor(); aEdgeActor.SetMapper((vtkMapper)aEdgeMapper); aEdgeActor.GetProperty().SetRepresentationToWireframe(); aEdgeActor.GetProperty().SetAmbient((double)1.0); // Quadratic triangle[] triPoints = new vtkPoints(); triPoints.SetNumberOfPoints((int)6); triPoints.InsertPoint((int)0,(double)0.0,(double)0.0,(double)0.0); triPoints.InsertPoint((int)1,(double)1.0,(double)0.0,(double)0.0); triPoints.InsertPoint((int)2,(double)0.5,(double)0.8,(double)0.0); triPoints.InsertPoint((int)3,(double)0.5,(double)0.0,(double)0.0); triPoints.InsertPoint((int)4,(double)0.75,(double)0.4,(double)0.0); triPoints.InsertPoint((int)5,(double)0.25,(double)0.4,(double)0.0); triScalars = new vtkFloatArray(); triScalars.SetNumberOfTuples((int)6); triScalars.InsertValue((int)0,(float)0.0); triScalars.InsertValue((int)1,(float)0.0); triScalars.InsertValue((int)2,(float)0.0); triScalars.InsertValue((int)3,(float)1.0); triScalars.InsertValue((int)4,(float)0.0); triScalars.InsertValue((int)5,(float)0.0); aTri = new vtkQuadraticTriangle(); aTri.GetPointIds().SetId((int)0,(int)0); aTri.GetPointIds().SetId((int)1,(int)1); aTri.GetPointIds().SetId((int)2,(int)2); aTri.GetPointIds().SetId((int)3,(int)3); aTri.GetPointIds().SetId((int)4,(int)4); aTri.GetPointIds().SetId((int)5,(int)5); aTriGrid = new vtkUnstructuredGrid(); aTriGrid.Allocate((int)1,(int)1); aTriGrid.InsertNextCell((int)aTri.GetCellType(),(vtkIdList)aTri.GetPointIds()); aTriGrid.SetPoints((vtkPoints)triPoints); aTriGrid.GetPointData().SetScalars((vtkDataArray)triScalars); aTriMapper = new vtkDataSetMapper(); aTriMapper.SetInputData((vtkDataSet)aTriGrid); aTriMapper.ScalarVisibilityOff(); aTriActor = new vtkActor(); aTriActor.SetMapper((vtkMapper)aTriMapper); aTriActor.GetProperty().SetRepresentationToWireframe(); aTriActor.GetProperty().SetAmbient((double)1.0); // Quadratic quadrilateral[] quadPoints = new vtkPoints(); quadPoints.SetNumberOfPoints((int)8); quadPoints.InsertPoint((int)0,(double)0.0,(double)0.0,(double)0.0); quadPoints.InsertPoint((int)1,(double)1.0,(double)0.0,(double)0.0); quadPoints.InsertPoint((int)2,(double)1.0,(double)1.0,(double)0.0); quadPoints.InsertPoint((int)3,(double)0.0,(double)1.0,(double)0.0); quadPoints.InsertPoint((int)4,(double)0.5,(double)0.0,(double)0.0); quadPoints.InsertPoint((int)5,(double)1.0,(double)0.5,(double)0.0); quadPoints.InsertPoint((int)6,(double)0.5,(double)1.0,(double)0.0); quadPoints.InsertPoint((int)7,(double)0.0,(double)0.5,(double)0.0); quadScalars = new vtkFloatArray(); quadScalars.SetNumberOfTuples((int)8); quadScalars.InsertValue((int)0,(float)0.0); quadScalars.InsertValue((int)1,(float)0.0); quadScalars.InsertValue((int)2,(float)1.0); quadScalars.InsertValue((int)3,(float)1.0); quadScalars.InsertValue((int)4,(float)1.0); quadScalars.InsertValue((int)5,(float)0.0); quadScalars.InsertValue((int)6,(float)0.0); quadScalars.InsertValue((int)7,(float)0.0); aQuad = new vtkQuadraticQuad(); 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); aQuad.GetPointIds().SetId((int)4,(int)4); aQuad.GetPointIds().SetId((int)5,(int)5); aQuad.GetPointIds().SetId((int)6,(int)6); aQuad.GetPointIds().SetId((int)7,(int)7); aQuadGrid = new vtkUnstructuredGrid(); aQuadGrid.Allocate((int)1,(int)1); aQuadGrid.InsertNextCell((int)aQuad.GetCellType(),(vtkIdList)aQuad.GetPointIds()); aQuadGrid.SetPoints((vtkPoints)quadPoints); aQuadGrid.GetPointData().SetScalars((vtkDataArray)quadScalars); aQuadMapper = new vtkDataSetMapper(); aQuadMapper.SetInputData((vtkDataSet)aQuadGrid); aQuadMapper.ScalarVisibilityOff(); aQuadActor = new vtkActor(); aQuadActor.SetMapper((vtkMapper)aQuadMapper); aQuadActor.GetProperty().SetRepresentationToWireframe(); aQuadActor.GetProperty().SetAmbient((double)1.0); // Quadratic tetrahedron[] tetPoints = new vtkPoints(); tetPoints.SetNumberOfPoints((int)10); tetPoints.InsertPoint((int)0,(double)0.0,(double)0.0,(double)0.0); tetPoints.InsertPoint((int)1,(double)1.0,(double)0.0,(double)0.0); tetPoints.InsertPoint((int)2,(double)0.5,(double)0.8,(double)0.0); tetPoints.InsertPoint((int)3,(double)0.5,(double)0.4,(double)1.0); tetPoints.InsertPoint((int)4,(double)0.5,(double)0.0,(double)0.0); tetPoints.InsertPoint((int)5,(double)0.75,(double)0.4,(double)0.0); tetPoints.InsertPoint((int)6,(double)0.25,(double)0.4,(double)0.0); tetPoints.InsertPoint((int)7,(double)0.25,(double)0.2,(double)0.5); tetPoints.InsertPoint((int)8,(double)0.75,(double)0.2,(double)0.5); tetPoints.InsertPoint((int)9,(double)0.50,(double)0.6,(double)0.5); tetScalars = new vtkFloatArray(); tetScalars.SetNumberOfTuples((int)10); tetScalars.InsertValue((int)0,(float)1.0); tetScalars.InsertValue((int)1,(float)1.0); tetScalars.InsertValue((int)2,(float)1.0); tetScalars.InsertValue((int)3,(float)1.0); tetScalars.InsertValue((int)4,(float)0.0); tetScalars.InsertValue((int)5,(float)0.0); tetScalars.InsertValue((int)6,(float)0.0); tetScalars.InsertValue((int)7,(float)0.0); tetScalars.InsertValue((int)8,(float)0.0); tetScalars.InsertValue((int)9,(float)0.0); aTet = new vtkQuadraticTetra(); aTet.GetPointIds().SetId((int)0,(int)0); aTet.GetPointIds().SetId((int)1,(int)1); aTet.GetPointIds().SetId((int)2,(int)2); aTet.GetPointIds().SetId((int)3,(int)3); aTet.GetPointIds().SetId((int)4,(int)4); aTet.GetPointIds().SetId((int)5,(int)5); aTet.GetPointIds().SetId((int)6,(int)6); aTet.GetPointIds().SetId((int)7,(int)7); aTet.GetPointIds().SetId((int)8,(int)8); aTet.GetPointIds().SetId((int)9,(int)9); aTetGrid = new vtkUnstructuredGrid(); aTetGrid.Allocate((int)1,(int)1); aTetGrid.InsertNextCell((int)aTet.GetCellType(),(vtkIdList)aTet.GetPointIds()); aTetGrid.SetPoints((vtkPoints)tetPoints); aTetGrid.GetPointData().SetScalars((vtkDataArray)tetScalars); aTetMapper = new vtkDataSetMapper(); aTetMapper.SetInputData((vtkDataSet)aTetGrid); aTetMapper.ScalarVisibilityOff(); aTetActor = new vtkActor(); aTetActor.SetMapper((vtkMapper)aTetMapper); aTetActor.GetProperty().SetRepresentationToWireframe(); aTetActor.GetProperty().SetAmbient((double)1.0); // Quadratic hexahedron[] hexPoints = new vtkPoints(); hexPoints.SetNumberOfPoints((int)20); hexPoints.InsertPoint((int)0,(double)0,(double)0,(double)0); hexPoints.InsertPoint((int)1,(double)1,(double)0,(double)0); hexPoints.InsertPoint((int)2,(double)1,(double)1,(double)0); hexPoints.InsertPoint((int)3,(double)0,(double)1,(double)0); hexPoints.InsertPoint((int)4,(double)0,(double)0,(double)1); hexPoints.InsertPoint((int)5,(double)1,(double)0,(double)1); hexPoints.InsertPoint((int)6,(double)1,(double)1,(double)1); hexPoints.InsertPoint((int)7,(double)0,(double)1,(double)1); hexPoints.InsertPoint((int)8,(double)0.5,(double)0,(double)0); hexPoints.InsertPoint((int)9,(double)1,(double)0.5,(double)0); hexPoints.InsertPoint((int)10,(double)0.5,(double)1,(double)0); hexPoints.InsertPoint((int)11,(double)0,(double)0.5,(double)0); hexPoints.InsertPoint((int)12,(double)0.5,(double)0,(double)1); hexPoints.InsertPoint((int)13,(double)1,(double)0.5,(double)1); hexPoints.InsertPoint((int)14,(double)0.5,(double)1,(double)1); hexPoints.InsertPoint((int)15,(double)0,(double)0.5,(double)1); hexPoints.InsertPoint((int)16,(double)0,(double)0,(double)0.5); hexPoints.InsertPoint((int)17,(double)1,(double)0,(double)0.5); hexPoints.InsertPoint((int)18,(double)1,(double)1,(double)0.5); hexPoints.InsertPoint((int)19,(double)0,(double)1,(double)0.5); hexScalars = new vtkFloatArray(); hexScalars.SetNumberOfTuples((int)20); hexScalars.InsertValue((int)0,(float)1.0); hexScalars.InsertValue((int)1,(float)1.0); hexScalars.InsertValue((int)2,(float)1.0); hexScalars.InsertValue((int)3,(float)1.0); hexScalars.InsertValue((int)4,(float)1.0); hexScalars.InsertValue((int)5,(float)1.0); hexScalars.InsertValue((int)6,(float)1.0); hexScalars.InsertValue((int)7,(float)1.0); hexScalars.InsertValue((int)8,(float)0.0); hexScalars.InsertValue((int)9,(float)0.0); hexScalars.InsertValue((int)10,(float)0.0); hexScalars.InsertValue((int)11,(float)0.0); hexScalars.InsertValue((int)12,(float)0.0); hexScalars.InsertValue((int)13,(float)0.0); hexScalars.InsertValue((int)14,(float)0.0); hexScalars.InsertValue((int)15,(float)0.0); hexScalars.InsertValue((int)16,(float)0.0); hexScalars.InsertValue((int)17,(float)0.0); hexScalars.InsertValue((int)18,(float)0.0); hexScalars.InsertValue((int)19,(float)0.0); aHex = new vtkQuadraticHexahedron(); aHex.GetPointIds().SetId((int)0,(int)0); aHex.GetPointIds().SetId((int)1,(int)1); aHex.GetPointIds().SetId((int)2,(int)2); aHex.GetPointIds().SetId((int)3,(int)3); aHex.GetPointIds().SetId((int)4,(int)4); aHex.GetPointIds().SetId((int)5,(int)5); aHex.GetPointIds().SetId((int)6,(int)6); aHex.GetPointIds().SetId((int)7,(int)7); aHex.GetPointIds().SetId((int)8,(int)8); aHex.GetPointIds().SetId((int)9,(int)9); aHex.GetPointIds().SetId((int)10,(int)10); aHex.GetPointIds().SetId((int)11,(int)11); aHex.GetPointIds().SetId((int)12,(int)12); aHex.GetPointIds().SetId((int)13,(int)13); aHex.GetPointIds().SetId((int)14,(int)14); aHex.GetPointIds().SetId((int)15,(int)15); aHex.GetPointIds().SetId((int)16,(int)16); aHex.GetPointIds().SetId((int)17,(int)17); aHex.GetPointIds().SetId((int)18,(int)18); aHex.GetPointIds().SetId((int)19,(int)19); aHexGrid = new vtkUnstructuredGrid(); aHexGrid.Allocate((int)1,(int)1); aHexGrid.InsertNextCell((int)aHex.GetCellType(),(vtkIdList)aHex.GetPointIds()); aHexGrid.SetPoints((vtkPoints)hexPoints); aHexGrid.GetPointData().SetScalars((vtkDataArray)hexScalars); aHexMapper = new vtkDataSetMapper(); aHexMapper.SetInputData((vtkDataSet)aHexGrid); aHexMapper.ScalarVisibilityOff(); aHexActor = new vtkActor(); aHexActor.SetMapper((vtkMapper)aHexMapper); aHexActor.GetProperty().SetRepresentationToWireframe(); aHexActor.GetProperty().SetAmbient((double)1.0); // Quadratic wedge[] wedgePoints = new vtkPoints(); wedgePoints.SetNumberOfPoints((int)15); wedgePoints.InsertPoint((int)0,(double)0,(double)0,(double)0); wedgePoints.InsertPoint((int)1,(double)1,(double)0,(double)0); wedgePoints.InsertPoint((int)2,(double)0,(double)1,(double)0); wedgePoints.InsertPoint((int)3,(double)0,(double)0,(double)1); wedgePoints.InsertPoint((int)4,(double)1,(double)0,(double)1); wedgePoints.InsertPoint((int)5,(double)0,(double)1,(double)1); wedgePoints.InsertPoint((int)6,(double)0.5,(double)0,(double)0); wedgePoints.InsertPoint((int)7,(double)0.5,(double)0.5,(double)0); wedgePoints.InsertPoint((int)8,(double)0,(double)0.5,(double)0); wedgePoints.InsertPoint((int)9,(double)0.5,(double)0,(double)1); wedgePoints.InsertPoint((int)10,(double)0.5,(double)0.5,(double)1); wedgePoints.InsertPoint((int)11,(double)0,(double)0.5,(double)1); wedgePoints.InsertPoint((int)12,(double)0,(double)0,(double)0.5); wedgePoints.InsertPoint((int)13,(double)1,(double)0,(double)0.5); wedgePoints.InsertPoint((int)14,(double)0,(double)1,(double)0.5); wedgeScalars = new vtkFloatArray(); wedgeScalars.SetNumberOfTuples((int)15); wedgeScalars.InsertValue((int)0,(float)1.0); wedgeScalars.InsertValue((int)1,(float)1.0); wedgeScalars.InsertValue((int)2,(float)1.0); wedgeScalars.InsertValue((int)3,(float)1.0); wedgeScalars.InsertValue((int)4,(float)1.0); wedgeScalars.InsertValue((int)5,(float)1.0); wedgeScalars.InsertValue((int)6,(float)1.0); wedgeScalars.InsertValue((int)7,(float)1.0); wedgeScalars.InsertValue((int)8,(float)0.0); wedgeScalars.InsertValue((int)9,(float)0.0); wedgeScalars.InsertValue((int)10,(float)0.0); wedgeScalars.InsertValue((int)11,(float)0.0); wedgeScalars.InsertValue((int)12,(float)0.0); wedgeScalars.InsertValue((int)13,(float)0.0); wedgeScalars.InsertValue((int)14,(float)0.0); aWedge = new vtkQuadraticWedge(); 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); aWedge.GetPointIds().SetId((int)6,(int)6); aWedge.GetPointIds().SetId((int)7,(int)7); aWedge.GetPointIds().SetId((int)8,(int)8); aWedge.GetPointIds().SetId((int)9,(int)9); aWedge.GetPointIds().SetId((int)10,(int)10); aWedge.GetPointIds().SetId((int)11,(int)11); aWedge.GetPointIds().SetId((int)12,(int)12); aWedge.GetPointIds().SetId((int)13,(int)13); aWedge.GetPointIds().SetId((int)14,(int)14); aWedgeGrid = new vtkUnstructuredGrid(); aWedgeGrid.Allocate((int)1,(int)1); aWedgeGrid.InsertNextCell((int)aWedge.GetCellType(),(vtkIdList)aWedge.GetPointIds()); aWedgeGrid.SetPoints((vtkPoints)wedgePoints); aWedgeGrid.GetPointData().SetScalars((vtkDataArray)wedgeScalars); wedgeContours = new vtkClipDataSet(); wedgeContours.SetInputData((vtkDataObject)aWedgeGrid); wedgeContours.SetValue((double)0.5); aWedgeContourMapper = new vtkDataSetMapper(); aWedgeContourMapper.SetInputConnection((vtkAlgorithmOutput)wedgeContours.GetOutputPort()); aWedgeContourMapper.ScalarVisibilityOff(); aWedgeMapper = new vtkDataSetMapper(); aWedgeMapper.SetInputData((vtkDataSet)aWedgeGrid); aWedgeMapper.ScalarVisibilityOff(); aWedgeActor = new vtkActor(); aWedgeActor.SetMapper((vtkMapper)aWedgeMapper); aWedgeActor.GetProperty().SetRepresentationToWireframe(); aWedgeActor.GetProperty().SetAmbient((double)1.0); aWedgeContourActor = new vtkActor(); aWedgeContourActor.SetMapper((vtkMapper)aWedgeContourMapper); aWedgeContourActor.GetProperty().SetAmbient((double)1.0); // Quadratic pyramid[] pyraPoints = new vtkPoints(); pyraPoints.SetNumberOfPoints((int)13); pyraPoints.InsertPoint((int)0,(double)0,(double)0,(double)0); pyraPoints.InsertPoint((int)1,(double)1,(double)0,(double)0); pyraPoints.InsertPoint((int)2,(double)1,(double)1,(double)0); pyraPoints.InsertPoint((int)3,(double)0,(double)1,(double)0); pyraPoints.InsertPoint((int)4,(double)0,(double)0,(double)1); pyraPoints.InsertPoint((int)5,(double)0.5,(double)0,(double)0); pyraPoints.InsertPoint((int)6,(double)1,(double)0.5,(double)0); pyraPoints.InsertPoint((int)7,(double)0.5,(double)1,(double)0); pyraPoints.InsertPoint((int)8,(double)0,(double)0.5,(double)0); pyraPoints.InsertPoint((int)9,(double)0,(double)0,(double)0.5); pyraPoints.InsertPoint((int)10,(double)0.5,(double)0,(double)0.5); pyraPoints.InsertPoint((int)11,(double)0.5,(double)0.5,(double)0.5); pyraPoints.InsertPoint((int)12,(double)0,(double)0.5,(double)0.5); pyraScalars = new vtkFloatArray(); pyraScalars.SetNumberOfTuples((int)13); pyraScalars.InsertValue((int)0,(float)1.0); pyraScalars.InsertValue((int)1,(float)1.0); pyraScalars.InsertValue((int)2,(float)1.0); pyraScalars.InsertValue((int)3,(float)1.0); pyraScalars.InsertValue((int)4,(float)1.0); pyraScalars.InsertValue((int)5,(float)1.0); pyraScalars.InsertValue((int)6,(float)1.0); pyraScalars.InsertValue((int)7,(float)1.0); pyraScalars.InsertValue((int)8,(float)0.0); pyraScalars.InsertValue((int)9,(float)0.0); pyraScalars.InsertValue((int)10,(float)0.0); pyraScalars.InsertValue((int)11,(float)0.0); pyraScalars.InsertValue((int)12,(float)0.0); aPyramid = new vtkQuadraticPyramid(); 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); aPyramid.GetPointIds().SetId((int)5,(int)5); aPyramid.GetPointIds().SetId((int)6,(int)6); aPyramid.GetPointIds().SetId((int)7,(int)7); aPyramid.GetPointIds().SetId((int)8,(int)8); aPyramid.GetPointIds().SetId((int)9,(int)9); aPyramid.GetPointIds().SetId((int)10,(int)10); aPyramid.GetPointIds().SetId((int)11,(int)11); aPyramid.GetPointIds().SetId((int)12,(int)12); aPyramidGrid = new vtkUnstructuredGrid(); aPyramidGrid.Allocate((int)1,(int)1); aPyramidGrid.InsertNextCell((int)aPyramid.GetCellType(),(vtkIdList)aPyramid.GetPointIds()); aPyramidGrid.SetPoints((vtkPoints)pyraPoints); aPyramidGrid.GetPointData().SetScalars((vtkDataArray)pyraScalars); pyraContours = new vtkClipDataSet(); pyraContours.SetInputData((vtkDataObject)aPyramidGrid); pyraContours.SetValue((double)0.5); aPyramidContourMapper = new vtkDataSetMapper(); aPyramidContourMapper.SetInputConnection((vtkAlgorithmOutput)pyraContours.GetOutputPort()); aPyramidContourMapper.ScalarVisibilityOff(); aPyramidMapper = new vtkDataSetMapper(); aPyramidMapper.SetInputData((vtkDataSet)aPyramidGrid); aPyramidMapper.ScalarVisibilityOff(); aPyramidActor = new vtkActor(); aPyramidActor.SetMapper((vtkMapper)aPyramidMapper); aPyramidActor.GetProperty().SetRepresentationToWireframe(); aPyramidActor.GetProperty().SetAmbient((double)1.0); aPyramidContourActor = new vtkActor(); aPyramidContourActor.SetMapper((vtkMapper)aPyramidContourMapper); aPyramidContourActor.GetProperty().SetAmbient((double)1.0); // Create the rendering related stuff.[] // Since some of our actors are a single vertex, we need to remove all[] // cullers so the single vertex actors will render[] ren1 = vtkRenderer.New(); ren1.GetCullers().RemoveAllItems(); renWin = vtkRenderWindow.New(); renWin.SetMultiSamples(0); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); ren1.SetBackground((double).1,(double).2,(double).3); renWin.SetSize((int)400,(int)200); // specify properties[] ren1.AddActor((vtkProp)aEdgeActor); ren1.AddActor((vtkProp)aTriActor); ren1.AddActor((vtkProp)aQuadActor); ren1.AddActor((vtkProp)aTetActor); ren1.AddActor((vtkProp)aHexActor); ren1.AddActor((vtkProp)aWedgeActor); ren1.AddActor((vtkProp)aPyramidActor); // places everyone!![] aTriActor.AddPosition((double)2,(double)0,(double)0); aQuadActor.AddPosition((double)4,(double)0,(double)0); aTetActor.AddPosition((double)6,(double)0,(double)0); aHexActor.AddPosition((double)8,(double)0,(double)0); aWedgeActor.AddPosition((double)10,(double)0,(double)0); aPyramidActor.AddPosition((double)12,(double)0,(double)0); BuildBackdrop(-1, 15, -1, 4, -1, 2, .1); ren1.AddActor((vtkProp)base1); base1.GetProperty().SetDiffuseColor((double).2,(double).2,(double).2); ren1.AddActor((vtkProp)left); left.GetProperty().SetDiffuseColor((double).2,(double).2,(double).2); ren1.AddActor((vtkProp)back); back.GetProperty().SetDiffuseColor((double).2,(double).2,(double).2); ren1.ResetCamera(); ren1.GetActiveCamera().Dolly((double)2.5); ren1.ResetCameraClippingRange(); renWin.Render(); // create a little scorecard above each of the cells. These are displayed[] // if a ray cast hits the cell, otherwise they are not shown.[] pm = new vtkPlaneSource(); pm.SetXResolution((int)1); pm.SetYResolution((int)1); pmapper = vtkPolyDataMapper.New(); pmapper.SetInputConnection((vtkAlgorithmOutput)pm.GetOutputPort()); // now try intersecting rays with the cell[] cellPicker = new vtkCellPicker(); edgeCheck = new vtkActor(); edgeCheck.SetMapper((vtkMapper)pmapper); edgeCheck.AddPosition((double)0.5,(double)2.5,(double)0); cellPicker.Pick((double)87,(double)71,(double)0,(vtkRenderer)ren1); if ((cellPicker.GetCellId()) != -1) { ren1.AddActor((vtkProp)edgeCheck); } triCheck = new vtkActor(); triCheck.SetMapper((vtkMapper)pmapper); triCheck.AddPosition((double)2.5,(double)2.5,(double)0); cellPicker.Pick((double)139,(double)72,(double)0,(vtkRenderer)ren1); if ((cellPicker.GetCellId()) != -1) { ren1.AddActor((vtkProp)triCheck); } quadCheck = new vtkActor(); quadCheck.SetMapper((vtkMapper)pmapper); quadCheck.AddPosition((double)4.5,(double)2.5,(double)0); cellPicker.Pick((double)192,(double)78,(double)0,(vtkRenderer)ren1); if ((cellPicker.GetCellId()) != -1) { ren1.AddActor((vtkProp)quadCheck); } tetCheck = new vtkActor(); tetCheck.SetMapper((vtkMapper)pmapper); tetCheck.AddPosition((double)6.5,(double)2.5,(double)0); cellPicker.Pick((double)233,(double)70,(double)0,(vtkRenderer)ren1); if ((cellPicker.GetCellId()) != -1) { ren1.AddActor((vtkProp)tetCheck); } hexCheck = new vtkActor(); hexCheck.SetMapper((vtkMapper)pmapper); hexCheck.AddPosition((double)8.5,(double)2.5,(double)0); cellPicker.Pick((double)287,(double)80,(double)0,(vtkRenderer)ren1); if ((cellPicker.GetCellId()) != -1) { ren1.AddActor((vtkProp)hexCheck); } wedgeCheck = new vtkActor(); wedgeCheck.SetMapper((vtkMapper)pmapper); wedgeCheck.AddPosition((double)10.5,(double)2.5,(double)0); cellPicker.Pick((double)287,(double)80,(double)0,(vtkRenderer)ren1); if ((cellPicker.GetCellId()) != -1) { ren1.AddActor((vtkProp)wedgeCheck); } pyraCheck = new vtkActor(); pyraCheck.SetMapper((vtkMapper)pmapper); pyraCheck.AddPosition((double)12.5,(double)2.5,(double)0); cellPicker.Pick((double)287,(double)80,(double)0,(vtkRenderer)ren1); if ((cellPicker.GetCellId()) != -1) { ren1.AddActor((vtkProp)pyraCheck); } // render the image[] //[] iren.Initialize(); //deleteAllVTKObjects(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVrectGrid(String [] argv) { //Prefix Content is: "" VTK_VARY_RADIUS_BY_VECTOR = 2; // create pipeline[] //[] reader = new vtkDataSetReader(); reader.SetFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/RectGrid2.vtk"); reader.Update(); toRectilinearGrid = new vtkCastToConcrete(); toRectilinearGrid.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); toRectilinearGrid.Update(); plane = new vtkRectilinearGridGeometryFilter(); plane.SetInputData((vtkDataObject)toRectilinearGrid.GetRectilinearGridOutput()); plane.SetExtent((int)0,(int)100,(int)0,(int)100,(int)15,(int)15); warper = new vtkWarpVector(); warper.SetInputConnection((vtkAlgorithmOutput)plane.GetOutputPort()); warper.SetScaleFactor((double)0.05); planeMapper = new vtkDataSetMapper(); planeMapper.SetInputConnection((vtkAlgorithmOutput)warper.GetOutputPort()); planeMapper.SetScalarRange((double)0.197813,(double)0.710419); planeActor = new vtkActor(); planeActor.SetMapper((vtkMapper)planeMapper); cutPlane = new vtkPlane(); cutPlane.SetOrigin(reader.GetOutput().GetCenter()[0],reader.GetOutput().GetCenter()[1],reader.GetOutput().GetCenter()[2]); cutPlane.SetNormal((double)1,(double)0,(double)0); planeCut = new vtkCutter(); planeCut.SetInputData((vtkDataObject)toRectilinearGrid.GetRectilinearGridOutput()); planeCut.SetCutFunction((vtkImplicitFunction)cutPlane); cutMapper = new vtkDataSetMapper(); cutMapper.SetInputConnection((vtkAlgorithmOutput)planeCut.GetOutputPort()); cutMapper.SetScalarRange((double)((vtkDataSet)reader.GetOutput()).GetPointData().GetScalars().GetRange()[0], (double)((vtkDataSet)reader.GetOutput()).GetPointData().GetScalars().GetRange()[1]); cutActor = new vtkActor(); cutActor.SetMapper((vtkMapper)cutMapper); iso = new vtkContourFilter(); iso.SetInputData((vtkDataObject)toRectilinearGrid.GetRectilinearGridOutput()); iso.SetValue((int)0,(double)0.7); normals = new vtkPolyDataNormals(); normals.SetInputConnection((vtkAlgorithmOutput)iso.GetOutputPort()); normals.SetFeatureAngle((double)45); isoMapper = vtkPolyDataMapper.New(); isoMapper.SetInputConnection((vtkAlgorithmOutput)normals.GetOutputPort()); isoMapper.ScalarVisibilityOff(); isoActor = new vtkActor(); isoActor.SetMapper((vtkMapper)isoMapper); isoActor.GetProperty().SetColor((double) 1.0000, 0.8941, 0.7686 ); isoActor.GetProperty().SetRepresentationToWireframe(); streamer = new vtkStreamLine(); streamer.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); streamer.SetStartPosition((double)-1.2,(double)-0.1,(double)1.3); streamer.SetMaximumPropagationTime((double)500); streamer.SetStepLength((double)0.05); streamer.SetIntegrationStepLength((double)0.05); streamer.SetIntegrationDirectionToIntegrateBothDirections(); streamTube = new vtkTubeFilter(); streamTube.SetInputConnection((vtkAlgorithmOutput)streamer.GetOutputPort()); streamTube.SetRadius((double)0.025); streamTube.SetNumberOfSides((int)6); streamTube.SetVaryRadius((int)VTK_VARY_RADIUS_BY_VECTOR); mapStreamTube = vtkPolyDataMapper.New(); mapStreamTube.SetInputConnection((vtkAlgorithmOutput)streamTube.GetOutputPort()); mapStreamTube.SetScalarRange((double)((vtkDataSet)reader.GetOutput()).GetPointData().GetScalars().GetRange()[0], (double)((vtkDataSet)reader.GetOutput()).GetPointData().GetScalars().GetRange()[1]); streamTubeActor = new vtkActor(); streamTubeActor.SetMapper((vtkMapper)mapStreamTube); streamTubeActor.GetProperty().BackfaceCullingOn(); outline = new vtkOutlineFilter(); outline.SetInputData((vtkDataObject)toRectilinearGrid.GetRectilinearGridOutput()); outlineMapper = vtkPolyDataMapper.New(); outlineMapper.SetInputConnection((vtkAlgorithmOutput)outline.GetOutputPort()); outlineActor = new vtkActor(); outlineActor.SetMapper((vtkMapper)outlineMapper); outlineActor.GetProperty().SetColor((double) 0.0000, 0.0000, 0.0000 ); // Graphics stuff[] // Create the RenderWindow, Renderer and both Actors[] //[] ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.SetMultiSamples(0); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); // Add the actors to the renderer, set the background and size[] //[] ren1.AddActor((vtkProp)outlineActor); ren1.AddActor((vtkProp)planeActor); ren1.AddActor((vtkProp)cutActor); ren1.AddActor((vtkProp)isoActor); ren1.AddActor((vtkProp)streamTubeActor); ren1.SetBackground((double)1,(double)1,(double)1); renWin.SetSize((int)400,(int)400); cam1 = ren1.GetActiveCamera(); cam1.SetClippingRange((double)3.76213,(double)10.712); cam1.SetFocalPoint((double)-0.0842503,(double)-0.136905,(double)0.610234); cam1.SetPosition((double)2.53813,(double)2.2678,(double)-5.22172); cam1.SetViewUp((double)-0.241047,(double)0.930635,(double)0.275343); iren.Initialize(); // render the image[] //[] // prevent the tk window from showing up then start the event loop[] //deleteAllVTKObjects(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVfieldToRGrid(String [] argv) { //Prefix Content is: "" //# Generate a rectilinear grid from a field.[] //#[] // get the interactor ui[] // Create a reader and write out the field[] reader = new vtkDataSetReader(); reader.SetFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/RectGrid2.vtk"); ds2do = new vtkDataSetToDataObjectFilter(); ds2do.SetInputConnection((vtkAlgorithmOutput)reader.GetOutputPort()); try { channel = new StreamWriter("RGridField.vtk"); tryCatchError = "NOERROR"; } catch(Exception) {tryCatchError = "ERROR";} if(tryCatchError.Equals("NOERROR")) { channel.Close(); writer = new vtkDataObjectWriter(); writer.SetInputConnection((vtkAlgorithmOutput)ds2do.GetOutputPort()); writer.SetFileName((string)"RGridField.vtk"); writer.Write(); // Read the field[] //[] dor = new vtkDataObjectReader(); dor.SetFileName((string)"RGridField.vtk"); do2ds = new vtkDataObjectToDataSetFilter(); do2ds.SetInputConnection((vtkAlgorithmOutput)dor.GetOutputPort()); do2ds.SetDataSetTypeToRectilinearGrid(); do2ds.SetDimensionsComponent((string)"Dimensions",(int)0); do2ds.SetPointComponent((int)0,(string)"XCoordinates",(int)0); do2ds.SetPointComponent((int)1,(string)"YCoordinates",(int)0); do2ds.SetPointComponent((int)2,(string)"ZCoordinates",(int)0); do2ds.Update(); fd2ad = new vtkFieldDataToAttributeDataFilter(); fd2ad.SetInputData((vtkDataObject)do2ds.GetRectilinearGridOutput()); fd2ad.SetInputFieldToDataObjectField(); fd2ad.SetOutputAttributeDataToPointData(); fd2ad.SetVectorComponent((int)0,(string)"vectors",(int)0); fd2ad.SetVectorComponent((int)1,(string)"vectors",(int)1); fd2ad.SetVectorComponent((int)2,(string)"vectors",(int)2); fd2ad.SetScalarComponent((int)0,(string)"scalars",(int)0); fd2ad.Update(); // create pipeline[] //[] plane = new vtkRectilinearGridGeometryFilter(); plane.SetInputData((vtkDataObject)fd2ad.GetRectilinearGridOutput()); plane.SetExtent((int)0,(int)100,(int)0,(int)100,(int)15,(int)15); warper = new vtkWarpVector(); warper.SetInputConnection((vtkAlgorithmOutput)plane.GetOutputPort()); warper.SetScaleFactor((double)0.05); planeMapper = new vtkDataSetMapper(); planeMapper.SetInputConnection((vtkAlgorithmOutput)warper.GetOutputPort()); planeMapper.SetScalarRange((double)0.197813,(double)0.710419); planeActor = new vtkActor(); planeActor.SetMapper((vtkMapper)planeMapper); cutPlane = new vtkPlane(); cutPlane.SetOrigin(fd2ad.GetOutput().GetCenter()[0],fd2ad.GetOutput().GetCenter()[1],fd2ad.GetOutput().GetCenter()[2]); cutPlane.SetNormal((double)1,(double)0,(double)0); planeCut = new vtkCutter(); planeCut.SetInputData((vtkDataObject)fd2ad.GetRectilinearGridOutput()); planeCut.SetCutFunction((vtkImplicitFunction)cutPlane); cutMapper = new vtkDataSetMapper(); cutMapper.SetInputConnection((vtkAlgorithmOutput)planeCut.GetOutputPort()); cutMapper.SetScalarRange( (double)((vtkDataSet)fd2ad.GetOutput()).GetPointData().GetScalars().GetRange()[0], (double)((vtkDataSet)fd2ad.GetOutput()).GetPointData().GetScalars().GetRange()[1]); cutActor = new vtkActor(); cutActor.SetMapper((vtkMapper)cutMapper); iso = new vtkContourFilter(); iso.SetInputData((vtkDataObject)fd2ad.GetRectilinearGridOutput()); iso.SetValue((int)0,(double)0.7); normals = new vtkPolyDataNormals(); normals.SetInputConnection((vtkAlgorithmOutput)iso.GetOutputPort()); normals.SetFeatureAngle((double)45); isoMapper = vtkPolyDataMapper.New(); isoMapper.SetInputConnection((vtkAlgorithmOutput)normals.GetOutputPort()); isoMapper.ScalarVisibilityOff(); isoActor = new vtkActor(); isoActor.SetMapper((vtkMapper)isoMapper); isoActor.GetProperty().SetColor((double) 1.0000, 0.8941, 0.7686 ); isoActor.GetProperty().SetRepresentationToWireframe(); streamer = new vtkStreamLine(); streamer.SetInputConnection((vtkAlgorithmOutput)fd2ad.GetOutputPort()); streamer.SetStartPosition((double)-1.2,(double)-0.1,(double)1.3); streamer.SetMaximumPropagationTime((double)500); streamer.SetStepLength((double)0.05); streamer.SetIntegrationStepLength((double)0.05); streamer.SetIntegrationDirectionToIntegrateBothDirections(); streamTube = new vtkTubeFilter(); streamTube.SetInputConnection((vtkAlgorithmOutput)streamer.GetOutputPort()); streamTube.SetRadius((double)0.025); streamTube.SetNumberOfSides((int)6); streamTube.SetVaryRadiusToVaryRadiusByVector(); mapStreamTube = vtkPolyDataMapper.New(); mapStreamTube.SetInputConnection((vtkAlgorithmOutput)streamTube.GetOutputPort()); mapStreamTube.SetScalarRange( (double)((vtkDataSet)fd2ad.GetOutput()).GetPointData().GetScalars().GetRange()[0], (double)((vtkDataSet)fd2ad.GetOutput()).GetPointData().GetScalars().GetRange()[1]); streamTubeActor = new vtkActor(); streamTubeActor.SetMapper((vtkMapper)mapStreamTube); streamTubeActor.GetProperty().BackfaceCullingOn(); outline = new vtkOutlineFilter(); outline.SetInputData((vtkDataObject)fd2ad.GetRectilinearGridOutput()); outlineMapper = vtkPolyDataMapper.New(); outlineMapper.SetInputConnection((vtkAlgorithmOutput)outline.GetOutputPort()); outlineActor = new vtkActor(); outlineActor.SetMapper((vtkMapper)outlineMapper); outlineActor.GetProperty().SetColor((double) 0.0000, 0.0000, 0.0000 ); // Graphics stuff[] // Create the RenderWindow, Renderer and both Actors[] //[] ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.SetMultiSamples(0); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); // Add the actors to the renderer, set the background and size[] //[] ren1.AddActor((vtkProp)outlineActor); ren1.AddActor((vtkProp)planeActor); ren1.AddActor((vtkProp)cutActor); ren1.AddActor((vtkProp)isoActor); ren1.AddActor((vtkProp)streamTubeActor); ren1.SetBackground((double)1,(double)1,(double)1); renWin.SetSize((int)300,(int)300); ren1.GetActiveCamera().SetPosition((double)0.0390893,(double)0.184813,(double)-3.94026); ren1.GetActiveCamera().SetFocalPoint((double)-0.00578326,(double)0,(double)0.701967); ren1.GetActiveCamera().SetViewAngle((double)30); ren1.GetActiveCamera().SetViewUp((double)0.00850257,(double)0.999169,(double)0.0398605); ren1.GetActiveCamera().SetClippingRange((double)3.08127,(double)6.62716); iren.Initialize(); // render the image[] //[] File.Delete("RGridField.vtk"); } // prevent the tk window from showing up then start the event loop[] //deleteAllVTKObjects(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVPlot3DScalars(String[] argv) { //Prefix Content is: "" //[] // All Plot3D scalar functions[] //[] // Create the RenderWindow, Renderer and both Actors[] //[] renWin = vtkRenderWindow.New(); renWin.SetMultiSamples(0); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); scalarLabels = "Density Pressure Temperature Enthalpy Internal_Energy Kinetic_Energy Velocity_Magnitude Stagnation_Energy Entropy Swirl"; scalarFunctions = "100 110 120 130 140 144 153 163 170 184"; camera = new vtkCamera(); light = new vtkLight(); math = new vtkMath(); // All text actors will share the same text prop[] textProp = new vtkTextProperty(); textProp.SetFontSize((int)10); textProp.SetFontFamilyToArial(); textProp.SetColor((double)0, (double)0, (double)0); i = 0; foreach (string scalarFunction in scalarFunctions.Split(new char[] { ' ' })) { pl3d[getArrayIndex(scalarFunction)] = new vtkMultiBlockPLOT3DReader(); pl3d[getArrayIndex(scalarFunction)].SetXYZFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/bluntfinxyz.bin"); pl3d[getArrayIndex(scalarFunction)].SetQFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/bluntfinq.bin"); pl3d[getArrayIndex(scalarFunction)].SetScalarFunctionNumber((int)(int)(Int32.Parse(scalarFunction))); pl3d[getArrayIndex(scalarFunction)].Update(); plane[getArrayIndex(scalarFunction)] = new vtkStructuredGridGeometryFilter(); plane[getArrayIndex(scalarFunction)].SetInputData((vtkDataSet)pl3d[getArrayIndex(scalarFunction)].GetOutput().GetBlock(0)); plane[getArrayIndex(scalarFunction)].SetExtent((int)25, (int)25, (int)0, (int)100, (int)0, (int)100); mapper[getArrayIndex(scalarFunction)] = vtkPolyDataMapper.New(); mapper[getArrayIndex(scalarFunction)].SetInputConnection((vtkAlgorithmOutput)plane[getArrayIndex(scalarFunction)].GetOutputPort()); mapper[getArrayIndex(scalarFunction)].SetScalarRange((double)((vtkDataSet)pl3d[getArrayIndex(scalarFunction)].GetOutput().GetBlock(0)).GetPointData().GetScalars().GetRange()[0], (double)((vtkDataSet)pl3d[getArrayIndex(scalarFunction)].GetOutput().GetBlock(0)).GetPointData().GetScalars().GetRange()[1]); actor[getArrayIndex(scalarFunction)] = new vtkActor(); actor[getArrayIndex(scalarFunction)].SetMapper((vtkMapper)mapper[getArrayIndex(scalarFunction)]); ren[getArrayIndex(scalarFunction)] = vtkRenderer.New(); ren[getArrayIndex(scalarFunction)].SetBackground((double)0, (double)0, (double).5); ren[getArrayIndex(scalarFunction)].SetActiveCamera((vtkCamera)camera); ren[getArrayIndex(scalarFunction)].AddLight((vtkLight)light); renWin.AddRenderer(ren[getArrayIndex(scalarFunction)]); ren[getArrayIndex(scalarFunction)].SetBackground((double)vtkMath.Random((double).5, (double)1), (double)vtkMath.Random((double).5, (double)1), (double)vtkMath.Random((double).5, (double)1)); ren[getArrayIndex(scalarFunction)].AddActor((vtkProp)actor[getArrayIndex(scalarFunction)]); textMapper[getArrayIndex(scalarFunction)] = new vtkTextMapper(); textMapper[getArrayIndex(scalarFunction)].SetInput(scalarLabels.Split(new char[] { ' ' })[i]); textMapper[getArrayIndex(scalarFunction)].SetTextProperty((vtkTextProperty)textProp); text[getArrayIndex(scalarFunction)] = new vtkActor2D(); text[getArrayIndex(scalarFunction)].SetMapper((vtkMapper2D)textMapper[getArrayIndex(scalarFunction)]); text[getArrayIndex(scalarFunction)].SetPosition((double)2, (double)3); ren[getArrayIndex(scalarFunction)].AddActor2D(text[getArrayIndex(scalarFunction)]); i = i + 1; } //[] // now layout renderers[] column = 1; row = 1; deltaX = 1.0 / 5.0; deltaY = 1.0 / 2.0; foreach (string scalarFunction in scalarFunctions.Split(new char[] { ' ' })) { ren[getArrayIndex(scalarFunction)].SetViewport((double)(column - 1) * deltaX, (double)(row - 1) * deltaY, (double)column * deltaX, (double)row * deltaY); column = column + 1; if ((column) > 5) { column = 1; row = row + 1; } } camera.SetViewUp((double)0, (double)1, (double)0); camera.SetFocalPoint((double)0, (double)0, (double)0); camera.SetPosition((double)1, (double)0, (double)0); ren[100].ResetCamera(); camera.Dolly((double)1.25); ren[100].ResetCameraClippingRange(); ren[110].ResetCameraClippingRange(); ren[120].ResetCameraClippingRange(); ren[130].ResetCameraClippingRange(); ren[140].ResetCameraClippingRange(); ren[144].ResetCameraClippingRange(); ren[153].ResetCameraClippingRange(); ren[163].ResetCameraClippingRange(); ren[170].ResetCameraClippingRange(); ren[184].ResetCameraClippingRange(); light.SetPosition(camera.GetPosition()[0], camera.GetPosition()[1], camera.GetPosition()[2]); light.SetFocalPoint(camera.GetFocalPoint()[0], camera.GetFocalPoint()[1], camera.GetFocalPoint()[2]); renWin.SetSize(600, 180); renWin.Render(); iren.Initialize(); // render the image[] //[] // prevent the tk window from showing up then start the event loop[] //deleteAllVTKObjects(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVmergeFilter(String [] argv) { //Prefix Content is: "" // Create the RenderWindow, Renderer and both Actors[] //[] ren1 = vtkRenderer.New(); ren2 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.SetMultiSamples(0); renWin.AddRenderer((vtkRenderer)ren1); renWin.AddRenderer((vtkRenderer)ren2); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); // create pipeline[] //[] pl3d = new vtkMultiBlockPLOT3DReader(); pl3d.SetXYZFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/combxyz.bin"); pl3d.SetQFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/combq.bin"); pl3d.SetScalarFunctionNumber((int)110); pl3d.SetVectorFunctionNumber((int)202); pl3d.Update(); probeLine = new vtkLineSource(); probeLine.SetPoint1((double)1,(double)1,(double)29); probeLine.SetPoint2((double)16.5,(double)5,(double)31.7693); probeLine.SetResolution((int)500); probe = new vtkProbeFilter(); probe.SetInputConnection((vtkAlgorithmOutput)probeLine.GetOutputPort()); probe.SetSourceData((vtkDataObject)pl3d.GetOutput().GetBlock(0)); probe.Update(); probeTube = new vtkTubeFilter(); probeTube.SetInputData((vtkDataObject)probe.GetPolyDataOutput()); probeTube.SetNumberOfSides((int)5); probeTube.SetRadius((double).05); probeMapper = vtkPolyDataMapper.New(); probeMapper.SetInputConnection((vtkAlgorithmOutput)probeTube.GetOutputPort()); probeMapper.SetScalarRange((double)((vtkDataSet)pl3d.GetOutput().GetBlock(0)).GetScalarRange()[0], (double)((vtkDataSet)pl3d.GetOutput().GetBlock(0)).GetScalarRange()[1]); probeActor = new vtkActor(); probeActor.SetMapper((vtkMapper)probeMapper); displayLine = new vtkLineSource(); displayLine.SetPoint1((double)0,(double)0,(double)0); displayLine.SetPoint2((double)1,(double)0,(double)0); displayLine.SetResolution((int)probeLine.GetResolution()); displayMerge = new vtkMergeFilter(); displayMerge.SetGeometryConnection(displayLine.GetOutputPort()); displayMerge.SetScalarsData((vtkDataSet)probe.GetPolyDataOutput()); displayMerge.Update(); displayWarp = new vtkWarpScalar(); displayWarp.SetInputData((vtkDataObject)displayMerge.GetPolyDataOutput()); displayWarp.SetNormal((double)0,(double)1,(double)0); displayWarp.SetScaleFactor((double).000001); displayWarp.Update(); displayMapper = vtkPolyDataMapper.New(); displayMapper.SetInputData((vtkPolyData)displayWarp.GetPolyDataOutput()); displayMapper.SetScalarRange((double)((vtkDataSet)pl3d.GetOutput().GetBlock(0)).GetScalarRange()[0], (double)((vtkDataSet)pl3d.GetOutput().GetBlock(0)).GetScalarRange()[1]); displayActor = new vtkActor(); displayActor.SetMapper((vtkMapper)displayMapper); outline = new vtkStructuredGridOutlineFilter(); outline.SetInputData(pl3d.GetOutput().GetBlock(0)); outlineMapper = vtkPolyDataMapper.New(); outlineMapper.SetInputConnection((vtkAlgorithmOutput)outline.GetOutputPort()); outlineActor = new vtkActor(); outlineActor.SetMapper((vtkMapper)outlineMapper); outlineActor.GetProperty().SetColor((double)0,(double)0,(double)0); ren1.AddActor((vtkProp)outlineActor); ren1.AddActor((vtkProp)probeActor); ren1.SetBackground((double)1,(double)1,(double)1); ren1.SetViewport((double)0,(double).25,(double)1,(double)1); ren2.AddActor((vtkProp)displayActor); ren2.SetBackground((double)0,(double)0,(double)0); ren2.SetViewport((double)0,(double)0,(double)1,(double).25); renWin.SetSize((int)300,(int)300); ren1.ResetCamera(); cam1 = ren1.GetActiveCamera(); cam1.SetClippingRange((double)3.95297,(double)50); cam1.SetFocalPoint((double)8.88908,(double)0.595038,(double)29.3342); cam1.SetPosition((double)9.9,(double)-26,(double)41); cam1.SetViewUp((double)0.060772,(double)-0.319905,(double)0.945498); ren2.ResetCamera(); cam2 = ren2.GetActiveCamera(); cam2.ParallelProjectionOn(); cam2.SetParallelScale((double).15); iren.Initialize(); // render the image[] //[] // prevent the tk window from showing up then start the event loop[] //deleteAllVTKObjects(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVprobeComb(String [] argv) { //Prefix Content is: "" // create planes[] // Create the RenderWindow, Renderer and both Actors[] //[] ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.SetMultiSamples(0); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); // create pipeline[] //[] pl3d = new vtkMultiBlockPLOT3DReader(); pl3d.SetXYZFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/combxyz.bin"); pl3d.SetQFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/combq.bin"); pl3d.SetScalarFunctionNumber((int)100); pl3d.SetVectorFunctionNumber((int)202); pl3d.Update(); plane = new vtkPlaneSource(); plane.SetResolution((int)50,(int)50); transP1 = new vtkTransform(); transP1.Translate((double)3.7,(double)0.0,(double)28.37); transP1.Scale((double)5,(double)5,(double)5); transP1.RotateY((double)90); tpd1 = new vtkTransformPolyDataFilter(); tpd1.SetInputConnection((vtkAlgorithmOutput)plane.GetOutputPort()); tpd1.SetTransform((vtkAbstractTransform)transP1); outTpd1 = new vtkOutlineFilter(); outTpd1.SetInputConnection((vtkAlgorithmOutput)tpd1.GetOutputPort()); mapTpd1 = vtkPolyDataMapper.New(); mapTpd1.SetInputConnection((vtkAlgorithmOutput)outTpd1.GetOutputPort()); tpd1Actor = new vtkActor(); tpd1Actor.SetMapper((vtkMapper)mapTpd1); tpd1Actor.GetProperty().SetColor((double)0,(double)0,(double)0); transP2 = new vtkTransform(); transP2.Translate((double)9.2,(double)0.0,(double)31.20); transP2.Scale((double)5,(double)5,(double)5); transP2.RotateY((double)90); tpd2 = new vtkTransformPolyDataFilter(); tpd2.SetInputConnection((vtkAlgorithmOutput)plane.GetOutputPort()); tpd2.SetTransform((vtkAbstractTransform)transP2); outTpd2 = new vtkOutlineFilter(); outTpd2.SetInputConnection((vtkAlgorithmOutput)tpd2.GetOutputPort()); mapTpd2 = vtkPolyDataMapper.New(); mapTpd2.SetInputConnection((vtkAlgorithmOutput)outTpd2.GetOutputPort()); tpd2Actor = new vtkActor(); tpd2Actor.SetMapper((vtkMapper)mapTpd2); tpd2Actor.GetProperty().SetColor((double)0,(double)0,(double)0); transP3 = new vtkTransform(); transP3.Translate((double)13.27,(double)0.0,(double)33.30); transP3.Scale((double)5,(double)5,(double)5); transP3.RotateY((double)90); tpd3 = new vtkTransformPolyDataFilter(); tpd3.SetInputConnection((vtkAlgorithmOutput)plane.GetOutputPort()); tpd3.SetTransform((vtkAbstractTransform)transP3); outTpd3 = new vtkOutlineFilter(); outTpd3.SetInputConnection((vtkAlgorithmOutput)tpd3.GetOutputPort()); mapTpd3 = vtkPolyDataMapper.New(); mapTpd3.SetInputConnection((vtkAlgorithmOutput)outTpd3.GetOutputPort()); tpd3Actor = new vtkActor(); tpd3Actor.SetMapper((vtkMapper)mapTpd3); tpd3Actor.GetProperty().SetColor((double)0,(double)0,(double)0); appendF = new vtkAppendPolyData(); appendF.AddInputConnection(tpd1.GetOutputPort()); appendF.AddInputConnection(tpd2.GetOutputPort()); appendF.AddInputConnection(tpd3.GetOutputPort()); probe = new vtkProbeFilter(); probe.SetInputConnection((vtkAlgorithmOutput)appendF.GetOutputPort()); probe.SetSourceData((vtkDataSet)pl3d.GetOutput().GetBlock(0)); contour = new vtkContourFilter(); contour.SetInputConnection((vtkAlgorithmOutput)probe.GetOutputPort()); contour.GenerateValues((int)50,(double)((vtkDataSet)pl3d.GetOutput().GetBlock(0)).GetScalarRange()[0], (double)((vtkDataSet)pl3d.GetOutput().GetBlock(0)).GetScalarRange()[1]); contourMapper = vtkPolyDataMapper.New(); contourMapper.SetInputConnection((vtkAlgorithmOutput)contour.GetOutputPort()); contourMapper.SetScalarRange((double)((vtkDataSet)pl3d.GetOutput().GetBlock(0)).GetScalarRange()[0], (double)((vtkDataSet)pl3d.GetOutput().GetBlock(0)).GetScalarRange()[1]); planeActor = new vtkActor(); planeActor.SetMapper((vtkMapper)contourMapper); outline = new vtkStructuredGridOutlineFilter(); outline.SetInputData((vtkDataSet)pl3d.GetOutput().GetBlock(0)); outlineMapper = vtkPolyDataMapper.New(); outlineMapper.SetInputConnection((vtkAlgorithmOutput)outline.GetOutputPort()); outlineActor = new vtkActor(); outlineActor.SetMapper((vtkMapper)outlineMapper); outlineActor.GetProperty().SetColor((double)0,(double)0,(double)0); ren1.AddActor((vtkProp)outlineActor); ren1.AddActor((vtkProp)planeActor); ren1.AddActor((vtkProp)tpd1Actor); ren1.AddActor((vtkProp)tpd2Actor); ren1.AddActor((vtkProp)tpd3Actor); ren1.SetBackground((double)1,(double)1,(double)1); renWin.SetSize((int)400,(int)400); cam1 = ren1.GetActiveCamera(); cam1.SetClippingRange((double)3.95297,(double)50); cam1.SetFocalPoint((double)8.88908,(double)0.595038,(double)29.3342); cam1.SetPosition((double)-12.3332,(double)31.7479,(double)41.2387); cam1.SetViewUp((double)0.060772,(double)-0.319905,(double)0.945498); iren.Initialize(); // prevent the tk window from showing up then start the event loop[] //deleteAllVTKObjects(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVTestGridSynchronizedTemplates3D(String [] argv) { //Prefix Content is: "" // cut data[] pl3d = new vtkMultiBlockPLOT3DReader(); pl3d.SetXYZFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/combxyz.bin"); pl3d.SetQFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/combq.bin"); pl3d.SetScalarFunctionNumber((int)100); pl3d.SetVectorFunctionNumber((int)202); pl3d.Update(); range = ((vtkDataSet)pl3d.GetOutput().GetBlock(0)).GetPointData().GetScalars().GetRange(); min = (double)(lindex(range,0)); max = (double)(lindex(range,1)); value = (min+max)/2.0; //vtkGridSynchronizedTemplates3D cf[] cf = new vtkContourFilter(); cf.SetInputData((vtkDataSet)pl3d.GetOutput().GetBlock(0)); cf.SetValue((int)0,(double)value); //cf ComputeNormalsOff[] cfMapper = vtkPolyDataMapper.New(); cfMapper.ImmediateModeRenderingOn(); cfMapper.SetInputConnection((vtkAlgorithmOutput)cf.GetOutputPort()); cfMapper.SetScalarRange((double)((vtkDataSet)pl3d.GetOutput().GetBlock(0)).GetPointData().GetScalars().GetRange()[0], (double)((vtkDataSet)pl3d.GetOutput().GetBlock(0)).GetPointData().GetScalars().GetRange()[1]); cfActor = new vtkActor(); cfActor.SetMapper((vtkMapper)cfMapper); //outline[] outline = new vtkStructuredGridOutlineFilter(); outline.SetInputData((vtkDataSet)pl3d.GetOutput().GetBlock(0)); outlineMapper = vtkPolyDataMapper.New(); outlineMapper.SetInputConnection((vtkAlgorithmOutput)outline.GetOutputPort()); outlineActor = new vtkActor(); outlineActor.SetMapper((vtkMapper)outlineMapper); outlineActor.GetProperty().SetColor((double)0,(double)0,(double)0); //# Graphics stuff[] // Create the RenderWindow, Renderer and both Actors[] //[] ren1 = vtkRenderer.New(); renWin = vtkRenderWindow.New(); renWin.SetMultiSamples(0); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); // Add the actors to the renderer, set the background and size[] //[] ren1.AddActor((vtkProp)outlineActor); ren1.AddActor((vtkProp)cfActor); ren1.SetBackground((double)1,(double)1,(double)1); renWin.SetSize((int)400,(int)400); cam1 = ren1.GetActiveCamera(); cam1.SetClippingRange((double)3.95297,(double)50); cam1.SetFocalPoint((double)9.71821,(double)0.458166,(double)29.3999); cam1.SetPosition((double)2.7439,(double)-37.3196,(double)38.7167); cam1.SetViewUp((double)-0.16123,(double)0.264271,(double)0.950876); iren.Initialize(); // render the image[] //[] // loop over surfaces[] i = 0; while((i) < 17) { cf.SetValue((int)0,(double)min+(i/16.0)*(max-min)); renWin.Render(); i = i + 1; } cf.SetValue((int)0,(double)min+(0.2)*(max-min)); renWin.Render(); // prevent the tk window from showing up then start the event loop[] //deleteAllVTKObjects(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void AVPlot3DVectors(String [] argv) { //Prefix Content is: "" //[] // All Plot3D vector functions[] //[] // Create the RenderWindow, Renderer and both Actors[] //[] renWin = vtkRenderWindow.New(); renWin.SetMultiSamples(0); ren1 = vtkRenderer.New(); ren1.SetBackground((double).8,(double).8,(double).2); renWin.AddRenderer((vtkRenderer)ren1); iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow((vtkRenderWindow)renWin); vectorLabels = "Velocity Vorticity Momentum Pressure_Gradient"; vectorFunctions = "200 201 202 210"; camera = new vtkCamera(); light = new vtkLight(); // All text actors will share the same text prop[] textProp = new vtkTextProperty(); textProp.SetFontSize((int)10); textProp.SetFontFamilyToArial(); textProp.SetColor((double).3,(double)1,(double)1); i = 0; foreach (string vectorFunction in vectorFunctions.Split(new char[]{' '})) { pl3d[getArrayIndex(vectorFunction)] = new vtkMultiBlockPLOT3DReader(); pl3d[getArrayIndex(vectorFunction)].SetXYZFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/bluntfinxyz.bin"); pl3d[getArrayIndex(vectorFunction)].SetQFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/bluntfinq.bin"); pl3d[getArrayIndex(vectorFunction)].SetVectorFunctionNumber((int)(int)(getArrayIndex(vectorFunction))); pl3d[getArrayIndex(vectorFunction)].Update(); plane[getArrayIndex(vectorFunction)] = new vtkStructuredGridGeometryFilter(); plane[getArrayIndex(vectorFunction)].SetInputData((vtkDataSet)pl3d[getArrayIndex(vectorFunction)].GetOutput().GetBlock(0)); plane[getArrayIndex(vectorFunction)].SetExtent((int)25,(int)25,(int)0,(int)100,(int)0,(int)100); hog[getArrayIndex(vectorFunction)] = new vtkHedgeHog(); hog[getArrayIndex(vectorFunction)].SetInputConnection((vtkAlgorithmOutput)plane[getArrayIndex(vectorFunction)].GetOutputPort()); maxnorm = ((vtkDataSet)pl3d[getArrayIndex(vectorFunction)].GetOutput().GetBlock(0)).GetPointData().GetVectors().GetMaxNorm(); hog[getArrayIndex(vectorFunction)].SetScaleFactor((double)1.0/maxnorm); mapper[getArrayIndex(vectorFunction)] = vtkPolyDataMapper.New(); mapper[getArrayIndex(vectorFunction)].SetInputConnection((vtkAlgorithmOutput)hog[getArrayIndex(vectorFunction)].GetOutputPort()); actor[getArrayIndex(vectorFunction)] = new vtkActor(); actor[getArrayIndex(vectorFunction)].SetMapper((vtkMapper)mapper[getArrayIndex(vectorFunction)]); ren[getArrayIndex(vectorFunction)] = vtkRenderer.New(); ren[getArrayIndex(vectorFunction)].SetBackground((double)0.5,(double).5,(double).5); ren[getArrayIndex(vectorFunction)].SetActiveCamera((vtkCamera)camera); ren[getArrayIndex(vectorFunction)].AddLight((vtkLight)light); renWin.AddRenderer(ren[getArrayIndex(vectorFunction)]); ren[getArrayIndex(vectorFunction)].AddActor((vtkProp)actor[getArrayIndex(vectorFunction)]); textMapper[getArrayIndex(vectorFunction)] = new vtkTextMapper(); textMapper[getArrayIndex(vectorFunction)].SetInput(vectorLabels.Split(new char[] { ' ' })[i]); textMapper[getArrayIndex(vectorFunction)].SetTextProperty((vtkTextProperty)textProp); text[getArrayIndex(vectorFunction)] = new vtkActor2D(); text[getArrayIndex(vectorFunction)].SetMapper((vtkMapper2D)textMapper[getArrayIndex(vectorFunction)]); text[getArrayIndex(vectorFunction)].SetPosition((double)2,(double)5); ren[getArrayIndex(vectorFunction)].AddActor2D((vtkProp)text[getArrayIndex(vectorFunction)]); i = i + 1; } //[] // now layout renderers[] column = 1; row = 1; deltaX = 1.0/2.0; deltaY = 1.0/2.0; foreach (string vectorFunction in vectorFunctions.Split(new char[]{' '})) { ren[getArrayIndex(vectorFunction)].SetViewport((double)(column - 1) * deltaX + (deltaX * .05), (double)(row - 1) * deltaY + (deltaY * .05), (double)column * deltaX - (deltaX * .05), (double)row * deltaY - (deltaY * .05)); column = column + 1; if ((column) > 2) { column = 1; row = row + 1; } } camera.SetViewUp((double)1,(double)0,(double)0); camera.SetFocalPoint((double)0,(double)0,(double)0); camera.SetPosition((double).4,(double)-.5,(double)-.75); ren[200].ResetCamera(); camera.Dolly((double)1.25); ren[200].ResetCameraClippingRange(); ren[201].ResetCameraClippingRange(); ren[202].ResetCameraClippingRange(); ren[210].ResetCameraClippingRange(); light.SetPosition(camera.GetPosition()[0],camera.GetPosition()[1],camera.GetPosition()[2]); light.SetFocalPoint(camera.GetFocalPoint()[0],camera.GetFocalPoint()[1],camera.GetFocalPoint()[2]); renWin.SetSize(350,350); renWin.Render(); iren.Initialize(); // render the image[] //[] // prevent the tk window from showing up then start the event loop[] //deleteAllVTKObjects(); }