From 5de709ee1731a30b619e071f616a231b75b5ac22 Mon Sep 17 00:00:00 2001 From: tfmoraes Date: Fri, 11 Sep 2009 14:34:21 +0000 Subject: [PATCH] ENH: Using wx events instead of pubsub messages in clut_raycasting. FIX: fix a error when altering color in clut_raycasting --- invesalius/data/viewer_volume.py | 2 +- invesalius/data/volume.py | 23 ++++++++++++++++------- invesalius/gui/default_viewers.py | 1 + invesalius/gui/widgets/clut_raycasting.py | 2 +- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/invesalius/data/viewer_volume.py b/invesalius/data/viewer_volume.py index fed1fa3..7bae9d6 100755 --- a/invesalius/data/viewer_volume.py +++ b/invesalius/data/viewer_volume.py @@ -669,4 +669,4 @@ class SlicePlane: self.plane_y.SetSliceIndex(number) else: self.plane_z.SetPlaneOrientationToZAxes() - self.plane_z.SetSliceIndex(number) \ No newline at end of file + self.plane_z.SetSliceIndex(number) diff --git a/invesalius/data/volume.py b/invesalius/data/volume.py index 58ec9be..c72f667 100755 --- a/invesalius/data/volume.py +++ b/invesalius/data/volume.py @@ -125,7 +125,7 @@ class Volume(): if self.exist: self.__load_preset() self.volume.SetVisibility(1) - ps.Publisher().sendMessage('Render volume viewer') + #ps.Publisher().sendMessage('Render volume viewer') else: self.LoadVolume() self.exist = 1 @@ -140,10 +140,16 @@ class Volume(): if self.config['advancedCLUT']: self.Create16bColorTable(self.scale) self.CreateOpacityTable(self.scale) + self.CalculateWWWL() + ww = self.ww + wl = self.wl + ps.Publisher().sendMessage('Set volume window and level text', + (ww, wl)) else: self.Create8bColorTable(self.scale) self.Create8bOpacityTable(self.scale) + def __load_preset(self): # Update colour table self.__update_colour_table() @@ -185,7 +191,11 @@ class Volume(): def SetWWWL(self, ww, wl): if self.config['advancedCLUT']: - curve = self.config['16bitClutCurves'][self.curve] + try: + curve = self.config['16bitClutCurves'][self.curve] + except IndexError: + self.curve = 0 + curve = self.config['16bitClutCurves'][self.curve] p1 = curve[0] p2 = curve[-1] @@ -210,7 +220,6 @@ class Volume(): self.config['ww'] = ww self.__update_colour_table() - ps.Publisher().sendMessage('Render volume viewer') def CalculateWWWL(self): """ @@ -220,7 +229,7 @@ class Volume(): first_point = curve[0]['x'] last_point = curve[-1]['x'] self.ww = last_point - first_point - self.wl = first_point + self.ww + self.wl = first_point + self.ww / 2.0 def Refresh(self, pubsub_evt): self.__update_colour_table() @@ -457,8 +466,8 @@ class Volume(): self.volume_mapper = volume_mapper # TODO: Look to this - #volume_mapper = vtk.vtkVolumeTextureMapper2D() - #volume_mapper.SetInput(image2.GetOutput()) + #volume_mapper_hw = vtk.vtkVolumeTextureMapper3D() + #volume_mapper_hw.SetInput(image2) #Cut Plane #CutPlane(image2, volume_mapper) @@ -495,7 +504,7 @@ class Volume(): volume.SetMapper(volume_mapper) volume.SetProperty(volume_properties) volume.AddObserver("ProgressEvent", lambda obj,evt: - update_progress(volume, "Volume ...")) + update_progress(volume, "Volume ...")) self.volume = volume colour = self.GetBackgroundColour() diff --git a/invesalius/gui/default_viewers.py b/invesalius/gui/default_viewers.py index 4ccf031..3cf82c1 100755 --- a/invesalius/gui/default_viewers.py +++ b/invesalius/gui/default_viewers.py @@ -255,6 +255,7 @@ class VolumeInteraction(wx.Panel): def OnPointChanged(self, evt): ps.Publisher.sendMessage('Set raycasting refresh', None) + ps.Publisher.sendMessage('Set raycasting curve', evt.GetCurve()) ps.Publisher().sendMessage('Render volume viewer', None) def OnCurveSelected(self, evt): diff --git a/invesalius/gui/widgets/clut_raycasting.py b/invesalius/gui/widgets/clut_raycasting.py index 4ee4ac0..df34460 100644 --- a/invesalius/gui/widgets/clut_raycasting.py +++ b/invesalius/gui/widgets/clut_raycasting.py @@ -150,7 +150,7 @@ class CLUTRaycastingWidget(wx.Panel): if point: colour = wx.GetColourFromUser(self) if colour.IsOk(): - i,j = self.point_dragged + i,j = point r, g, b = [x/255.0 for x in colour.Get()] self.colours[i][j]['red'] = r self.colours[i][j]['green'] = g -- libgit2 0.21.2