Commit 508c5f6e75ff0ece83f145bf2682e8b8754b0668
1 parent
7a321d6f
Exists in
master
and in
6 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): | ... | ... |