Ejemplo n.º 1
0
 def __setitem__(self, key, value):
     if 'material' in key:
         i = indexListItem(self.LIGHT_SOURCE, value, self.materialSourceVertex)
         if i >= 0:
             self.materialSourceVertex = i
     elif 'enable' in key:
         val = validBool(value)
         self.enabled = val
     elif 'ambient' in key:
         i = indexListItem(self.LIGHT_SOURCE, value, self.ambientSourceVertex)
         if i >= 0:
             self.ambientSourceVertex = i
     elif 'diffuse' in key:
         i = indexListItem(self.DIFFUSE_FUNCTION, value, self.diffuseFunction)
         if i >= 0:
             self.diffuseFunction = i
     elif 'attenuation' in key:
         try:
             i = indexListItem(self.ATTENUATION, value, self.attenuationFunction)
             if i >= 0:
                 self.attenuationFunction = i
             if not self.attenuationEnabled:
                 self.attenuationEnabled = True
         except ValueError:
             val = validBool(value)
             self.attenuationEnabled = val
     else:
         raise ValueError(LightChannel.LC_ERROR.format(key))
Ejemplo n.º 2
0
 def setMagFilterStr(self, value):
     i = indexListItem(self.FILTER, value, self.magfilter)
     if i > 1:
         raise ValueError("MagFilter out of range (0-1)")
     elif i >= 0:
         self.minfilter = i
         self.mark_modified()
Ejemplo n.º 3
0
 def setAnisotrophyStr(self, value):
     invalidI = False
     try:
         i = int(value)
         if i != 1 and i != 2 and i != 4:
             invalidI = True
         else:
             i -= 1
             if i > 2:
                 i = 2
     except ValueError:
         i = indexListItem(self.ANISOTROPHY, value, self.max_anisotrophy)
     if invalidI:
         raise ValueError("Invalid: '" + value +
                          "', Anisotrophy expects 1|2|4")
     if i >= 0 and i != self.max_anisotrophy:
         self.max_anisotrophy = i
         self.mark_modified()
Ejemplo n.º 4
0
 def setProjectionStr(self, value):
     i = indexListItem(self.PROJECTION, value, self.projection)
     if i >= 0:
         self.projection = i
         self.mark_modified()
Ejemplo n.º 5
0
 def setMinFilterStr(self, value):
     value = value.replace('_', '')
     i = indexListItem(self.FILTER, value, self.minfilter)
     if i >= 0:
         self.minfilter = i
         self.mark_modified()
Ejemplo n.º 6
0
 def setVWrapStr(self, value):
     i = indexListItem(self.WRAP, value, self.vwrap)
     if i >= 0:
         self.vwrap = i
         self.mark_modified()
Ejemplo n.º 7
0
 def set_comp1_str(self, str):
     i = indexListItem(self.COMP_STRINGS, str, self.comp1)
     if i >= 0:
         self.comp1 = i
         self.mark_modified()
Ejemplo n.º 8
0
 def setCoordinatesStr(self, value):
     i = indexListItem(self.COORDINATES, value, self.coordinates)
     if i >= 0:
         self.coordinates = i
         self.mark_modified()
Ejemplo n.º 9
0
 def set_u_wrap_str(self, value):
     i = indexListItem(self.WRAP, value, self.uwrap)
     if i >= 0:
         self.uwrap = i
         self.mark_modified()
Ejemplo n.º 10
0
 def set_depth_function_str(self, str):
     i = indexListItem(self.COMP_STRINGS, str, self.depth_function)
     if i >= 0:
         self.depth_function = i
         self.mark_modified()
Ejemplo n.º 11
0
 def set_blend_logic_str(self, str):
     i = indexListItem(self.BLLOGIC_STRINGS, str, self.blend_logic)
     if i >= 0:
         self.blend_logic = i
         self.mark_modified()
Ejemplo n.º 12
0
 def set_blend_dest_str(self, str):
     i = indexListItem(self.BLFACTOR_STRINGS, str, self.blend_dest)
     if i >= 0:
         self.blend_dest = i
         self.mark_modified()
Ejemplo n.º 13
0
 def set_blend_src_str(self, str):
     i = indexListItem(self.BLFACTOR_STRINGS, str, self.blend_source)
     if i >= 0:
         self.blend_source = i
         self.mark_modified()
Ejemplo n.º 14
0
 def set_logic(self, str):
     i = indexListItem(self.LOGIC_STRINGS, str, self.logic)
     if i >= 0:
         self.logic = i
         self.mark_modified()
Ejemplo n.º 15
0
 def setInputFormStr(self, value):
     i = indexListItem(self.INPUTFORM, value, self.inputform)
     if i >= 0:
         self.inputform = i
         self.mark_modified()
