mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
ParaView-5.0.1: Added the source-tree to ThirdParty-dev and patched as described in the README file
Resolves bug-report http://bugs.openfoam.org/view.php?id=2098
This commit is contained in:
@ -0,0 +1,140 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
This file demonstrates the creation of a directed graph using the
|
||||
Python interface to VTK.
|
||||
"""
|
||||
|
||||
from vtk import *
|
||||
from sys import exit
|
||||
|
||||
xdim = 400
|
||||
ydim = 400
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Script Entry Point
|
||||
#------------------------------------------------------------------------------
|
||||
if __name__ == "__main__":
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Create a graph (see graph1.py for explanations)
|
||||
G1 = vtkMutableDirectedGraph()
|
||||
vertID1 = vtkIntArray()
|
||||
vertID1.SetName("ID")
|
||||
G1.GetVertexData().AddArray( vertID1 )
|
||||
G1.GetVertexData().SetPedigreeIds( vertID1 )
|
||||
for i in range(10):
|
||||
G1.AddVertex()
|
||||
vertID1.InsertNextValue(i)
|
||||
for i in range(10):
|
||||
G1.AddGraphEdge(i, (i+1)%10)
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Create a second graph
|
||||
# - This one is a triangle, with one node's pedigree id field
|
||||
# ID matching one of the vertices from G1. These nodes will
|
||||
# be combined as the same node when merge is run.
|
||||
vertID2 = vtkIntArray()
|
||||
G2 = vtkMutableDirectedGraph()
|
||||
vertID2 = vtkIntArray()
|
||||
vertID2.SetName("ID")
|
||||
G2.GetVertexData().AddArray(vertID2)
|
||||
G2.GetVertexData().SetPedigreeIds(vertID2)
|
||||
G2.AddVertex()
|
||||
vertID2.InsertNextValue(3)
|
||||
G2.AddVertex()
|
||||
vertID2.InsertNextValue(20)
|
||||
G2.AddVertex()
|
||||
vertID2.InsertNextValue(21)
|
||||
G2.AddGraphEdge(0,1)
|
||||
G2.AddGraphEdge(0,2)
|
||||
G2.AddGraphEdge(1,2)
|
||||
|
||||
#----------------------------------------------------------
|
||||
# First Programmable Filter -- Add integer field to vertices
|
||||
# with a 1 for every vertex into G1
|
||||
G1_labeled = vtkProgrammableFilter()
|
||||
G1_labeled.AddInputData( G1 )
|
||||
|
||||
def vertex_labeler_g1():
|
||||
input = G1_labeled.GetInput()
|
||||
output = G1_labeled.GetOutput()
|
||||
output.ShallowCopy(input)
|
||||
varray = vtkIntArray()
|
||||
varray.SetName("color")
|
||||
|
||||
varray.SetNumberOfTuples( output.GetNumberOfVertices() )
|
||||
for i in range( output.GetNumberOfVertices() ):
|
||||
varray.SetValue(i, 1)
|
||||
|
||||
output.GetVertexData().AddArray(varray)
|
||||
|
||||
G1_labeled.SetExecuteMethod( vertex_labeler_g1 )
|
||||
|
||||
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Second Programmable Filter -- Add integer field to vertices
|
||||
# with a 2 for every vertex into G2
|
||||
G2_labeled = vtkProgrammableFilter()
|
||||
G2_labeled.AddInputData( G2 )
|
||||
|
||||
def vertex_labeler_g2():
|
||||
input = G2_labeled.GetInput()
|
||||
output = G2_labeled.GetOutput()
|
||||
output.ShallowCopy(input)
|
||||
varray = vtkIntArray()
|
||||
varray.SetName("color")
|
||||
|
||||
varray.SetNumberOfTuples( output.GetNumberOfVertices() )
|
||||
for i in range( output.GetNumberOfVertices() ):
|
||||
varray.SetValue(i, 2)
|
||||
|
||||
output.GetVertexData().AddArray(varray)
|
||||
|
||||
G2_labeled.SetExecuteMethod( vertex_labeler_g2 )
|
||||
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Merge graphs takes two graphs on input ports 0 and 1.
|
||||
# and combines them according to the pedigree id field.
|
||||
merge = vtkMergeGraphs()
|
||||
merge.SetInputConnection(0, G1_labeled.GetOutputPort() )
|
||||
merge.SetInputConnection(1, G2_labeled.GetOutputPort() )
|
||||
merge.Update()
|
||||
|
||||
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Draw the graph in a window
|
||||
theme = vtkViewTheme.CreateMellowTheme()
|
||||
theme.SetLineWidth(4)
|
||||
theme.SetPointSize(15)
|
||||
theme.SetCellOpacity(1)
|
||||
theme.FastDelete()
|
||||
|
||||
# Rendered graph representation to make vertices circles
|
||||
rep = vtkRenderedGraphRepresentation( )
|
||||
rep.SetInputConnection(0, merge.GetOutputPort())
|
||||
|
||||
# vtkGraphToGlyph::CIRCLE == 7
|
||||
rep.SetGlyphType(7)
|
||||
|
||||
# View containing the merged graph
|
||||
view = vtkGraphLayoutView()
|
||||
view.SetRepresentation( rep )
|
||||
view.SetVertexLabelArrayName("ID")
|
||||
view.SetVertexColorArrayName("color")
|
||||
view.SetVertexLabelVisibility(True)
|
||||
view.SetColorVertices(True)
|
||||
view.SetLayoutStrategyToSimple2D()
|
||||
view.SetVertexLabelFontSize(20)
|
||||
view.ApplyViewTheme(theme)
|
||||
|
||||
|
||||
|
||||
view.GetRenderWindow().SetSize(xdim, ydim)
|
||||
view.ResetCamera()
|
||||
view.Render()
|
||||
|
||||
|
||||
view.GetInteractor().Start()
|
||||
Reference in New Issue
Block a user