コード例 #1
2
	def __init__(self, parent, visualizer, **kws):
		"""
		Initialization
		"""		
		self.x, self.y, self.z = -1, -1, -1
		VisualizationModule.__init__(self, parent, visualizer, **kws)	

		self.on = 0
		self.renew = 1
	
		self.distanceWidget = vtk.vtkDistanceWidget()
		self.obsTag = self.distanceWidget.AddObserver("EndInteractionEvent", self.onPlacePoint)
		self.representation = vtkbxd.vtkDistanceRepresentationScaled2D()
		self.representation.SetScaleX(1.0)
		self.representation.SetScaleZ(1.0)
		self.distanceWidget.SetRepresentation(self.representation)
		self.renderer = self.parent.getRenderer()
		iactor = self.wxrenwin.GetRenderWindow().GetInteractor()
		self.distanceWidget.SetInteractor(iactor)
		self.picker = vtk.vtkCellPicker()
		self.currentPlane = None

		#self.picker.SetTolerance(0.05)
		#self.updateRendering()
		self.filterDesc = "Measure distance in 3D view"
コード例 #2
0
    def __init__(self, parent, visualizer, **kws):
        """
		Method: __init__(parent)
		Initialization
		"""
        self.x, self.y, self.z = -1, -1, -1
        VisualizationModule.__init__(self, parent, visualizer, **kws)
        #self.name = "Arbitrary Slices"
        self.on = 0
        self.renew = 1
        self.mapper = vtk.vtkPolyDataMapper()

        self.outline = vtk.vtkOutlineFilter()
        self.outlineMapper = vtk.vtkPolyDataMapper()
        self.outlineActor = vtk.vtkActor()
        self.outlineActor.SetMapper(self.outlineMapper)

        self.picker = vtk.vtkCellPicker()
        self.picker.SetTolerance(0.5)

        self.planes = []
        self.renderer = self.parent.getRenderer()
        self.renderer.AddActor(self.outlineActor)

        self.ctf = None
        self.origin = None
        self.spacing = None
        self.extent = None
コード例 #3
0
	def __set_pure_state__(self, state):
		"""
		Set the state of the light
		"""        
		VisualizationModule.__set_pure_state__(self, state)
		self.parameters = state.parameters
		self.sendUpdateGUI()
コード例 #4
0
ファイル: VisualizeTrack.py プロジェクト: scijava/bioimagexd
	def __init__(self, parent, visualizer, **kws):
		"""
		Initialization
		"""     
		VisualizationModule.__init__(self, parent, visualizer, **kws)   

		self.descs = {"TrackFile": "Tracks file", #"AllTracks": "Show all tracks", \
					"MinLength": "Min. length of track (# of timepoints)",
					"SphereRadius": "Sphere radius",
					"TubeRadius": "Tube radius",
					"SameStartingPoint": "Visualize tracks starting from same point"}
		
		self.showTracks = []
			
		self.lineMapper = vtk.vtkPolyDataMapper()
		self.sphereMapper = vtk.vtkPolyDataMapper()
		self.firstMapper = vtk.vtkPolyDataMapper()
		self.lastMapper = vtk.vtkPolyDataMapper()
		self.currentMapper = vtk.vtkPolyDataMapper()
		self.actors = []
		self.renderer = self.parent.getRenderer()

        #iactor = self.wxrenwin.GetRenderWindow().GetInteractor()
		lib.messenger.connect(None, "visualize_tracks", self.onVisualizeTracks)
		self.filterDesc = "Visualize created motion tracks"
コード例 #5
0
	def __set_pure_state__(self, state):
		"""
		Set the state of the light
		"""        
		VisualizationModule.__set_pure_state__(self, state)
		self.parameters = state.parameters
		self.sendUpdateGUI()
コード例 #6
0
	def setDataUnit(self, dataunit):
		"""
		Sets the dataunit this module uses for visualization
		"""
		if dataunit == None:
			return
		VisualizationModule.setDataUnit(self, dataunit)
コード例 #7
0
	def updateRendering(self):
		"""
		Update the Rendering of this module
		"""
		if self.useOutline:
			self.outline.SetInput(self.data)
			self.outlineMapper.SetInput(self.outline.GetOutput())
			self.outlineMapper.Update()

		if self.renew:
			self.planeWidgetX.SetInput(self.data)
			self.planeWidgetZ.SetInput(self.data)
			self.planeWidgetY.SetInput(self.data)
			self.renew = 0
			for i in ["X", "Y", "Z"]:
				eval("self.planeWidget%s.SetPlaneOrientationTo%sAxes()" % (i, i))            
		self.planeWidgetX.SetSliceIndex(self.x)
		self.planeWidgetY.SetSliceIndex(self.y)
		self.planeWidgetZ.SetSliceIndex(self.z)
		
		if not self.on:
			self.planeWidgetX.On()
			self.planeWidgetY.On()
			self.planeWidgetZ.On()
			self.on = 1
		
		#self.mapper.Update()
		VisualizationModule.updateRendering(self, input)
		self.parent.Render()    
