示例#1
0
 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()
示例#2
0
 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()