[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