コード例 #8
0
    def showTimepoint(self, value):
        """
		Method: showTimepoint(tp)
		Set the timepoint to be displayed
		"""
        self.renew = 1
        VisualizationModule.showTimepoint(self, value)
コード例 #9
0
	def __init__(self, parent, visualizer, **kws):
		"""
		Method: __init__(parent)
		Initialization
		"""     
		self.x, self.y, self.z = -1, -1, -1
		VisualizationModule.__init__(self, parent, visualizer, **kws)   
		self.on = 0
		self.renew = 1
		self.mapper = vtk.vtkPolyDataMapper()
		self.eventDesc = "Rendering Camera Path"
		

		self.spline = spline = vtk.vtkSplineWidget()
		self.spline.GetLineProperty().SetColor(1, 0, 0)
		self.spline.GetHandleProperty().SetColor(0, 1, 0)
		self.spline.SetResolution(1000)

		#TODO: endInteraction is in GUI.Urmas.SplineEditor
		self.spline.AddObserver("EndInteractionEvent", self.endInteraction)
		self.spline.AddObserver("InteractionEvent", self.endInteraction)

		#TODO: iren is in GUI.Urmas.SplineEditor
		self.spline.SetInteractor(self.iren)
		#self.spline.On()
		
		#self.spline.SetEnabled(1)        
		self.renderer = self.parent.getRenderer()
コード例 #10
0
    def updateRendering(self):
        """
		Update the Rendering of this module
		"""
        if self.useOutline:
            self.outline.SetInput(self.data)
            self.outlineMapper.SetInput(self.outline.GetOutput())
            self.outlineMapper.Update()

        if self.renew:
            self.planeWidgetX.SetInput(self.data)
            self.planeWidgetZ.SetInput(self.data)
            self.planeWidgetY.SetInput(self.data)
            self.renew = 0
            for i in ["X", "Y", "Z"]:
                eval("self.planeWidget%s.SetPlaneOrientationTo%sAxes()" %
                     (i, i))
        self.planeWidgetX.SetSliceIndex(self.x)
        self.planeWidgetY.SetSliceIndex(self.y)
        self.planeWidgetZ.SetSliceIndex(self.z)

        if not self.on:
            self.planeWidgetX.On()
            self.planeWidgetY.On()
            self.planeWidgetZ.On()
            self.on = 1

        #self.mapper.Update()
        VisualizationModule.updateRendering(self, input)
        self.parent.Render()
コード例 #11
0
ファイル: ScaleBar.py プロジェクト: scijava/bioimagexd
    def __init__(self, parent, visualizer, **kws):
        """
		Initialization
		"""
        self.x, self.y, self.z = -1, -1, -1
        VisualizationModule.__init__(self, parent, visualizer, **kws)
        #self.name = "Scale bar"
        self.renew = 1
        self.mapper = vtk.vtkDataSetMapper()

        self.actor = vtk.vtkActor()
        self.actor.SetMapper(self.mapper)
        self.width = 10
        self.widthPx = 100
        self.voxelSize = (1, 1, 1)

        self.renderer = self.parent.getRenderer()
        self.renderer.AddActor(self.actor)

        self.polyLine = vtk.vtkPolyLine()
        #self.mapper.SetInput(self.polyLine.GetOutput())
        self.actor.GetProperty().SetColor(1, 1, 1)

        self.textActor = vtk.vtkTextActor()
        #self.textActor.ScaledTextOn()
        self.renderer.AddActor2D(self.textActor)

        iactor = self.wxrenwin.GetRenderWindow().GetInteractor()
        style = iactor.GetInteractorStyle()
        #        style.AddObserver("StartInteractionEvent",self.updateLine)
        style.AddObserver("EndInteractionEvent", self.updateRendering)
コード例 #12
0
ファイル: VisualizeTrack.py プロジェクト: scijava/bioimagexd
	def setParameter(self, parameter, value):
		"""
		Set a value for the parameter
		"""
		#if parameter == "AllTracks":
		#	lib.messenger.send(None, "visualize_all_tracks", value)
		VisualizationModule.setParameter(self, parameter, value)
コード例 #13
0
	def setDataUnit(self, dataunit):
		"""
		Sets the dataunit this module uses for visualization
		"""       
		VisualizationModule.setDataUnit(self, dataunit)
		if self.dataUnit.isProcessed():
			data = self.dataUnit.getSourceDataUnits()[0].getTimepoint(0)
		else:
			data = self.dataUnit.getTimepoint(0)
		self.origin = data.GetOrigin()
		self.spacing = data.GetSpacing()
		self.extent = data.GetWholeExtent()

		x = self.extent[1] / 2
		y = self.extent[3] / 2
		z = self.extent[5] / 2
		self.setDisplaySlice(x, y, z)

		ctf = self.dataUnit.getColorTransferFunction()
		self.planeWidgetX.GetColorMap().SetLookupTable(ctf)
		self.planeWidgetX.maxDim = x
		
		self.planeWidgetY.GetColorMap().SetLookupTable(ctf)
		self.planeWidgetY.maxDim = y
		
		self.planeWidgetZ.GetColorMap().SetLookupTable(ctf)
		self.planeWidgetZ.maxDim = z
