Try to keep compatibility with python 2.3
[vrm.git] / vrm.py
diff --git a/vrm.py b/vrm.py
index 7324efc..e6ac4d4 100755 (executable)
--- a/vrm.py
+++ b/vrm.py
@@ -84,6 +84,7 @@ __bpydoc__ = """\
 #     * View frustum clipping
 #     * Scene clipping done using bounding box instead of object center
 #     * Fix camera type selection for blender>2.43 (Thanks to Thomas Lachmann)
+#     * Compatibility with python 2.3
 #
 # ---------------------------------------------------------------------
 
@@ -93,6 +94,13 @@ from Blender.Mathutils import *
 from math import *
 import sys, time
 
+def uniq(alist):
+    tmpdict = dict()
+    return [tmpdict.setdefault(e,e) for e in alist if e not in tmpdict]
+    # in python > 2.4 we ca use the following
+    #return [ u for u in alist if u not in locals()['_[1]'] ]
+
+
 # Constants
 EPS = 10e-5
 
@@ -106,7 +114,7 @@ class config:
     polygons = dict()
     polygons['SHOW'] = True
     polygons['SHADING'] = 'FLAT' # FLAT or TOON
-    polygons['HSR'] = 'NEWELL' # PAINTER or NEWELL
+    polygons['HSR'] = 'PAINTER' # PAINTER or NEWELL
     # Hidden to the user for now
     polygons['EXPANSION_TRICK'] = True
 
@@ -684,9 +692,13 @@ class HSR:
                             negVertList.append(V1)
 
         
-        # uniq
-        posVertList = [ u for u in posVertList if u not in locals()['_[1]'] ]
-        negVertList = [ u for u in negVertList if u not in locals()['_[1]'] ]
+        # uniq for python > 2.4
+        #posVertList = [ u for u in posVertList if u not in locals()['_[1]'] ]
+        #negVertList = [ u for u in negVertList if u not in locals()['_[1]'] ]
+
+        # a more portable way
+        posVertList = uniq(posVertList)
+        negVertList = uniq(negVertList)
 
 
         # If vertex are all on the same half-space, return