コード例 #1
0
ファイル: ListWidget.py プロジェクト: CDAT/UVIS_DV3D
 def __init__(self, interactor, **args):
     ListWidget.__init__(self, interactor, **args)
     self.lut = vtk.vtkLookupTable()
     self.image_data = {}
     self.colorMapManager = ColorMapManager(self.lut)
     self.textMapper = None
     self.build()
コード例 #2
0
ファイル: ListWidget.py プロジェクト: NESII/uvcdat
class ColorbarListWidget(ListWidget):

    def __init__( self, interactor, **args ):
        ListWidget.__init__( self, interactor, **args )
        self.lut = vtk.vtkLookupTable()
        self.image_data = {}
        self.colorMapManager = ColorMapManager( self.lut )
        self.textMapper = None
        self.build()

    def build(self):
        cmap_names = self.colorMapManager.getColormapNames()
        dy = 1.0 / len( cmap_names )
        for cmap_index, cmap_name in enumerate( cmap_names ):
            self.getButton( name=cmap_name, position = ( 1.0, 1.0 - dy * cmap_index )  )

    def getButtonRepresentation(self, **args):
        buttonRepresentation = vtk.vtkTexturedButtonRepresentation2D()
        cmap_name = args.get( 'name', None )
        button_id = args.get( 'id', cmap_name )
        if cmap_name:
            buttonRepresentation.SetNumberOfStates(2)
            for image_index in range( 2 ):
                image_data = self.getColorbarImage( cmap_name, invert=(image_index==1) )
                buttonRepresentation.SetButtonTexture( image_index, image_data )
#         labels = args.get( 'labels', None )
#         if labels:
#             if self.textMapper == None:
#                 size = args.get( 'size', [ 30.0, 30.0 ] )
#                 self.textMapper = vtk.vtkFreeTypeUtilities()
#             nstates = len( labels )
#             buttonRepresentation.SetNumberOfStates(nstates)
#             tprop = vtk.vtkTextProperty()
#             for label_index in range( nstates ):
#                 texture = vtk.vtkImageData()
#                 label = labels[label_index]
#                 if button_id == None: button_id = label
#                 self.textRenderer.RenderString( tprop, label, 0, 0, texture )
#                 buttonRepresentation.SetButtonTexture( label_index, texture )
        return button_id, buttonRepresentation

    def getColorbarImage(self, cmap_name, **args ):
        cb_width = args.get( 'width', 40 )
        invert = args.get('invert',False)
        cmap_data = self.colorMapManager.load_array( cmap_name ) * 255.9
        if invert: cmap_data = cmap_data[::-1,:]
        cmap_data = np.expand_dims( cmap_data[:,0:3].astype('uint8'), 0 )
        cmap_data = np.tile( cmap_data, ( cb_width, 1, 1 ) )
        self.image_data[ cmap_name + ( ".inv" if invert else '' ) ] = cmap_data
        image = vtk.vtkImageData()
        image.SetDimensions(256,cb_width,1)
        vtkdata = vtk.vtkUnsignedCharArray()
        vtkdata.SetNumberOfComponents( 3 )
        vtkdata.SetNumberOfTuples( cb_width * 256 )
        vtkdata.SetVoidArray( cmap_data, cmap_data.size, 1 )
        ptdata =  image.GetPointData()
        ptdata.SetScalars(vtkdata)
        return image
コード例 #3
0
ファイル: DV3DPlot.py プロジェクト: arulalant/uvcdat
 def getColormapManager( self, **args ):
     cmap_index = args.get('index',0)
     name = args.get('name',None)
     invert = args.get('invert',None)
     smooth = args.get('smooth',None)
     cmap_mgr = self.colormapManagers.get( cmap_index, None )
     if cmap_mgr == None:
         lut = vtk.vtkLookupTable()
         cmap_mgr = ColorMapManager( lut ) 
         self.colormapManagers[cmap_index] = cmap_mgr
     if (invert <> None): cmap_mgr.invertColormap = invert
     if (smooth <> None): cmap_mgr.smoothColormap = smooth
     if name:   cmap_mgr.load_lut( name )
     return cmap_mgr