コード例 #14
0
	def showTimepoint(self, value):
		"""
		Method: showTimepoint(tp)
		Set the timepoint to be displayed
		"""          
		self.renew = 1
		VisualizationModule.showTimepoint(self, value)
コード例 #15
0
    def setParameter(self, parameter, value):
        """
		set a parameter to given value
		"""
        VisualizationModule.setParameter(self, parameter, value)
        if parameter == "ShowControls" and self.boxWidget:
            self.showPlane(value)
コード例 #16
0
ファイル: Spline.py プロジェクト: scijava/bioimagexd
    def __init__(self, parent, visualizer, **kws):
        """
		Method: __init__(parent)
		Initialization
		"""
        self.x, self.y, self.z = -1, -1, -1
        VisualizationModule.__init__(self, parent, visualizer, **kws)
        self.on = 0
        self.renew = 1
        self.mapper = vtk.vtkPolyDataMapper()
        self.eventDesc = "Rendering Camera Path"

        self.spline = spline = vtk.vtkSplineWidget()
        self.spline.GetLineProperty().SetColor(1, 0, 0)
        self.spline.GetHandleProperty().SetColor(0, 1, 0)
        self.spline.SetResolution(1000)

        #TODO: endInteraction is in GUI.Urmas.SplineEditor
        self.spline.AddObserver("EndInteractionEvent", self.endInteraction)
        self.spline.AddObserver("InteractionEvent", self.endInteraction)

        #TODO: iren is in GUI.Urmas.SplineEditor
        self.spline.SetInteractor(self.iren)
        #self.spline.On()

        #self.spline.SetEnabled(1)
        self.renderer = self.parent.getRenderer()
	def __init__(self, parent, visualizer, **kws):
		"""
		Initialization
		"""
		self.x, self.y, self.z = -1, -1, -1
		#self.name = "Clipping Plane"
		self.parent = parent        
		self.on = 0
		self.renew = 1
		self.currentPlane = None
		self.clipped = 0
		self.clippedModules = []
		self.planeWidget = vtk.vtkPlaneWidget()
		self.planeWidget.AddObserver("InteractionEvent", self.clipVolumeRendering)
		self.planeWidget.SetResolution(20)
		self.planeWidget.SetRepresentationToOutline()
		self.planeWidget.NormalToXAxisOn()
		self.renderer = self.parent.getRenderer()
		self.plane = vtk.vtkPlane()

		iactor = parent.wxrenwin.GetRenderWindow().GetInteractor()
		self.planeWidget.SetInteractor(iactor)
		VisualizationModule.__init__(self, parent, visualizer, **kws)
		
		self.descs = {"ShowControl": "Show controls",
					  "AllModules": "Clip all modules",
					  "ClippedModule": "Module to clip"}
		self.filterDesc = "Clip rendering using a plane"
コード例 #18
0
	def updateRendering(self):
		"""
		Update the Rendering of this module
		"""
		filename = self.parameters["FileName"]
		if not os.path.exists(filename) or not self.enabled:
			return

		self.reader.SetFileName(filename)
		self.reader.SetHBScale(1.0)
		self.reader.SetBScale(1.0)

		self.sphereSource.SetRadius(self.parameters['SphereRadius'])
		self.tubeFilter.SetRadius(self.parameters['TubeRadius'])
		
		self.glyph3D.SetInputConnection(self.reader.GetOutputPort())
		self.mapper.SetInputConnection(self.glyph3D.GetOutputPort())
		self.tubeFilter.SetInputConnection(self.reader.GetOutputPort())
		self.mapper2.SetInputConnection(self.tubeFilter.GetOutputPort())
		
		if not self.actorsInitialized:
			self.renderer.AddActor(self.tubeActor)
			self.renderer.AddActor(self.actor)
			self.actorsInitialized = True

		self.mapper.Update()
		VisualizationModule.updateRendering(self)
		self.parent.Render()
コード例 #19
0
	def __init__(self, parent, visualizer, **kws):
		"""
		Initialization
		"""     
		self.x, self.y, self.z = -1, -1, -1
		VisualizationModule.__init__(self, parent, visualizer, **kws)   
		#self.name = "Scale bar"
		self.renew = 1
		self.mapper = vtk.vtkDataSetMapper()
		
		self.actor = vtk.vtkActor()
		self.actor.SetMapper(self.mapper)
		self.width = 10
		self.widthPx = 100
		self.voxelSize = (1, 1, 1)
		
		self.renderer = self.parent.getRenderer()
		self.renderer.AddActor(self.actor)
		

		self.polyLine = vtk.vtkPolyLine()
		#self.mapper.SetInput(self.polyLine.GetOutput())
		self.actor.GetProperty().SetColor(1, 1, 1)
			   
		self.textActor = vtk.vtkTextActor()
		#self.textActor.ScaledTextOn()
		self.renderer.AddActor2D(self.textActor)
		
		iactor = self.wxrenwin.GetRenderWindow().GetInteractor()
		style = iactor.GetInteractorStyle()
