Skip to content
Snippets Groups Projects
Commit 3a1e0498 authored by Andrew Maclean's avatar Andrew Maclean
Browse files

Texture updated

parent 30374673
No related branches found
No related tags found
1 merge request!236Only allow specific imports for python 6
#!/usr/bin/env python
import vtkmodules.all as vtk
from pathlib import Path
# noinspection PyUnresolvedReferences
import vtkmodules.vtkInteractionStyle
# noinspection PyUnresolvedReferences
import vtkmodules.vtkRenderingOpenGL2
from vtkmodules.vtkCommonColor import vtkNamedColors
from vtkmodules.vtkFiltersCore import (
vtkGlyph3D,
vtkThresholdPoints
)
from vtkmodules.vtkFiltersModeling import vtkOutlineFilter
from vtkmodules.vtkFiltersSources import vtkLineSource
from vtkmodules.vtkIOLegacy import vtkStructuredPointsReader
from vtkmodules.vtkRenderingCore import (
vtkActor,
vtkCamera,
vtkPolyDataMapper,
vtkRenderWindow,
vtkRenderWindowInteractor,
vtkRenderer,
vtkTexture
)
def main():
fileNames = [''] * 2
fileNames[0], fileNames[1] = get_program_parameters()
vec_anim_paths = [''] * 2
fn1, fn2 = get_program_parameters()
vec_anim_paths[0] = Path(fn1)
vec_anim_paths[1] = Path(fn2)
# Generate the other vecAnim file names. There are 8 of them.
tmpFn = fileNames[1][:-5]
tmp = str(vec_anim_paths[1])
old_stem = vec_anim_paths[1].stem
for i in range(2, 9):
fileNames.append(tmpFn + str(i) + '.vtk')
new_stem = old_stem[:-1] + str(i)
vec_anim_paths.append(Path(tmp.replace(old_stem, new_stem)))
colors = vtk.vtkNamedColors()
colors = vtkNamedColors()
# Setup the render window, renderer, and interactor.
renderer = vtk.vtkRenderer()
renderWindow = vtk.vtkRenderWindow()
renderer = vtkRenderer()
renderWindow = vtkRenderWindow()
renderWindow.AddRenderer(renderer)
interactor = vtk.vtkRenderWindowInteractor()
interactor = vtkRenderWindowInteractor()
interactor.SetRenderWindow(renderWindow)
# Read the data.
#
# Create the pipeline.
#
reader = vtk.vtkStructuredPointsReader()
reader.SetFileName(fileNames[0])
threshold = vtk.vtkThresholdPoints()
reader = vtkStructuredPointsReader()
reader.SetFileName(vec_anim_paths[0])
threshold = vtkThresholdPoints()
threshold.SetInputConnection(reader.GetOutputPort())
threshold.ThresholdByUpper(200)
line = vtk.vtkLineSource()
line = vtkLineSource()
line.SetResolution(1)
lines = vtk.vtkGlyph3D()
lines = vtkGlyph3D()
lines.SetInputConnection(threshold.GetOutputPort())
lines.SetSourceConnection(line.GetOutputPort())
lines.SetScaleFactor(0.005)
lines.SetScaleModeToScaleByScalar()
lines.Update()
vectorMapper = vtk.vtkPolyDataMapper()
vectorMapper = vtkPolyDataMapper()
vectorMapper.SetInputConnection(lines.GetOutputPort())
vectorMapper.SetScalarRange(lines.GetOutput().GetScalarRange())
vectorActor = vtk.vtkActor()
vectorActor = vtkActor()
vectorActor.SetMapper(vectorMapper)
vectorActor.GetProperty().SetOpacity(0.99)
vectorActor.GetProperty().SetLineWidth(1.5)
# Outline
outline = vtk.vtkOutlineFilter()
outline = vtkOutlineFilter()
outline.SetInputConnection(reader.GetOutputPort())
outlineMapper = vtk.vtkPolyDataMapper()
outlineMapper = vtkPolyDataMapper()
outlineMapper.SetInputConnection(outline.GetOutputPort())
outlineActor = vtk.vtkActor()
outlineActor = vtkActor()
outlineActor.SetMapper(outlineMapper)
outlineActor.GetProperty().SetColor(colors.GetColor3d('Black'))
# Texture maps.
textureMaps = list()
for i in range(2, len(fileNames)):
tmap = vtk.vtkStructuredPointsReader()
tmap.SetFileName(fileNames[i])
for i in range(2, len(vec_anim_paths)):
tmap = vtkStructuredPointsReader()
tmap.SetFileName(vec_anim_paths[i])
texture = vtk.vtkTexture()
texture = vtkTexture()
texture.SetInputConnection(tmap.GetOutputPort())
texture.InterpolateOff()
texture.RepeatOff()
......@@ -77,11 +103,11 @@ def main():
vectorActor.SetTexture(textureMaps[0])
# Add the actors to the renderer, set the background and size.
#
renderer.AddActor(vectorActor)
renderer.AddActor(outlineActor)
cam1 = vtk.vtkCamera()
cam1 = vtkCamera()
cam1.SetClippingRange(17.4043, 870.216)
cam1.SetFocalPoint(136.71, 104.025, 23)
cam1.SetPosition(204.747, 258.939, 63.7925)
......@@ -109,8 +135,8 @@ def get_program_parameters():
'''
parser = argparse.ArgumentParser(description=description, epilog=epilogue,
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('filename1', help='carotid.vtk.')
parser.add_argument('filename2', help='vecAnim1.vtk.')
parser.add_argument('filename1', help='carotid.')
parser.add_argument('filename2', help='VectorAnimation/vecAnim1.vtk.')
args = parser.parse_args()
return args.filename1, args.filename2
......
#!/usr/bin/env python
'''
'''
import vtkmodules.all as vtk
# noinspection PyUnresolvedReferences
import vtkmodules.vtkInteractionStyle
# noinspection PyUnresolvedReferences
import vtkmodules.vtkRenderingOpenGL2
from vtkmodules.vtkCommonColor import vtkNamedColors
from vtkmodules.vtkCommonDataModel import vtkQuadric
from vtkmodules.vtkFiltersSources import vtkSphereSource
from vtkmodules.vtkFiltersTexture import vtkImplicitTextureCoords
from vtkmodules.vtkImagingHybrid import vtkBooleanTexture
from vtkmodules.vtkRenderingCore import (
vtkActor,
vtkDataSetMapper,
vtkRenderWindow,
vtkRenderWindowInteractor,
vtkRenderer,
vtkTexture
)
positions = [
[-4, 4, 0], [-2, 4, 0], [0, 4, 0], [2, 4, 0],
......@@ -18,46 +31,46 @@ edge = [0, 255]
def main():
colors = vtk.vtkNamedColors()
colors = vtkNamedColors()
renWin = vtk.vtkRenderWindow()
renWin = vtkRenderWindow()
iren = vtk.vtkRenderWindowInteractor()
iren = vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
aren = vtk.vtkRenderer()
aren = vtkRenderer()
# define two elliptical cylinders
quadric1 = vtk.vtkQuadric()
quadric1 = vtkQuadric()
quadric1.SetCoefficients(1, 2, 0, 0, 0, 0, 0, 0, 0, -.07)
quadric2 = vtk.vtkQuadric()
quadric2 = vtkQuadric()
quadric2.SetCoefficients(2, 1, 0, 0, 0, 0, 0, 0, 0, -.07)
# Create a sphere for all to use.
aSphere = vtk.vtkSphereSource()
aSphere = vtkSphereSource()
aSphere.SetPhiResolution(21)
aSphere.SetThetaResolution(21)
# Create texture coordinates for all.
tcoords = vtk.vtkImplicitTextureCoords()
tcoords = vtkImplicitTextureCoords()
tcoords.SetInputConnection(aSphere.GetOutputPort())
tcoords.SetRFunction(quadric1)
tcoords.SetSFunction(quadric2)
aMapper = vtk.vtkDataSetMapper()
aMapper = vtkDataSetMapper()
aMapper.SetInputConnection(tcoords.GetOutputPort())
# Create a mapper, sphere and texture map for each case.
for i in range(0, 16):
aBoolean = MakeBooleanTexture(i, 64, 0)
aTexture2 = vtk.vtkTexture()
aTexture2 = vtkTexture()
aTexture2.SetInputConnection(aBoolean.GetOutputPort())
aTexture2.InterpolateOff()
aTexture2.RepeatOff()
anActor2 = vtk.vtkActor()
anActor2 = vtkActor()
anActor2.SetMapper(aMapper)
anActor2.SetTexture(aTexture2)
......@@ -78,7 +91,7 @@ def main():
def MakeBooleanTexture(caseNumber, resolution, thickness):
booleanTexture = vtk.vtkBooleanTexture()
booleanTexture = vtkBooleanTexture()
booleanTexture.SetXSize(resolution)
booleanTexture.SetYSize(resolution)
......
#!/usr/bin/env python
'''
'''
import vtkmodules.all as vtk
# noinspection PyUnresolvedReferences
import vtkmodules.vtkInteractionStyle
# noinspection PyUnresolvedReferences
import vtkmodules.vtkRenderingOpenGL2
from vtkmodules.vtkCommonColor import vtkNamedColors
from vtkmodules.vtkCommonCore import (
vtkDoubleArray,
vtkPoints
)
from vtkmodules.vtkCommonDataModel import vtkPlanes
from vtkmodules.vtkFiltersSources import vtkSphereSource
from vtkmodules.vtkFiltersTexture import vtkImplicitTextureCoords
from vtkmodules.vtkIOLegacy import vtkStructuredPointsReader
from vtkmodules.vtkRenderingCore import (
vtkActor,
vtkDataSetMapper,
vtkPolyDataMapper,
vtkRenderWindow,
vtkRenderWindowInteractor,
vtkRenderer,
vtkTexture
)
def main():
colors = vtk.vtkNamedColors()
colors = vtkNamedColors()
fileName = get_program_parameters()
# hidden sphere
sphere1 = vtk.vtkSphereSource()
sphere1 = vtkSphereSource()
sphere1.SetRadius(0.5)
innerMapper = vtk.vtkPolyDataMapper()
innerMapper = vtkPolyDataMapper()
innerMapper.SetInputConnection(sphere1.GetOutputPort())
innerSphere = vtk.vtkActor()
innerSphere = vtkActor()
innerSphere.SetMapper(innerMapper)
innerSphere.GetProperty().SetColor(colors.GetColor3d('BlanchedAlmond'))
# sphere to texture
sphere2 = vtk.vtkSphereSource()
sphere2 = vtkSphereSource()
sphere2.SetRadius(1.0)
sphere2.SetPhiResolution(21)
sphere2.SetThetaResolution(21)
pts = [0.0] * 6
points = vtk.vtkPoints()
points = vtkPoints()
points.SetNumberOfPoints(2)
points.SetPoint(0, pts[:3])
points.SetPoint(1, pts[3:])
......@@ -37,39 +55,39 @@ def main():
nrms = [0.0] * 6
nrms[0] = 1.0
nrms[4] = 1.0
normals = vtk.vtkDoubleArray()
normals = vtkDoubleArray()
normals.SetNumberOfComponents(3)
normals.SetNumberOfTuples(2)
normals.SetTuple(0, nrms[:3])
normals.SetTuple(1, nrms[3:])
planes = vtk.vtkPlanes()
planes = vtkPlanes()
planes.SetPoints(points)
planes.SetNormals(normals)
tcoords = vtk.vtkImplicitTextureCoords()
tcoords = vtkImplicitTextureCoords()
tcoords.SetInputConnection(sphere2.GetOutputPort())
tcoords.SetRFunction(planes)
outerMapper = vtk.vtkDataSetMapper()
outerMapper = vtkDataSetMapper()
outerMapper.SetInputConnection(tcoords.GetOutputPort())
tmap = vtk.vtkStructuredPointsReader()
tmap = vtkStructuredPointsReader()
tmap.SetFileName(fileName)
texture = vtk.vtkTexture()
texture = vtkTexture()
texture.SetInputConnection(tmap.GetOutputPort())
texture.InterpolateOff()
texture.RepeatOff()
outerSphere = vtk.vtkActor()
outerSphere = vtkActor()
outerSphere.SetMapper(outerMapper)
outerSphere.SetTexture(texture)
outerSphere.GetProperty().SetColor(colors.GetColor3d('LightSalmon'))
renWin = vtk.vtkRenderWindow()
iren = vtk.vtkRenderWindowInteractor()
aren = vtk.vtkRenderer()
renWin = vtkRenderWindow()
iren = vtkRenderWindowInteractor()
aren = vtkRenderer()
iren.SetRenderWindow(renWin)
renWin.AddRenderer(aren)
......
#!/usr/bin/env python
import vtkmodules.all as vtk
# noinspection PyUnresolvedReferences
import vtkmodules.vtkInteractionStyle
# noinspection PyUnresolvedReferences
import vtkmodules.vtkRenderingOpenGL2
from vtkmodules.vtkCommonColor import vtkNamedColors
from vtkmodules.vtkFiltersSources import vtkPlaneSource
from vtkmodules.vtkIOImage import vtkImageReader2Factory
from vtkmodules.vtkRenderingCore import (
vtkActor,
vtkPolyDataMapper,
vtkRenderWindow,
vtkRenderWindowInteractor,
vtkRenderer,
vtkTexture
)
def main():
fileName = get_program_parameters()
colors = vtk.vtkNamedColors()
colors = vtkNamedColors()
# Load in the texture map. A texture is any unsigned char image. If it
# is not of this type, you will have to map it through a lookup table
# or by using vtkImageShiftScale.
#
readerFactory = vtk.vtkImageReader2Factory()
readerFactory = vtkImageReader2Factory()
textureFile = readerFactory.CreateImageReader2(fileName)
textureFile.SetFileName(fileName)
textureFile.Update()
atext = vtk.vtkTexture()
atext = vtkTexture()
atext.SetInputConnection(textureFile.GetOutputPort())
atext.InterpolateOn()
# Create a plane source and actor. The vtkPlanesSource generates
# texture coordinates.
#
plane = vtk.vtkPlaneSource()
plane = vtkPlaneSource()
planeMapper = vtk.vtkPolyDataMapper()
planeMapper = vtkPolyDataMapper()
planeMapper.SetInputConnection(plane.GetOutputPort())
planeActor = vtk.vtkActor()
planeActor = vtkActor()
planeActor.SetMapper(planeMapper)
planeActor.SetTexture(atext)
# Create the RenderWindow, Renderer and Interactor.
renderer = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renderer = vtkRenderer()
renWin = vtkRenderWindow()
renWin.AddRenderer(renderer)
iren = vtk.vtkRenderWindowInteractor()
iren = vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
# Add the actors to the renderer, set the background and size.
......
......@@ -2,15 +2,34 @@
# Modified from VTK/Filters/Texture/Testing/Python/textureThreshold.py.
import vtkmodules.all as vtk
# noinspection PyUnresolvedReferences
import vtkmodules.vtkInteractionStyle
# noinspection PyUnresolvedReferences
import vtkmodules.vtkRenderingOpenGL2
from vtkmodules.vtkCommonColor import vtkNamedColors
from vtkmodules.vtkFiltersCore import vtkStructuredGridOutlineFilter
from vtkmodules.vtkFiltersGeometry import vtkStructuredGridGeometryFilter
from vtkmodules.vtkFiltersTexture import vtkThresholdTextureCoords
from vtkmodules.vtkIOLegacy import vtkStructuredPointsReader
from vtkmodules.vtkIOParallel import vtkMultiBlockPLOT3DReader
from vtkmodules.vtkRenderingCore import (
vtkActor,
vtkCamera,
vtkDataSetMapper,
vtkPolyDataMapper,
vtkRenderWindow,
vtkRenderWindowInteractor,
vtkRenderer,
vtkTexture
)
def main():
dataFn1, dataFn2, textureFn = get_program_parameters()
colors = vtk.vtkNamedColors()
colors = vtkNamedColors()
# Read the data.
pl3d = vtk.vtkMultiBlockPLOT3DReader()
pl3d = vtkMultiBlockPLOT3DReader()
pl3d.SetXYZFileName(dataFn1)
pl3d.SetQFileName(dataFn2)
pl3d.SetScalarFunctionNumber(100)
......@@ -19,40 +38,40 @@ def main():
output = pl3d.GetOutput().GetBlock(0)
# Make the wall (floor).
wall = vtk.vtkStructuredGridGeometryFilter()
wall = vtkStructuredGridGeometryFilter()
wall.SetInputData(output)
wall.SetExtent(0, 100, 0, 0, 0, 100)
wallMap = vtk.vtkPolyDataMapper()
wallMap = vtkPolyDataMapper()
wallMap.SetInputConnection(wall.GetOutputPort())
wallMap.ScalarVisibilityOff()
wallActor = vtk.vtkActor()
wallActor = vtkActor()
wallActor.SetMapper(wallMap)
wallActor.GetProperty().SetColor(colors.GetColor3d('PeachPuff'))
# Make the fin (rear wall)
fin = vtk.vtkStructuredGridGeometryFilter()
fin = vtkStructuredGridGeometryFilter()
fin.SetInputData(output)
fin.SetExtent(0, 100, 0, 100, 0, 0)
finMap = vtk.vtkPolyDataMapper()
finMap = vtkPolyDataMapper()
finMap.SetInputConnection(fin.GetOutputPort())
finMap.ScalarVisibilityOff()
finActor = vtk.vtkActor()
finActor = vtkActor()
finActor.SetMapper(finMap)
finActor.GetProperty().SetColor(colors.GetColor3d('DarkSlateGray'))
# Get the texture.
tmap = vtk.vtkStructuredPointsReader()
tmap = vtkStructuredPointsReader()
tmap.SetFileName(textureFn)
texture = vtk.vtkTexture()
texture = vtkTexture()
texture.SetInputConnection(tmap.GetOutputPort())
texture.InterpolateOff()
texture.RepeatOff()
# Create the rendering window, renderer, and interactive renderer.
ren = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
ren = vtkRenderer()
renWin = vtkRenderWindow()
renWin.AddRenderer(ren)
iren = vtk.vtkRenderWindowInteractor()
iren = vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
# Make the planes to threshold and texture.
......@@ -66,10 +85,10 @@ def main():
[35, 35, 0, 100, 0, 100]]
# Now set up the pipeline.
for i in range(0, len(planeExtents)):
plane.append(vtk.vtkStructuredGridGeometryFilter())
plane.append(vtkStructuredGridGeometryFilter())
plane[i].SetInputData(output)
plane[i].SetExtent(*planeExtents[i])
thresh.append(vtk.vtkThresholdTextureCoords())
thresh.append(vtkThresholdTextureCoords())
thresh[i].SetInputConnection(plane[i].GetOutputPort())
thresh[i].SetInputConnection(plane[i].GetOutputPort())
# If you want an image similar to Fig 9-43(a) in the VTK textbook,
......@@ -80,10 +99,10 @@ def main():
thresh[i].ThresholdBetween(1.5, 1.8)
else:
thresh[i].ThresholdByUpper(1.5)
planeMap.append(vtk.vtkDataSetMapper())
planeMap.append(vtkDataSetMapper())
planeMap[i].SetInputConnection(thresh[i].GetOutputPort())
planeMap[i].SetScalarRange(output.GetScalarRange())
planeActor.append(vtk.vtkActor())
planeActor.append(vtkActor())
planeActor[i].SetMapper(planeMap[i])
planeActor[i].SetTexture(texture)
# The slight transparency gives a nice effect.
......@@ -91,11 +110,11 @@ def main():
ren.AddActor(planeActor[i])
# Get an outline of the data set for context.
outline = vtk.vtkStructuredGridOutlineFilter()
outline = vtkStructuredGridOutlineFilter()
outline.SetInputData(output)
outlineMapper = vtk.vtkPolyDataMapper()
outlineMapper = vtkPolyDataMapper()
outlineMapper.SetInputConnection(outline.GetOutputPort())
outlineActor = vtk.vtkActor()
outlineActor = vtkActor()
outlineActor.SetMapper(outlineMapper)
outlineProp = outlineActor.GetProperty()
outlineProp.SetColor(colors.GetColor3d('Black'))
......@@ -108,7 +127,7 @@ def main():
renWin.SetSize(512, 512)
renWin.SetWindowName('TextureThreshold')
cam = vtk.vtkCamera()
cam = vtkCamera()
cam.SetClippingRange(1.51176, 75.5879)
cam.SetFocalPoint(2.33749, 2.96739, 3.61023)
cam.SetPosition(10.8787, 5.27346, 15.8687)
......@@ -134,7 +153,7 @@ def get_program_parameters():
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('dataFn1', help='bluntfinxyz.bin.')
parser.add_argument('dataFn2', help='bluntfinq.bin.')
parser.add_argument('textureFn', help='texThres2.vtk.')
parser.add_argument('textureFn', help='texThres2.bmp')
args = parser.parse_args()
return args.dataFn1, args.dataFn2, args.textureFn
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment