def update_object_list(self): """ update the internal state list """ # purge list of removed objects pubObj = self.cmd.get_names("public_objects") object_list_copy = self.object_list.copy() for x in object_list_copy: if x not in pubObj: del self.object_list[x] # for all VOLUME type objects not known to the list for x in self.cmd.get_names("public_objects"): if "object:volume"==cmd.get_type(x): if x not in self.object_list.keys(): if self.cmd.get_volume_is_updated(x) == 0: continue # make a default pair for this volume object tmpMap = VolumeHist(self.cmd.get_volume_histogram(x,self.cmd),nBins=64) tmpRamp = ColorRamp(360,name=x) self.object_list[x] = (tmpRamp,tmpMap) if self.ramp_update.has_key(x) and self.ramp_update[x]: tmpRamp.addColor(0, (0,0,1,0)) tmpRamp.addColor(359, (0,0,1,0)) for data, alpha, col, kind in self.ramp_update[x]: self.addWithoutGUINow(x, data, alpha, col, kind=kind) self.ramp_update[x] = [] tmpRamp.updateRamp() self.cmd.volume_color(x, tmpRamp.getRamp()) self.cmd.set_volume_ramp(x, tmpRamp.getRampList()) else: ramp_list = self.cmd.get_volume_ramp(x, self.cmd) if ramp_list: while ramp_list: tmpRamp.addColor(ramp_list[0], (ramp_list[1], ramp_list[2], ramp_list[3], ramp_list[4])) ramp_list = ramp_list[5:] else: tmpRamp.addColor(0, (0,0,1,0)) tmpRamp.addColor(359, (0,0,1,0)) tmpRamp.addColor(200, (0.0, 0.0, 1.0, 0.0)) tmpRamp.addColor(210, (0.0, 0.8, 1.0, 0.2)) tmpRamp.addColor(220, (0.0, 0.0, 1.0, 0.0)) else: # need to regenerate the histogram (tmpRamp,tmpMap) = self.object_list[x] tmpMap = VolumeHist(self.cmd.get_volume_histogram(x,self.cmd),nBins=64) self.object_list[x] = (tmpRamp,tmpMap) if len(self.object_list.keys())!=0: # guaranteed to exist k = self.object_list.keys()[0] self.active_ramp, self.active_map = self.object_list[k] self.active = k self.update_transferframe()
def update_object_list(self): """ update the internal state list """ # purge list of removed objects pubObj = self.cmd.get_names("public_objects") object_list_copy = self.object_list.copy() for x in object_list_copy: if x not in pubObj: del self.object_list[x] # for all VOLUME type objects not known to the list for x in self.cmd.get_names("public_objects"): if "object:volume" == cmd.get_type(x): if x not in self.object_list.keys(): if self.cmd.get_volume_is_updated(x) == 0: continue # make a default pair for this volume object tmpMap = VolumeHist(self.cmd.get_volume_histogram( x, self.cmd), nBins=64) tmpRamp = ColorRamp(360, name=x) self.object_list[x] = (tmpRamp, tmpMap) if self.ramp_update.has_key(x) and self.ramp_update[x]: tmpRamp.addColor(0, (0, 0, 1, 0)) tmpRamp.addColor(359, (0, 0, 1, 0)) for data, alpha, col, kind in self.ramp_update[x]: self.addWithoutGUINow(x, data, alpha, col, kind=kind) self.ramp_update[x] = [] tmpRamp.updateRamp() self.cmd.volume_color(x, tmpRamp.getRamp()) self.cmd.set_volume_ramp(x, tmpRamp.getRampList()) else: ramp_list = self.cmd.get_volume_ramp(x, self.cmd) if ramp_list: while ramp_list: tmpRamp.addColor(ramp_list[0], (ramp_list[1], ramp_list[2], ramp_list[3], ramp_list[4])) ramp_list = ramp_list[5:] else: tmpRamp.addColor(0, (0, 0, 1, 0)) tmpRamp.addColor(359, (0, 0, 1, 0)) tmpRamp.addColor(200, (0.0, 0.0, 1.0, 0.0)) tmpRamp.addColor(210, (0.0, 0.8, 1.0, 0.2)) tmpRamp.addColor(220, (0.0, 0.0, 1.0, 0.0)) else: # need to regenerate the histogram (tmpRamp, tmpMap) = self.object_list[x] tmpMap = VolumeHist(self.cmd.get_volume_histogram( x, self.cmd), nBins=64) self.object_list[x] = (tmpRamp, tmpMap) if len(self.object_list.keys()) != 0: # guaranteed to exist k = self.object_list.keys()[0] self.active_ramp, self.active_map = self.object_list[k] self.active = k self.update_transferframe()