#        style.AddObserver("StartInteractionEvent",self.updateLine)
		style.AddObserver("EndInteractionEvent", self.updateRendering)
コード例 #20
0
    def setDataUnit(self, dataunit):
        """
		Sets the dataunit this module uses for visualization
		"""
        VisualizationModule.setDataUnit(self, dataunit)
        if self.dataUnit.isProcessed():
            data = self.dataUnit.getSourceDataUnits()[0].getTimepoint(0)
        else:
            data = self.dataUnit.getTimepoint(0)
        self.origin = data.GetOrigin()
        self.spacing = data.GetSpacing()
        self.extent = data.GetWholeExtent()

        x = self.extent[1] / 2
        y = self.extent[3] / 2
        z = self.extent[5] / 2
        self.setDisplaySlice(x, y, z)

        ctf = self.dataUnit.getColorTransferFunction()
        self.planeWidgetX.GetColorMap().SetLookupTable(ctf)
        self.planeWidgetX.maxDim = x

        self.planeWidgetY.GetColorMap().SetLookupTable(ctf)
        self.planeWidgetY.maxDim = y

        self.planeWidgetZ.GetColorMap().SetLookupTable(ctf)
        self.planeWidgetZ.maxDim = z
コード例 #21
0
ファイル: Axes.py プロジェクト: scijava/bioimagexd
	def updateRendering(self, e1 = None, e2 = None):
		"""
		Update the Rendering of this module
		"""             
		#self.mapper.Update()
		VisualizationModule.updateRendering(self, input)
		self.wxrenwin.Render()    
コード例 #22
0
    def __init__(self, parent, visualizer, **kws):
        """
		Initialization
		"""
        self.x, self.y, self.z = -1, -1, -1
        #self.name = "Clipping Plane"
        self.parent = parent
        self.on = 0
        self.renew = 1
        self.currentPlane = None
        self.clipped = 0
        self.clippedModules = []
        self.planeWidget = vtk.vtkPlaneWidget()
        self.planeWidget.AddObserver("InteractionEvent",
                                     self.clipVolumeRendering)
        self.planeWidget.SetResolution(20)
        self.planeWidget.SetRepresentationToOutline()
        self.planeWidget.NormalToXAxisOn()
        self.renderer = self.parent.getRenderer()
        self.plane = vtk.vtkPlane()

        iactor = parent.wxrenwin.GetRenderWindow().GetInteractor()
        self.planeWidget.SetInteractor(iactor)
        VisualizationModule.__init__(self, parent, visualizer, **kws)

        self.descs = {
            "ShowControl": "Show controls",
            "AllModules": "Clip all modules",
            "ClippedModule": "Module to clip"
        }
        self.filterDesc = "Clip rendering using a plane"
コード例 #23
0
	def setParameter(self, parameter, value):
		"""
		set a parameter to given value
		"""
		VisualizationModule.setParameter(self, parameter, value)
		if parameter == "ShowControls" and self.boxWidget:
			self.showPlane(value)
コード例 #24
0
	def __init__(self, parent, visualizer, **kws):
		"""
		Initialization
		"""     
		self.x, self.y, self.z = -1, -1, -1
		VisualizationModule.__init__(self, parent, visualizer, **kws)
		self.on = 0
		self.renew = 1
		self.mapper = vtk.vtkPolyDataMapper()
		self.eventDesc = "Rendering orthogonal slices"
		self.outline = vtk.vtkOutlineFilter()
		self.outlineMapper = vtk.vtkPolyDataMapper()
		self.outlineActor = vtk.vtkActor()
		self.outlineActor.SetMapper(self.outlineMapper)
		
		self.picker = vtk.vtkCellPicker()
		self.picker.SetTolerance(0.005)
		
		self.planeWidgetX = vtk.vtkImagePlaneWidget()
		self.planeWidgetX.DisplayTextOn()
		self.planeWidgetX.SetPicker(self.picker)
		self.planeWidgetX.SetKeyPressActivationValue("x")
		#self.planeWidgetX.UserControlledLookupTableOn()
		self.prop1 = self.planeWidgetX.GetPlaneProperty()
		#self.prop1.SetColor(1, 0, 0)
		self.planeWidgetX.SetResliceInterpolateToCubic()

		self.planeWidgetY = vtk.vtkImagePlaneWidget()
		self.planeWidgetY.DisplayTextOn()
		self.planeWidgetY.SetPicker(self.picker)
		self.planeWidgetY.SetKeyPressActivationValue("y")
		self.prop2 = self.planeWidgetY.GetPlaneProperty()
		self.planeWidgetY.SetResliceInterpolateToCubic()
		#self.planeWidgetY.UserControlledLookupTableOn()
		#self.prop2.SetColor(1, 1, 0)


		# for the z-slice, turn off texture interpolation:
		# interpolation is now nearest neighbour, to demonstrate
		# cross-hair cursor snapping to pixel centers
		self.planeWidgetZ = vtk.vtkImagePlaneWidget()
		self.planeWidgetZ.DisplayTextOn()
		self.planeWidgetZ.SetPicker(self.picker)
		self.planeWidgetZ.SetKeyPressActivationValue("z")
		self.prop3 = self.planeWidgetZ.GetPlaneProperty()
		#self.prop3.SetColor(1, 0, 1)
		#self.planeWidgetZ.UserControlledLookupTableOn()
		self.planeWidgetZ.SetResliceInterpolateToCubic()
		self.renderer = self.parent.getRenderer()
		self.renderer.AddActor(self.outlineActor)
		self.useOutline = 1
		
		iactor = self.wxrenwin.GetRenderWindow().GetInteractor()
		self.planeWidgetX.SetInteractor(iactor)
		self.planeWidgetY.SetInteractor(iactor)
		self.planeWidgetZ.SetInteractor(iactor)
		
		lib.messenger.connect(None, "zslice_changed", self.setZ)
		self.filterDesc = "View orthogonal slices"
