Commit 508c5f6e75ff0ece83f145bf2682e8b8754b0668
1 parent
7a321d6f
Exists in
master
and in
68 other branches
ENH: Window width & level working with 8 bit raycasting preset
Showing
1 changed file
with
27 additions
and
26 deletions
Show diff stats
invesalius/data/volume.py
| ... | ... | @@ -138,35 +138,36 @@ class Volume(): |
| 138 | 138 | def SetWWWL(self, pubsub_evt): |
| 139 | 139 | ww, wl, n = pubsub_evt.data |
| 140 | 140 | print "Setting ww, wl", ww, wl |
| 141 | - curve = self.config['16bitClutCurves'][n] | |
| 142 | - | |
| 143 | - p1 = curve[0] | |
| 144 | - p2 = curve[-1] | |
| 145 | - half = (p2['x'] - p1['x']) / 2.0 | |
| 146 | - middle = p1['x'] + half | |
| 147 | - | |
| 148 | - shiftWL = wl - middle | |
| 149 | - shiftWW = p1['x'] + shiftWL - (wl - 0.5 * ww) | |
| 150 | - | |
| 151 | - factor = 1.0 | |
| 152 | - for n,i in enumerate(curve): | |
| 153 | - factor = abs(i['x'] - middle) / half | |
| 154 | - if factor < 0: | |
| 155 | - factor = 0 | |
| 156 | - i['x'] += shiftWL | |
| 157 | - if n < len(curve)/2.0: | |
| 158 | - i['x'] -= shiftWW * factor | |
| 159 | - else: | |
| 160 | - i['x'] += shiftWW * factor | |
| 161 | - | |
| 162 | - self.Create16bColorTable(self.scale) | |
| 163 | - self.CreateOpacityTable(self.scale) | |
| 164 | - print curve | |
| 141 | + if self.config['advancedCLUT']: | |
| 142 | + curve = self.config['16bitClutCurves'][n] | |
| 143 | + | |
| 144 | + p1 = curve[0] | |
| 145 | + p2 = curve[-1] | |
| 146 | + half = (p2['x'] - p1['x']) / 2.0 | |
| 147 | + middle = p1['x'] + half | |
| 148 | + | |
| 149 | + shiftWL = wl - middle | |
| 150 | + shiftWW = p1['x'] + shiftWL - (wl - 0.5 * ww) | |
| 151 | + | |
| 152 | + factor = 1.0 | |
| 153 | + for n,i in enumerate(curve): | |
| 154 | + factor = abs(i['x'] - middle) / half | |
| 155 | + if factor < 0: | |
| 156 | + factor = 0 | |
| 157 | + i['x'] += shiftWL | |
| 158 | + if n < len(curve)/2.0: | |
| 159 | + i['x'] -= shiftWW * factor | |
| 160 | + else: | |
| 161 | + i['x'] += shiftWW * factor | |
| 162 | + else: | |
| 163 | + self.config['wl'] = wl | |
| 164 | + self.config['ww'] = ww | |
| 165 | + | |
| 166 | + self.__config_preset() | |
| 165 | 167 | ps.Publisher().sendMessage('Render volume viewer', None) |
| 166 | 168 | |
| 167 | 169 | def Refresh(self, pubsub_evt): |
| 168 | - self.Create16bColorTable(self.scale) | |
| 169 | - self.CreateOpacityTable(self.scale) | |
| 170 | + self.__config_preset() | |
| 170 | 171 | |
| 171 | 172 | #*************** |
| 172 | 173 | def Create16bColorTable(self, scale): | ... | ... |