Ejemplo n.º 16
0
 def setTypeStr(self, value):
     i = indexListItem(self.TYPE, value, self.type)
     if i >= 0:
         self.type = i
         self.mark_modified()
Ejemplo n.º 17
0
 def set_str(self, key, value):
     s = self.SETTINGS
     if key == s[0]:
         self.set_enabled(validBool(value))
     elif key == s[1]:
         self.set_map_id(validInt(value, 0, 7))
     elif key == s[2]:
         self.set_coord_id(validInt(value, 0, 7))
     elif key == s[3]:
         self.set_tex_swap_sel(validInt(value, 0, 4))
     elif key == s[4]:
         if value == '0':
             self.set_raster_color(RASTER_ZERO)
         else:
             i = indexListItem(RASTER_COLORS, value)
             if i > 1:
                 i += 3
             self.set_raster_color(i)
     elif key == s[5]:
         self.set_raster_swap_sel(validInt(value, 0, 4))
     elif key in s[6:8]:
         value = value.replace('constant', '')
         i = indexListItem(COLOR_CONSTANTS, value)
         if i > 7:
             i += 4
         self.set_constant_color(i)
     elif key in s[8:12]:
         if value == '0':
             val = COLOR_SEL_NONE
         elif value == '1':
             val = COLOR_SEL_ONE
         elif value in ('0.5', '1/2'):
             val = COLOR_SEL_HALF
         else:
             val = indexListItem(COLOR_SELS, value)
         if key == s[8]:
             self.set_color_a(val)
         elif key == s[9]:
             self.set_color_b(val)
         elif key == s[10]:
             self.set_color_c(val)
         elif key == s[11]:
             self.set_color_d(val)
     elif key == s[12]:
         self.set_color_bias(indexListItem(BIAS, value))
     elif key == s[13]:
         self.set_color_oper(indexListItem(OPER, value))
     elif key == s[14]:
         self.set_color_clamp(validBool(value))
     elif key in (s[15], s[26]):
         try:
             val = indexListItem(SCALE, value)
         except ValueError:
             f = validFloat(value, 0.5, 4)
             val = indexListItem(SCALEN, f)
         if key == s[15]:
             self.set_color_scale(val)
         elif key == s[26]:
             self.set_alpha_scale(val)
     elif key == s[16]:
         self.set_color_dest(indexListItem(COLOR_DEST, value))
     elif key in s[17:19]:
         value = value.replace('constant', '')
         i = indexListItem(ALPHA_CONSTANTS, value)
         if i > 7:
             i += 8
         self.set_constant_alpha(i)
     elif key in s[19:23]:
         if value == '0':
             val = ALPHA_SEL_NONE
         else:
             val = indexListItem(ALPHA_SELS, value)
         if key == s[19]:
             self.set_alpha_a(val)
         elif key == s[20]:
             self.set_alpha_b(val)
         elif key == s[21]:
             self.set_alpha_c(val)
         elif key == s[22]:
             self.set_alpha_d(val)
     elif key == s[23]:
         self.set_alpha_bias(indexListItem(BIAS, value))
     elif key == s[24]:
         self.set_alpha_oper(indexListItem(OPER, value))
     elif key == s[25]:
         self.set_alpha_clamp(validBool(value))
     elif key == s[27]:
         self.set_alpha_dest(indexListItem(ALPHA_DEST, value))
     elif key == s[28]:
         self.set_ind_stage(validInt(value, 0, 4))
     elif key == s[29]:
         self.set_ind_format(indexListItem(TEX_FORMAT, value))
     elif key == s[30]:
         self.set_ind_alpha(indexListItem(IND_ALPHA, value))
     elif key == s[31]:
         self.set_ind_bias(indexListItem(IND_BIAS, value))
     elif key == s[32]:
         if len(value) < 6:
             value = 'matrix' + value
         i = indexListItem(IND_MATRIX, value)
         if i > 3:
             i += 1
         if i > 7:
             i += 1
         self.set_ind_matrix(i)
     elif key == s[33]:
         self.set_s_wrap(indexListItem(WRAP, value))
     elif key == s[34]:
         self.set_t_wrap(indexListItem(WRAP, value))
     elif key == s[35]:
         self.set_ind_use_prev(validBool(value))
     elif key == s[36]:
         self.set_ind_unmodified_lod(validBool(value))
Ejemplo n.º 18
0
 def setMapmodeStr(self, value):
     i = indexListItem(self.MAPMODE, value, self.map_mode)
     if i >= 0:
         self.map_mode = i
         self.mark_modified()
Ejemplo n.º 19
0
 def set_cull_mode_str(self, cullstr):
     cullstr = cullstr.replace('cull', '')
     i = indexListItem(self.CULL_STRINGS, cullstr, self.cullmode)
     if i >= 0 and self.cullmode != i:
         self.cullmode = i
         self.mark_modified()