[cgkit-commits] cgkit2/cgkit ri.py,1.2,1.3
Brought to you by:
mbaas
From: Matthias B. <mb...@us...> - 2005-10-16 12:34:55
|
Update of /cvsroot/cgkit/cgkit2/cgkit In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24776 Modified Files: ri.py Log Message: Speedup when processing parameter lists containing vec3 objects. Index: ri.py =================================================================== RCS file: /cvsroot/cgkit/cgkit2/cgkit/ri.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ri.py 23 Sep 2005 16:07:37 -0000 1.2 --- ri.py 16 Oct 2005 12:34:45 -0000 1.3 *************** *** 31,34 **** --- 31,38 ---- import sys, types, time, os, os.path, string, getpass, inspect, gzip + try: + from _core import vec3 as _vec3 + except: + from cgtypes import vec3 as _vec3 ########################### Constants ############################# *************** *** 1993,2007 **** _flatten( ("str1","str2") ) -> ['"str1"','"str2"'] """ - res = [] for v in seq: vtype = type(v) # v=scalar? ! if (vtype==types.IntType) or (vtype==types.LongType) or \ ! (vtype==types.FloatType): res.append(str(v)) # v=string? ! elif vtype==types.StringType: ! res.append('"'+v+'"') # no scalar or string. Then it's supposed to be a sequence else: --- 1997,2014 ---- _flatten( ("str1","str2") ) -> ['"str1"','"str2"'] """ res = [] + ScalarTypes = [types.IntType, types.LongType, types.FloatType] + StringType = types.StringType for v in seq: vtype = type(v) # v=scalar? ! if vtype in ScalarTypes: res.append(str(v)) + # vec3? + elif isinstance(v, _vec3): + res.extend([str(v.x), str(v.y), str(v.z)]) # v=string? ! elif vtype==StringType: ! res.append('"%s"'%v) # no scalar or string. Then it's supposed to be a sequence else: *************** *** 2017,2020 **** --- 2024,2028 ---- be used as parameter value to RIB commands. """ + f = _flatten(seq) # Has the sequence an incorrect length? then generate an error *************** *** 2023,2027 **** `len(f)`+" instead of "+`count`+")") ! return '['+string.join(f)+']' def _paramlist2dict(paramlist, keyparams): --- 2031,2035 ---- `len(f)`+" instead of "+`count`+")") ! return '[%s]'%" ".join(f) def _paramlist2dict(paramlist, keyparams): |