コード例 #25
0
    def showTimepoint(self, value, update=1):
        """
		Show the given timepoint
		"""
        VisualizationModule.showTimepoint(self, value, update)
        minVal, maxVal = self.data.GetScalarRange()
        # if (min,max) != self.scalarRange:
        self.setScalarRange(minVal, maxVal)
コード例 #26
0
    def showTimepoint(self, value, update=1):
        """
		Show the given timepoint
		"""
        VisualizationModule.showTimepoint(self, value, update)
        minVal, maxVal = self.data.GetScalarRange()
        #if (min,max) != self.scalarRange:
        self.setScalarRange(minVal, maxVal)
コード例 #27
0
    def __init__(self, parent, visualizer, **kws):
        """
		Initialization
		"""
        self.x, self.y, self.z = -1, -1, -1
        VisualizationModule.__init__(self, parent, visualizer, **kws)
        self.on = 0
        self.renew = 1
        self.mapper = vtk.vtkPolyDataMapper()
        self.eventDesc = "Rendering orthogonal slices"
        self.outline = vtk.vtkOutlineFilter()
        self.outlineMapper = vtk.vtkPolyDataMapper()
        self.outlineActor = vtk.vtkActor()
        self.outlineActor.SetMapper(self.outlineMapper)

        self.picker = vtk.vtkCellPicker()
        self.picker.SetTolerance(0.005)

        self.planeWidgetX = vtk.vtkImagePlaneWidget()
        self.planeWidgetX.DisplayTextOn()
        self.planeWidgetX.SetPicker(self.picker)
        self.planeWidgetX.SetKeyPressActivationValue("x")
        #self.planeWidgetX.UserControlledLookupTableOn()
        self.prop1 = self.planeWidgetX.GetPlaneProperty()
        #self.prop1.SetColor(1, 0, 0)
        self.planeWidgetX.SetResliceInterpolateToCubic()

        self.planeWidgetY = vtk.vtkImagePlaneWidget()
        self.planeWidgetY.DisplayTextOn()
        self.planeWidgetY.SetPicker(self.picker)
        self.planeWidgetY.SetKeyPressActivationValue("y")
        self.prop2 = self.planeWidgetY.GetPlaneProperty()
        self.planeWidgetY.SetResliceInterpolateToCubic()
        #self.planeWidgetY.UserControlledLookupTableOn()
        #self.prop2.SetColor(1, 1, 0)

        # for the z-slice, turn off texture interpolation:
        # interpolation is now nearest neighbour, to demonstrate
        # cross-hair cursor snapping to pixel centers
        self.planeWidgetZ = vtk.vtkImagePlaneWidget()
        self.planeWidgetZ.DisplayTextOn()
        self.planeWidgetZ.SetPicker(self.picker)
        self.planeWidgetZ.SetKeyPressActivationValue("z")
        self.prop3 = self.planeWidgetZ.GetPlaneProperty()
        #self.prop3.SetColor(1, 0, 1)
        #self.planeWidgetZ.UserControlledLookupTableOn()
        self.planeWidgetZ.SetResliceInterpolateToCubic()
        self.renderer = self.parent.getRenderer()
        self.renderer.AddActor(self.outlineActor)
        self.useOutline = 1

        iactor = self.wxrenwin.GetRenderWindow().GetInteractor()
        self.planeWidgetX.SetInteractor(iactor)
        self.planeWidgetY.SetInteractor(iactor)
        self.planeWidgetZ.SetInteractor(iactor)

        lib.messenger.connect(None, "zslice_changed", self.setZ)
        self.filterDesc = "View orthogonal slices"
コード例 #28
0
    def setParameter(self, parameter, value):
        """
		set the value of a parameter to value
		"""
        VisualizationModule.setParameter(self, parameter, value)
        if parameter == "ShowControl":
            self.showPlane(value)
        if parameter in ["AllModules", "ClippedModule"]:
            self.clipWithCurrentPlane()