コード例 #4
0
ファイル: ListWidget.py プロジェクト: NESII/uvcdat
 def __init__( self, interactor, **args ):
     ListWidget.__init__( self, interactor, **args )
     self.lut = vtk.vtkLookupTable()
     self.image_data = {}
     self.colorMapManager = ColorMapManager( self.lut )
     self.textMapper = None
     self.build()
コード例 #5
0
 def getColormapManager(self, **args):
     cmap_index = args.get('index', 0)
     name = args.get('name', None)
     invert = args.get('invert', None)
     smooth = args.get('smooth', None)
     cmap_mgr = self.colormapManagers.get(cmap_index, None)
     if cmap_mgr == None:
         lut = vtk.vtkLookupTable()
         cmap_mgr = ColorMapManager(lut)
         self.colormapManagers[cmap_index] = cmap_mgr
     if (invert <> None): cmap_mgr.invertColormap = invert
     if (smooth <> None): cmap_mgr.smoothColormap = smooth
     if name: cmap_mgr.load_lut(name)
     return cmap_mgr
コード例 #6
0
ファイル: ListWidget.py プロジェクト: CDAT/UVIS_DV3D
class ColorbarListWidget(ListWidget):
    def __init__(self, interactor, **args):
        ListWidget.__init__(self, interactor, **args)
        self.lut = vtk.vtkLookupTable()
        self.image_data = {}
        self.colorMapManager = ColorMapManager(self.lut)
        self.textMapper = None
        self.build()

    def build(self):
        cmap_names = self.colorMapManager.getColormapNames()
        dy = 1.0 / len(cmap_names)
        for cmap_index, cmap_name in enumerate(cmap_names):
            self.getButton(name=cmap_name,
                           position=(1.0, 1.0 - dy * cmap_index))

    def getButtonRepresentation(self, **args):
        buttonRepresentation = vtk.vtkTexturedButtonRepresentation2D()
        cmap_name = args.get('name', None)
        button_id = args.get('id', cmap_name)
        if cmap_name:
            buttonRepresentation.SetNumberOfStates(2)
            for image_index in range(2):
                image_data = self.getColorbarImage(cmap_name,
                                                   invert=(image_index == 1))
                buttonRepresentation.SetButtonTexture(image_index, image_data)


#         labels = args.get( 'labels', None )
#         if labels:
#             if self.textMapper == None:
#                 size = args.get( 'size', [ 30.0, 30.0 ] )
#                 self.textMapper = vtk.vtkFreeTypeUtilities()
#             nstates = len( labels )
#             buttonRepresentation.SetNumberOfStates(nstates)
#             tprop = vtk.vtkTextProperty()
#             for label_index in range( nstates ):
#                 texture = vtk.vtkImageData()
#                 label = labels[label_index]
#                 if button_id == None: button_id = label
#                 self.textRenderer.RenderString( tprop, label, 0, 0, texture )
#                 buttonRepresentation.SetButtonTexture( label_index, texture )
        return button_id, buttonRepresentation

    def getColorbarImage(self, cmap_name, **args):
        cb_width = args.get('width', 40)
        invert = args.get('invert', False)
        cmap_data = self.colorMapManager.load_array(cmap_name) * 255.9
        if invert: cmap_data = cmap_data[::-1, :]
        cmap_data = np.expand_dims(cmap_data[:, 0:3].astype('uint8'), 0)
        cmap_data = np.tile(cmap_data, (cb_width, 1, 1))
        self.image_data[cmap_name + (".inv" if invert else '')] = cmap_data
        image = vtk.vtkImageData()
        image.SetDimensions(256, cb_width, 1)
        vtkdata = vtk.vtkUnsignedCharArray()
        vtkdata.SetNumberOfComponents(3)
        vtkdata.SetNumberOfTuples(cb_width * 256)
        vtkdata.SetVoidArray(cmap_data, cmap_data.size, 1)
        ptdata = image.GetPointData()
        ptdata.SetScalars(vtkdata)
        return image