-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
updates bareVE conda env; adds vtk/tutorials/steps*.py (#29)
- Loading branch information
1 parent
6b94e50
commit fa8432f
Showing
9 changed files
with
755 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# The Visualization Toolkit (VTK) | ||
> Free software system for 3D computer graphics, image processing and visualization [:linkm:](https://en.wikipedia.org/wiki/VTK) | ||
## History | ||
VTK was initially created in 1993 as companion software to the book The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics.[5] The book and software were written by three researchers (Will Schroeder, Ken Martin and Bill Lorensen) on their own time and with permission from General Electric (thus the ownership of the software resided with, and continues to reside with, the authors). After the core of VTK was written, users and developers around the world began to improve and apply the system to real-world problems.[3] | ||
https://en.wikipedia.org/wiki/VTK | ||
|
||
## References | ||
https://kitware.github.io/vtk-examples/site/Python/#tutorial |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Tutorial | ||
> https://kitware.github.io/vtk-examples/site/Python/#tutorial | ||
``` | ||
conda activate bareVE | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
#!/usr/bin/env python | ||
|
||
""" | ||
========================================================================= | ||
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen | ||
All rights reserved. | ||
See Copyright.txt or http://www.kitware.com/Copyright.htm for details. | ||
This software is distributed WITHOUT ANY WARRANTY; without even | ||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
PURPOSE. See the above copyright notice for more information. | ||
=========================================================================*/ | ||
""" | ||
|
||
# First access the VTK module (and any other needed modules) by importing them. | ||
# noinspection PyUnresolvedReferences | ||
import vtkmodules.vtkInteractionStyle | ||
# noinspection PyUnresolvedReferences | ||
import vtkmodules.vtkRenderingOpenGL2 | ||
from vtkmodules.vtkCommonColor import vtkNamedColors | ||
from vtkmodules.vtkFiltersSources import vtkConeSource | ||
from vtkmodules.vtkRenderingCore import ( | ||
vtkActor, | ||
vtkPolyDataMapper, | ||
vtkRenderWindow, | ||
vtkRenderer | ||
) | ||
|
||
|
||
def main(argv): | ||
# | ||
# Next we create an instance of vtkNamedColors and we will use | ||
# this to select colors for the object and background. | ||
# | ||
colors = vtkNamedColors() | ||
|
||
# | ||
# Now we create an instance of vtkConeSource and set some of its | ||
# properties. The instance of vtkConeSource "cone" is part of a | ||
# visualization pipeline (it is a source process object) it produces data | ||
# (output type is vtkPolyData) which other filters may process. | ||
# | ||
cone = vtkConeSource() | ||
cone.SetHeight(3.0) | ||
cone.SetRadius(1.0) | ||
cone.SetResolution(10) | ||
|
||
# | ||
# In this example we terminate the pipeline with a mapper process object. | ||
# (Intermediate filters such as vtkShrinkPolyData could be inserted in | ||
# between the source and the mapper.) We create an instance of | ||
# vtkPolyDataMapper to map the polygonal data into graphics primitives. We | ||
# connect the output of the cone source to the input of this mapper. | ||
# | ||
coneMapper = vtkPolyDataMapper() | ||
coneMapper.SetInputConnection(cone.GetOutputPort()) | ||
|
||
# | ||
# Create an actor to represent the cone. The actor orchestrates rendering | ||
# of the mapper's graphics primitives. An actor also refers to properties | ||
# via a vtkProperty instance, and includes an internal transformation | ||
# matrix. We set this actor's mapper to be coneMapper which we created | ||
# above. | ||
# | ||
coneActor = vtkActor() | ||
coneActor.SetMapper(coneMapper) | ||
coneActor.GetProperty().SetColor(colors.GetColor3d('MistyRose')) | ||
|
||
# | ||
# Create the Renderer and assign actors to it. A renderer is like a | ||
# viewport. It is part or all of a window on the screen and it is | ||
# responsible for drawing the actors it has. We also set the background | ||
# color here. | ||
# | ||
ren1 = vtkRenderer() | ||
ren1.AddActor(coneActor) | ||
ren1.SetBackground(colors.GetColor3d('MidnightBlue')) | ||
|
||
# Finally we create the render window which will show up on the screen. | ||
# We put our renderer into the render window using AddRenderer. We also | ||
# set the size to be 300 pixels by 300. | ||
# | ||
renWin = vtkRenderWindow() | ||
renWin.AddRenderer(ren1) | ||
renWin.SetSize(300, 300) | ||
renWin.SetWindowName('Tutorial_Step1') | ||
|
||
# | ||
# Now we loop over 360 degrees and render the cone each time. | ||
# | ||
for i in range(0, 360): | ||
# Render the image | ||
renWin.Render() | ||
# Rotate the active camera by one degree. | ||
ren1.GetActiveCamera().Azimuth(1) | ||
|
||
|
||
if __name__ == '__main__': | ||
import sys | ||
|
||
main(sys.argv) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
#!/usr/bin/env python | ||
|
||
""" | ||
========================================================================= | ||
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen | ||
All rights reserved. | ||
See Copyright.txt or http://www.kitware.com/Copyright.htm for details. | ||
This software is distributed WITHOUT ANY WARRANTY; without even | ||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
PURPOSE. See the above copyright notice for more information. | ||
=========================================================================*/ | ||
""" | ||
|
||
# First access the VTK module (and any other needed modules) by importing them. | ||
# noinspection PyUnresolvedReferences | ||
import vtkmodules.vtkInteractionStyle | ||
# noinspection PyUnresolvedReferences | ||
import vtkmodules.vtkRenderingOpenGL2 | ||
from vtkmodules.vtkCommonColor import vtkNamedColors | ||
from vtkmodules.vtkFiltersSources import vtkConeSource | ||
from vtkmodules.vtkRenderingCore import ( | ||
vtkActor, | ||
vtkPolyDataMapper, | ||
vtkRenderWindow, | ||
vtkRenderer | ||
) | ||
|
||
|
||
def main(argv): | ||
colors = vtkNamedColors() | ||
|
||
# | ||
# The pipeline creation is documented in Tutorial_Step1. | ||
# | ||
cone = vtkConeSource() | ||
cone.SetHeight(3.0) | ||
cone.SetRadius(1.0) | ||
cone.SetResolution(10) | ||
|
||
coneMapper = vtkPolyDataMapper() | ||
coneMapper.SetInputConnection(cone.GetOutputPort()) | ||
coneActor = vtkActor() | ||
coneActor.SetMapper(coneMapper) | ||
coneActor.GetProperty().SetColor(colors.GetColor3d('MistyRose')) | ||
|
||
ren1 = vtkRenderer() | ||
ren1.AddActor(coneActor) | ||
ren1.SetBackground(colors.GetColor3d('MidnightBlue')) | ||
ren1.ResetCamera() | ||
|
||
renWin = vtkRenderWindow() | ||
renWin.AddRenderer(ren1) | ||
renWin.SetSize(300, 300) | ||
renWin.SetWindowName('Tutorial_Step2') | ||
|
||
# Here is where we setup the observer. | ||
mo1 = vtkMyCallback(ren1) | ||
ren1.AddObserver('StartEvent', mo1) | ||
|
||
# | ||
# Now we loop over 360 degrees and render the cone each time. | ||
# | ||
for i in range(0, 360): | ||
# Render the image. | ||
renWin.Render() | ||
# Rotate the active camera by one degree. | ||
ren1.GetActiveCamera().Azimuth(1) | ||
|
||
|
||
class vtkMyCallback(object): | ||
""" | ||
Callback for the interaction. | ||
""" | ||
|
||
def __init__(self, renderer): | ||
self.renderer = renderer | ||
|
||
def __call__(self, caller, ev): | ||
position = self.renderer.GetActiveCamera().GetPosition() | ||
print('({:5.2f}, {:5.2f}, {:5.2f})'.format(*position)) | ||
|
||
|
||
if __name__ == '__main__': | ||
import sys | ||
|
||
main(sys.argv) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
#!/usr/bin/env python | ||
|
||
""" | ||
========================================================================= | ||
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen | ||
All rights reserved. | ||
See Copyright.txt or http://www.kitware.com/Copyright.htm for details. | ||
This software is distributed WITHOUT ANY WARRANTY; without even | ||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
PURPOSE. See the above copyright notice for more information. | ||
=========================================================================*/ | ||
""" | ||
|
||
# First access the VTK module (and any other needed modules) by importing them. | ||
# noinspection PyUnresolvedReferences | ||
import vtkmodules.vtkInteractionStyle | ||
# noinspection PyUnresolvedReferences | ||
import vtkmodules.vtkRenderingOpenGL2 | ||
from vtkmodules.vtkCommonColor import vtkNamedColors | ||
from vtkmodules.vtkFiltersSources import vtkConeSource | ||
from vtkmodules.vtkRenderingCore import ( | ||
vtkActor, | ||
vtkPolyDataMapper, | ||
vtkRenderWindow, | ||
vtkRenderer | ||
) | ||
|
||
|
||
def main(argv): | ||
colors = vtkNamedColors() | ||
|
||
# | ||
# Next we create an instance of vtkConeSource and set some of its | ||
# properties. The instance of vtkConeSource 'cone' is part of a | ||
# visualization pipeline (it is a source process object) it produces data | ||
# (output type is vtkPolyData) which other filters may process. | ||
# | ||
cone = vtkConeSource() | ||
cone.SetHeight(3.0) | ||
cone.SetRadius(1.0) | ||
cone.SetResolution(10) | ||
|
||
# | ||
# In this example we terminate the pipeline with a mapper process object. | ||
# (Intermediate filters such as vtkShrinkPolyData could be inserted in | ||
# between the source and the mapper.) We create an instance of | ||
# vtkPolyDataMapper to map the polygonal data into graphics primitives. We | ||
# connect the output of the cone source to the input of this mapper. | ||
# | ||
coneMapper = vtkPolyDataMapper() | ||
coneMapper.SetInputConnection(cone.GetOutputPort()) | ||
|
||
# | ||
# Create an actor to represent the cone. The actor orchestrates rendering | ||
# of the mapper's graphics primitives. An actor also refers to properties | ||
# via a vtkProperty instance, and includes an internal transformation | ||
# matrix. We set this actor's mapper to be coneMapper which we created | ||
# above. | ||
# | ||
coneActor = vtkActor() | ||
coneActor.SetMapper(coneMapper) | ||
coneActor.GetProperty().SetColor(colors.GetColor3d('MistyRose')) | ||
|
||
# | ||
# Create two renderers and assign actors to them. A renderer renders into | ||
# a viewport within the vtkRenderWindow. It is part or all of a window on | ||
# the screen and it is responsible for drawing the actors it has. We also | ||
# set the background color here. In this example we are adding the same | ||
# actor to two different renderers it is okay to add different actors to | ||
# different renderers as well. | ||
# | ||
ren1 = vtkRenderer() | ||
ren1.AddActor(coneActor) | ||
ren1.SetBackground(colors.GetColor3d('RoyalBlue')) | ||
|
||
ren1.SetViewport(0.0, 0.0, 0.5, 1.0) | ||
|
||
ren2 = vtkRenderer() | ||
ren2.AddActor(coneActor) | ||
ren2.SetBackground(colors.GetColor3d('DodgerBlue')) | ||
ren2.SetViewport(0.5, 0.0, 1.0, 1.0) | ||
|
||
# | ||
# Finally we create the render window which will show up on the screen. | ||
# We put our renderer into the render window using AddRenderer. We also | ||
# set the size to be 300 pixels by 300. | ||
# | ||
renWin = vtkRenderWindow() | ||
renWin.AddRenderer(ren1) | ||
renWin.AddRenderer(ren2) | ||
renWin.SetSize(600, 300) | ||
renWin.SetWindowName('Tutorial_Step3') | ||
|
||
# | ||
# Make one view 90 degrees from other. | ||
# | ||
ren1.ResetCamera() | ||
ren1.GetActiveCamera().Azimuth(90) | ||
|
||
# | ||
# Now we loop over 360 degrees and render the cones each time. | ||
# | ||
for i in range(0, 360): # render the image | ||
renWin.Render() | ||
# rotate the active camera by one degree | ||
ren1.GetActiveCamera().Azimuth(1) | ||
ren2.GetActiveCamera().Azimuth(1) | ||
|
||
|
||
if __name__ == '__main__': | ||
import sys | ||
|
||
main(sys.argv) |
Oops, something went wrong.