コード例 #29
0
	def __set_pure_state__(self, state):
		"""
		Set the state of the light
		"""		   
		self.setVTKState(self.distanceWidget, state.distanceWidget)
		self.setVTKState(self.currentPlane, state.currentPlane)
		self.setVTKState(self.renderer, state.renderer)
		self.setVTKState(self.renderer.GetActiveCamera(), state.camera)
		VisualizationModule.__set_pure_state__(self, state)
	def setParameter(self, parameter, value):
		"""
		set the value of a parameter to value
		"""
		VisualizationModule.setParameter(self, parameter, value)
		if parameter == "ShowControl":
			self.showPlane(value)
		if parameter in ["AllModules", "ClippedModule"]:
			self.clipWithCurrentPlane()
コード例 #31
0
ファイル: Axes.py プロジェクト: scijava/bioimagexd
	def setParameter(self, parameter, value):
		"""
		Set parameter and update axes
		"""
		VisualizationModule.setParameter(self, parameter, value)
		if self.axes:
			x,y,z = self.parameters["X"], self.parameters["Y"], self.parameters["Z"]
			self.axes.SetTotalLength(x,y,z)
			length = math.sqrt(x**2 + y**2 + z**2) / self.length
			self.marker.SetViewport(0.0, 0.0, 0.2 * length, 0.2 * length)
コード例 #32
0
ファイル: Angle.py プロジェクト: scijava/bioimagexd
	def setDataUnit(self, dataunit):
		"""
		Sets the dataunit this module uses for visualization
		"""       
		VisualizationModule.setDataUnit(self, dataunit)
		if self.visualizer.getProcessedMode():
			data = self.dataUnit.getSourceDataUnits()[0].getTimepoint(0)
		else:
			data = self.dataUnit.getTimepoint(0)
		sx, sy, sz = data.GetSpacing()
コード例 #33
0
    def setDataUnit(self, dataunit):
        """
		Sets the dataunit this module uses for visualization
		"""
        VisualizationModule.setDataUnit(self, dataunit)
        data = self.getInput(1)

        self.boxWidget.SetInput(data)
        self.boxWidget.PlaceWidget()
        self.boxWidget.On()
コード例 #34
0
	def setDataUnit(self, dataunit):
		"""
		Sets the dataunit this module uses for visualization
		"""       
		VisualizationModule.setDataUnit(self, dataunit)
		data = self.getInput(1)

		self.boxWidget.SetInput(data)
		self.boxWidget.PlaceWidget()
		self.boxWidget.On()
コード例 #35
0
	def __set_pure_state__(self, state):
		"""
		Method: __set_pure_state__()
		Set the state of the light
		"""        
		
		self.setVTKState(self.spline, state.spline)
		
		self.setVTKState(self.renderer, state.renderer)
		self.setVTKState(self.renderer.GetActiveCamera(), state.camera)
		VisualizationModule.__set_pure_state__(self, state)
コード例 #36
0
ファイル: ScaleBar.py プロジェクト: scijava/bioimagexd
    def setDataUnit(self, dataunit):
        """
		Sets the dataunit this module uses for visualization
		"""
        VisualizationModule.setDataUnit(self, dataunit)

        if self.visualizer.getProcessedMode():
            self.voxelSize = dataunit.getSourceDataUnits()[0].getVoxelSize()
        else:
            self.voxelSize = dataunit.getVoxelSize()
        self.updateLine()
コード例 #37
0
	def setDataUnit(self, dataunit):
		"""
		Sets the dataunit this module uses for visualization
		"""       
		VisualizationModule.setDataUnit(self, dataunit)
		
		if self.visualizer.getProcessedMode():
			self.voxelSize = dataunit.getSourceDataUnits()[0].getVoxelSize()
		else:
			self.voxelSize = dataunit.getVoxelSize()  
		self.updateLine()
コード例 #38
0
ファイル: Spline.py プロジェクト: scijava/bioimagexd
    def __set_pure_state__(self, state):
        """
		Method: __set_pure_state__()
		Set the state of the light
		"""

        self.setVTKState(self.spline, state.spline)

        self.setVTKState(self.renderer, state.renderer)
        self.setVTKState(self.renderer.GetActiveCamera(), state.camera)
        VisualizationModule.__set_pure_state__(self, state)
