[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2516] branches/geodesic_domes/tests/ 24oct_test_hexify.py: unittest: for understanding 'hexify'

Peter K.H. Gragert pkhgragert at gmail.com
Mon Oct 24 08:28:28 CEST 2011


Revision: 2516
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2516
Author:   pkhg
Date:     2011-10-24 06:28:27 +0000 (Mon, 24 Oct 2011)
Log Message:
-----------
unittest: for understanding 'hexify' 

Added Paths:
-----------
    branches/geodesic_domes/tests/24oct_test_hexify.py

Added: branches/geodesic_domes/tests/24oct_test_hexify.py
===================================================================
--- branches/geodesic_domes/tests/24oct_test_hexify.py	                        (rev 0)
+++ branches/geodesic_domes/tests/24oct_test_hexify.py	2011-10-24 06:28:27 UTC (rev 2516)
@@ -0,0 +1,131 @@
+import unittest
+import bpy
+from mathutils import Vector #needed to check vertex.vector values
+#from geodesic_domes import vefm_259
+from add_utils import AddObjectHelper, add_object_data
+import geodesic_domes
+from geodesic_domes import  vefm_259
+from geodesic_domes import forms_259
+from geodesic_domes import geodesic_classes_259
+from geodesic_domes.geodesic_classes_259 import *
+print("\n----------21 oct test-- pkhg mesh-----------\n\n")
+
+
+def check_contains(cl,name , print_value = False):
+    dir_class = dir(cl)
+    for el in dir_class:
+        if el.startswith("_"):
+            pass
+        else:
+            if print_value:
+                tmp = getattr(cl,el)
+                print(name , " contains ==>",el," value = ", tmp)
+            else:
+                print(name , " contains ==>",el)
+    print("\ncheck_contains finished\n\n")
+    
+#check_contains(dir(geodesic_classes_259),name = "geodesic_classes")
+def add_object(v = [],e = [], f = []):
+    '''
+    for i in range(len(selfobj.verts)):
+        selfobj.verts[i].index = i
+    v = [el.vector for el in selfobj.verts]    
+    e = [[edge.a.index,edge.b.index] for edge in selfobj.edges]
+    f =  [[v.index for v in  face.vertices] for face in selfobj.faces]
+    '''
+    m = bpy.data.meshes.new(name = "test")
+    m.from_pydata(v, e, f )
+    # useful for development when the mesh may be invalid.
+    m.validate(verbose = True)
+    add_object_data(bpy.context, m, operator = None)    
+        
+class geodesic_259_Test(unittest.TestCase):
+    
+    def setUp(self):
+        '''
+        parameter = (5,)*15
+        sform = superformparam = [3, 10.0, 10.0, 10.0, 1.0, 1.0, 4, 10.0,10.0, 10.0, 1.0, 1.0, 0, 0, 0.0, 0.0, 0.0, 0.0]
+#uresolution,vresolution,uscale,vscale,upart,vpart,uphase,vphase,utwist,vtwist,xscale,yscale,sform):
+        uresolution = 8
+        vresolution = 8
+        uscale = 1
+        vscale = 1
+        upart = 2
+        vpart = 2
+        uphase = 0
+        vpart = 0
+        utwist = 0
+        vtwist = 0
+        xscale = 1
+        yscale = 1
+        #'''
+        print("setup called")
+    def test_tetraeder(self):
+        try:
+            '''
+            self.frequency = PKHG_parameters[0]
+            self.eccentricity = PKHG_parameters[1]
+            self.squish = PKHG_parameters[2]
+            self.radius = PKHG_parameters[3]
+            self.square = PKHG_parameters[4]
+            self.squarez = PKHG_parameters[5]
+            self.parameter_cartesian = PKHG_parameters[6]
+            self.shape = PKHG_parameters[7]
+            self.baselevel = PKHG_parameters[8]
+            self.faceshape = PKHG_parameters[9]
+            self.dualflag = PKHG_parameters[10]
+            self.rotxy = PKHG_parameters[11]
+            self.rotz = PKHG_parameters[12]
+            self.klass = PKHG_parameters[13]
+            self.sform = PKHG_parameters[14]
+            '''
+            frequency = 2
+            eccentricity = 1
+            squish = 1
+            radius = 1
+            square = 1
+            squarez = 1
+            parameter_cartesian = False
+            shape = 1
+            baselevel = 1
+            faceshape = 1
+            dualflag = 0
+            rotxy = 1
+            rotz = 1
+            klass = 0
+            sform = superformparam = [3, 10.0, 10.0, 10.0, 1.0, 1.0, 4, 10.0,10.0, 10.0, 1.0, 1.0, 0, 0, 0.0, 0.0, 0.0, 0.0]
+            
+            parameters = (frequency, eccentricity, squish, radius, square,\
+                          squarez,parameter_cartesian,shape,baselevel,
+                          faceshape,dualflag,rotxy,rotz,klass,sform)
+            tetra = octahedron(parameters)
+            tetra.config()
+            tetra.connectivity()
+            vefm_259.vefm_add_object(tetra)
+            v = [el.index for el in tetra.verts]
+            print("\n>>>>>. v = ",v)
+            tetra.hexify()
+            tetra.connectivity()
+            for i,el in enumerate(tetra.verts):
+                el.index = i
+            v = [el.vector for el in tetra.verts]
+            for hxf in tetra.hexfaces:
+                print("\n>>>>>>>>hexface[0] info", len(hxf.vertices))
+                midpoint = vefm_259.average(hxf.vertices).centroid()
+#                print("midpoint",midpoint)
+                v = [el.vector for el in hxf.vertices]
+                v.append(midpoint.vector)
+                last = len(v) - 1
+                f = [[0,last -1, last]]
+                for i in range(len(v) - 2):
+                    f.append([i,i+1,last])
+                add_object(v = v, e = [] , f = f)
+                self.assertTrue(bpy.context.active_object)
+        finally:
+            pass 
+
+if __name__ == '__main__':
+#if main use: exit=False    unittest.main(exit=False)
+    suite =     unittest.TestLoader().loadTestsFromTestCase(geodesic_259_Test)
+    unittest.TextTestRunner(verbosity=3).run(suite)
+    



More information about the Bf-extensions-cvs mailing list