[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2498] branches/geodesic_domes/ geodesic_classes_259.py: config problem my way of solving (extra parameter)
Peter K.H. Gragert
pkhgragert at gmail.com
Fri Oct 21 07:27:39 CEST 2011
Revision: 2498
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2498
Author: pkhg
Date: 2011-10-21 05:27:39 +0000 (Fri, 21 Oct 2011)
Log Message:
-----------
config problem my way of solving (extra parameter)
Modified Paths:
--------------
branches/geodesic_domes/geodesic_classes_259.py
Modified: branches/geodesic_domes/geodesic_classes_259.py
===================================================================
--- branches/geodesic_domes/geodesic_classes_259.py 2011-10-21 05:25:09 UTC (rev 2497)
+++ branches/geodesic_domes/geodesic_classes_259.py 2011-10-21 05:27:39 UTC (rev 2498)
@@ -1,13 +1,27 @@
-from geodesic_domes import forms_259
-from forms_259 import mesh
+from geodesic_domes.vefm_259 import *
+
import math
from math import pi,acos,sin,cos,atan,tan,fabs
-import vefm_259
-from vefm_259 import *
+
+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")
+
class geodesic(mesh):
- def __init__(self,parameters):
+ def __init__(self,PKHG_parameters):
mesh.__init__(self)
+ self.PKHG_parameters = PKHG_parameters
+# print("\n------ geodesic L11 PKHG_parameters",PKHG_parameters)
self.panels = []
self.vertsdone = []
self.skeleton = [] ## List of verts in the full skeleton edges.
@@ -46,12 +60,14 @@
self.vertsdone = None
self.panels = []
-#PKHG because of unittest approach for a while the following three lines commentd
- #self.setparameters(parameters)
- #self.makegeodesic()
- #self.connectivity()
+#PKHG because of unittest approach for a while the following three lines commentd
+#PKHG do not understand the problems with the next three lines
+#no does not work self.setparameters()
+# self.makegeodesic()
+# self.connectivity()
- def setparameters(self,parameters):
+ def setparameters(self):
+ parameters = self.PKHG_parameters
self.frequency = parameters[0] ## How many subdivisions - up to 20.
self.eccentricity = parameters[1] ## Elliptical if >1.0.
self.squish = parameters[2] ## Flattened if < 1.0.
@@ -96,15 +112,15 @@
def vertedgefacedata(self):
pass
- def config(self):
+ def config(self, frequency = 1): #???PKHG frequency problem 20 oct.
for i in range(len(self.vertskeleton)):
self.vertskeleton[i].index = i
for edges in self.edgeskeleton:
- s = skeletonrow(self.frequency, edges, 0, self)
+#???PKHG TODO s = skeletonrow(self.frequency, edges, 0, self) #self a geodesic
+ s = skeletonrow(frequency, edges, 0, self) #self a geodesic
self.skeleton.append(s)
for i in range(len( self.verts)):
self.verts[i].index = i
-
for i in range(len(self.panelpoints)):
a = self.vertsdone[self.panelpoints[i][0]][1]
b = self.vertsdone[self.panelpoints[i][1]][1]
@@ -112,11 +128,9 @@
panpoints = [ self.verts[a],
self.verts[b],
self.verts[c]]
-
panedges = [ self.skeleton[self.paneledges[i][0]],
self.skeleton[self.paneledges[i][1]],
self.skeleton[self.paneledges[i][2]] ]
-
reverseflag = 0
for flag in self.reversepanel:
if flag == i:
@@ -202,7 +216,6 @@
elif theta == self.a270:
result = self.a270
else:
-
result = atan(tan(theta) / efactor**0.5)
if result>=0.0:
x = result
@@ -233,6 +246,7 @@
# self.dovertedge()
# self.dovertface()
# self.dofaceedge()
+
class edgerow:
def __init__(self, count, anchor, leftindex, rightindex, stepvector, endflag, parentgeo):
self.points = []
@@ -243,7 +257,7 @@
self.points.append(leftindex)
elif i == count and not endflag:
self.points.append(rightindex)
- else:
+ else: #PKHG Vectors added!
newpoint = anchor + (stepvector * i)
vertcount = len(parentgeo.verts)
self.points.append(vertcount)
@@ -255,6 +269,7 @@
line = edge(a,b)
self.edges.append(len(parentgeo.edges))
parentgeo.edges.append(line)
+
class skeletonrow:
def __init__(self, count, skeletonedge, shortflag, parentgeo):
self.points = []
@@ -298,6 +313,7 @@
line = edge(a,b)
self.edges.append(len(parentgeo.edges))
parentgeo.edges.append(line)
+
class facefill:
def __init__(self, upper, lower, reverseflag, parentgeo, finish):
for i in range(finish):
@@ -357,10 +373,10 @@
def createfaces(self, parentgeo,reverseflag):
for i in range(len(self.leftedge.points) - 1):
facefill(self.rows[i], self.rows[i + 1], reverseflag, parentgeo, len(self.rows[i].points))
-##############################################################################################################
-##############################################################################################################
+#############################
+#############################
-#for point on top?
+#for point on top? YES!
class tetrahedron(geodesic):
def vertedgefacedata(self):
self.vertskeleton=[ vertex(( 0.0 , 0.0 , 1.73205080757 )),
@@ -381,7 +397,7 @@
self.edgelength=[]
self.vertsdone=[[0,0]] * len(self.vertskeleton)
-#for edge on top?
+#for edge on top? YES
class tetraedge(geodesic):
def vertedgefacedata(self):
self.vertskeleton=[ vertex(( 0.0 , -1.41421356237 , 1.0 )),
@@ -402,7 +418,7 @@
self.edgelength=[]
self.vertsdone=[[0,0]] * len(self.vertskeleton)
-#for face on top?
+#for face on top? YES
class tetraface(geodesic):
def vertedgefacedata(self):
self.vertskeleton=[ vertex(( -1.41421356237 , -0.816496580927 , 0.57735026919 )),
@@ -648,29 +664,36 @@
self.reversepanel=[1,3,5,7,9,10,12,14,17,19]
self.edgelength=[]
self.vertsdone=[[0,0]] * len(self.vertskeleton)
-#print("\n===========geodesic start ===========")
-def creategeo(polytype,orientation,parameters):
- geo = None
+##???PKHG TODO this does not work yet ...
+def creategeo(geo,polytype,orientation,parameters):
+
if polytype == 'Tetrahedron':
if orientation == 'PointUp':
- geo = geodesic.tetrahedron(parameters)
+ #return
+ #geo(parameters)
+# geo.setparameters()
+ my_tetrahedron = tetrahedron(geodesic)
+ my_tetrahedron.vertedgefacedata()
+ my_tetrahedron.config()
+ check_contains(my_tetrahedron,"my_tetra",True)
+ vefm_add_object(geo)
elif orientation == 'EdgeUp':
- geo = geodesic.tetraedge(parameters)
+ geo = tetraedge(parameters)
else: # orientation==2:
- geo=geodesic.tetraface(parameters)
+ geo=tetraface(parameters)
elif polytype == 'Octahedron': # octahedron
if orientation == 'PointUp':
- geo = geodesic.octahedron(parameters)
+ geo = octahedron(parameters)
elif orientation == 'EdgeUp':
- geo = geodesic.octaedge(parameters)
+ geo = octaedge(parameters)
else: #if orientation==2:
- geo = geodesic.octaface(parameters)
+ geo = octaface(parameters)
elif polytype == 'Icosahedron': # icosahedron
if orientation == 'PointUp':
- geo = geodesic.icosahedron(parameters)
+ geo = icosahedron(parameters)
elif orientation == 'EdgeUp':
- geo = geodesic.icoedge(parameters)
+ geo = icoedge(parameters)
else: #if orientation==2:
- geo = geodesic.icoface(parameters)
+ geo = icoface(parameters)
return geo
More information about the Bf-extensions-cvs
mailing list