コード例 #39
0
ファイル: WarpScalar.py プロジェクト: scijava/bioimagexd
    def updateRendering(self):
        """
		Update the Rendering of this module
		"""
        data = self.getInput(1)
        x, y, z = self.dataUnit.getDimensions()
        data = optimize.optimize(image=data,
                                 updateExtent=(0, x - 1, 0, y - 1, 0, z - 1))
        if data.GetNumberOfScalarComponents() > 3:
            extract = vtk.vtkImageExtractComponents()
            extract.SetInput(data)
            extract.SetComponents(1, 1, 1)
            data = extract.GetOutput()
        if data.GetNumberOfScalarComponents() > 1:
            self.luminance.SetInput(data)
            data = self.luminance.GetOutput()

        z = self.parameters["Slice"]
        ext = (0, x - 1, 0, y - 1, z, z)

        voi = vtk.vtkExtractVOI()
        voi.SetVOI(ext)
        voi.SetInput(data)
        slice = voi.GetOutput()
        self.geometry.SetInput(slice)

        self.warp.SetInput(self.geometry.GetOutput())
        self.warp.SetScaleFactor(self.parameters["Scale"])
        self.merge.SetGeometry(self.warp.GetOutput())

        if slice.GetNumberOfScalarComponents() == 1:
            maptocol = vtk.vtkImageMapToColors()
            ctf = self.getInputDataUnit(1).getColorTransferFunction()
            maptocol.SetInput(slice)
            maptocol.SetLookupTable(ctf)
            maptocol.Update()
            scalars = maptocol.GetOutput()
        else:
            scalars = slice

        self.merge.SetScalars(scalars)
        data = self.merge.GetOutput()

        if self.parameters["Normals"]:
            self.normals.SetInput(data)
            self.normals.SetFeatureAngle(self.parameters["FeatureAngle"])
            print "Feature angle=", self.parameters["FeatureAngle"]
            data = self.normals.GetOutput()

        self.mapper.SetInput(data)
        self.mapper.Update()
        VisualizationModule.updateRendering(self)
        self.parent.Render()
コード例 #40
0
ファイル: Spline.py プロジェクト: scijava/bioimagexd
    def setDataUnit(self, dataunit):
        """
		Method: setDataUnit(self)
		Sets the dataunit this module uses for visualization
		"""
        VisualizationModule.setDataUnit(self, dataunit)
        if self.visualizer.getProcessedMode():
            data = self.dataUnit.getSourceDataUnits()[0].getTimepoint(0)
        else:
            data = self.dataUnit.getTimepoint(0)

        ctf = self.dataUnit.getColorTransferFunction()
コード例 #41
0
	def updateRendering(self):
		"""
		Update the Rendering of this module
		"""
		data = self.getInput(1)
		x,y,z = self.dataUnit.getDimensions()
		data = optimize.optimize(image = data, updateExtent = (0, x-1, 0, y-1, 0, z-1))
		if data.GetNumberOfScalarComponents() > 3:
			extract = vtk.vtkImageExtractComponents()
			extract.SetInput(data)
			extract.SetComponents(1, 1, 1)
			data = extract.GetOutput()
		if data.GetNumberOfScalarComponents() > 1:
			self.luminance.SetInput(data)
			data = self.luminance.GetOutput()
		
		z = self.parameters["Slice"]
		ext = (0, x - 1, 0, y - 1, z, z)

		voi = vtk.vtkExtractVOI()
		voi.SetVOI(ext)
		voi.SetInput(data)
		slice = voi.GetOutput()
		self.geometry.SetInput(slice)         
		
		self.warp.SetInput(self.geometry.GetOutput())
		self.warp.SetScaleFactor(self.parameters["Scale"])		
		self.merge.SetGeometry(self.warp.GetOutput())
		
		if slice.GetNumberOfScalarComponents() == 1:
			maptocol = vtk.vtkImageMapToColors()
			ctf = self.getInputDataUnit(1).getColorTransferFunction()
			maptocol.SetInput(slice)
			maptocol.SetLookupTable(ctf)
			maptocol.Update()
			scalars = maptocol.GetOutput()
		else:
			scalars = slice
			
		self.merge.SetScalars(scalars)
		data = self.merge.GetOutput()
		
		if self.parameters["Normals"]:
			self.normals.SetInput(data)
			self.normals.SetFeatureAngle(self.parameters["FeatureAngle"])
			print "Feature angle=", self.parameters["FeatureAngle"]            
			data = self.normals.GetOutput()
		
		self.mapper.SetInput(data)
		self.mapper.Update()
		VisualizationModule.updateRendering(self)
		self.parent.Render()
コード例 #42
0
    def __set_pure_state__(self, state):
        """
		Set the state of the light
		"""
        self.setVTKState(self.planeWidget, state.planeWidget)
        self.setVTKState(self.currentPlane, state.currentPlane)
        self.setVTKState(self.renderer, state.renderer)
        self.setVTKState(self.renderer.GetActiveCamera(), state.camera)

        self.clipped = state.clipped
        if self.clipped:
            self.clipVolumeRendering(self.planeWidget, None)
        VisualizationModule.__set_pure_state__(self, state)
