add scalebar

This commit is contained in:
Martin Diehl 2022-02-21 11:19:53 +01:00
parent 45dc9cf7a6
commit 22fa9c9772
2 changed files with 26 additions and 6 deletions

View File

@ -17,6 +17,7 @@ from . import util
from . import grid_filters
from . import Rotation
from . import Table
from . import Colormap
from ._typehints import FloatSequence, IntSequence
class Grid:
@ -681,11 +682,20 @@ class Grid:
header='\n'.join(header), fmt=format_string, comments='')
def show(self) -> None:
"""Show on screen."""
def show(self,
colormap: Colormap = Colormap.from_predefined('viridis')) -> None:
"""
Show on screen.
Parameters
----------
colormap : damask.Colormap
Colors used to map material IDs.
"""
v = VTK.from_image_data(self.cells,self.size,self.origin)
v.add(self.material.flatten(),'material')
v.show('material')
v.show('material',colormap)
def add_primitive(self,

View File

@ -205,7 +205,7 @@ class VTK:
VTK-based geometry from file.
"""
if not os.path.isfile(fname): # vtk has a strange error handling
if not os.path.isfile(os.path.expanduser(fname)): # vtk has a strange error handling
raise FileNotFoundError(f'No such file: {fname}')
if (ext := Path(fname).suffix) == '.vtk' or dataset_type is not None:
reader = vtk.vtkGenericDataObjectReader()
@ -437,7 +437,9 @@ class VTK:
return writer.GetOutputString()
def show(self,label=None,colormap=Colormap.from_predefined('strain')):
def show(self,
label: str = None,
colormap: Colormap = Colormap.from_predefined('viridis')):
"""
Render.
@ -476,7 +478,15 @@ class VTK:
ren = vtk.vtkRenderer()
ren.AddActor(actor)
ren.SetBackground(67/255,128/255,208/255)
if label is None:
ren.SetBackground(67/255,128/255,208/255)
else:
colormap = vtk.vtkScalarBarActor()
colormap.SetLookupTable(lut)
colormap.SetTitle(label)
colormap.SetMaximumWidthInPixels(width//100)
ren.AddActor2D(colormap)
ren.SetBackground(0.3,0.3,0.3)
window = vtk.vtkRenderWindow()
window.AddRenderer(ren)