コード例 #43
0
	def setInputChannel(self, inputNum, chl):
		"""
		Set the input channel for input #inputNum
		"""
		VisualizationModule.setInputChannel(self, inputNum, chl)
		if self.dataUnit:
			inputDataUnit = self.getInputDataUnit(1)
			if not inputDataUnit:
				inputDataUnit = self.dataUnit
			self.colorTransferFunction = inputDataUnit.getColorTransferFunction()
			lib.messenger.send(self, "set_Palette_ctf", self.colorTransferFunction)
			
			self.volumeProperty.SetColor(self.colorTransferFunction)
	def __set_pure_state__(self, state):
		"""
		Set the state of the light
		"""        
		self.setVTKState(self.planeWidget, state.planeWidget)
		self.setVTKState(self.currentPlane, state.currentPlane)
		self.setVTKState(self.renderer, state.renderer)
		self.setVTKState(self.renderer.GetActiveCamera(), state.camera)

		self.clipped = state.clipped
		if self.clipped:
			self.clipVolumeRendering(self.planeWidget, None)
		VisualizationModule.__set_pure_state__(self, state)
コード例 #45
0
	def setDataUnit(self, dataunit):
		"""
		Method: setDataUnit(self)
		Sets the dataunit this module uses for visualization
		"""       
		VisualizationModule.setDataUnit(self, dataunit)
		if self.visualizer.getProcessedMode():
			data = self.dataUnit.getSourceDataUnits()[0].getTimepoint(0)
		else:
			data = self.dataUnit.getTimepoint(0)


		ctf = self.dataUnit.getColorTransferFunction()
コード例 #46
0
ファイル: Volume.py プロジェクト: scijava/bioimagexd
    def updateRendering(self, input=None):
        """
		Update the Rendering of this module
		"""
        self.updateMethod()
        self.updateQuality()
        self.updateInterpolation()
        self.setShading(self.parameters["UseShading"])

        if not input:
            input = self.getInput(1)
        x, y, z = self.dataUnit.getDimensions()

        input = optimize.optimize(image=input,
                                  updateExtent=(0, x - 1, 0, y - 1, 0, z - 1))

        ncomps = input.GetNumberOfScalarComponents()
        Logging.info("Number of comps=", ncomps, kw="rendering")
        dataType = input.GetScalarType()
        if (ncomps > 1 or dataType not in [3, 5]
            ) and self.parameters["Method"] == TEXTURE_MAPPING:
            self.setParameter("Method", 0)
            lib.messenger.send(None, "update_module_settings")
        if ncomps > 1:
            self.volumeProperty.IndependentComponentsOff()
        else:
            self.volumeProperty.IndependentComponentsOn()

        Logging.info("Rendering using, ",
                     self.mapper.__class__,
                     kw="rendering")
        self.mapper.SetInput(input)
        if self.mapperUpdated:
            self.volume.SetMapper(self.mapper)
            self.mapperUpdated = False
        if not self.volumeAdded:
            self.parent.getRenderer().AddVolume(self.volume)
            self.volumeAdded = True

        VisualizationModule.updateRendering(self, input)
        self.parent.Render()
        if self.parameters["Method"] == TEXTURE_MAPPING_3D:
            if not self.mapper.IsRenderSupported(self.volumeProperty,
                                                 self.renderer):
                lib.messenger.send(None, \
                    "show_error", \
                    "3D texture mapping not supported", \
                    "Your graphics hardware does not support 3D accelerated texture mapping. \
								Please use one of the other volume rendering methods."                                                                          )
コード例 #47
0
	def updateRendering(self):
		"""
		Method: updateRendering()
		Update the Rendering of this module
		"""             
		if self.renew:
			self.spline.SetInput(self.data)
		
		if not self.on:
			self.spline.On()
			self.on = 1
		
		#self.mapper.Update()
		VisualizationModule.updateRendering(self, input)
		self.parent.Render()    
コード例 #48
0
ファイル: Angle.py プロジェクト: scijava/bioimagexd
	def updateRendering(self):
		"""
		Update the Rendering of this module
		"""             
		
		if self.renew:
			self.renew = 0
		
		if not self.on:
			self.angleWidget.On()
			self.on = 1
		
		#self.mapper.Update()
		VisualizationModule.updateRendering(self, input)
		self.parent.Render()    
コード例 #49
0
ファイル: Volume.py プロジェクト: scijava/bioimagexd
    def setInputChannel(self, inputNum, chl):
        """
		Set the input channel for input #inputNum
		"""
        VisualizationModule.setInputChannel(self, inputNum, chl)
        if self.dataUnit:
            inputDataUnit = self.getInputDataUnit(1)
            if not inputDataUnit:
                inputDataUnit = self.dataUnit
            self.colorTransferFunction = inputDataUnit.getColorTransferFunction(
            )
            lib.messenger.send(self, "set_Palette_ctf",
                               self.colorTransferFunction)

            self.volumeProperty.SetColor(self.colorTransferFunction)
コード例 #50
0
	def updateRendering(self):
		"""
		Update the Rendering of this module
		"""
		input = self.getInput(1)
		if self.parameters["InsideOut"]:
			self.boxWidget.InsideOutOn()
		else:
			self.boxWidget.InsideOutOff()
		self.boxWidget.SetInput(input)
#        self.mapper.SetInput(data)
		
		#self.mapper.Update()
		VisualizationModule.updateRendering(self)
		self.parent.Render()