Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrendon Murphy <meta.androcto1@gmail.com>2012-05-03 15:51:01 +0400
committerBrendon Murphy <meta.androcto1@gmail.com>2012-05-03 15:51:01 +0400
commit96355d45455f1b8ae29a8d3f2cc719084e8c4aef (patch)
treeeadf3eab86b9f18de649facb93da8ad097dd4aea /add_mesh_extra_objects
parent1ac408a65ea885d04eec41c48c2ceb16edf7fc15 (diff)
Added newell teapot & easter egg (Spoon)
Diffstat (limited to 'add_mesh_extra_objects')
-rw-r--r--add_mesh_extra_objects/__init__.py5
-rw-r--r--add_mesh_extra_objects/add_mesh_teapot.py832
2 files changed, 836 insertions, 1 deletions
diff --git a/add_mesh_extra_objects/__init__.py b/add_mesh_extra_objects/__init__.py
index fcb02a56..97ec361d 100644
--- a/add_mesh_extra_objects/__init__.py
+++ b/add_mesh_extra_objects/__init__.py
@@ -17,7 +17,6 @@
# ##### END GPL LICENSE BLOCK #####
# Contributed to by
# Pontiac, Fourmadmen, varkenvarken, tuga3d, meta-androcto, metalliandy, dreampainter & cotejrp1#
-# Kayo Phoenix, Anthony D'Agostino#
bl_info = {
"name": "Extra Objects",
@@ -46,6 +45,7 @@ if "bpy" in locals():
imp.reload(add_mesh_pyramid)
imp.reload(add_mesh_torusknot)
imp.reload(add_mesh_honeycomb)
+ imp.reload(add_mesh_teapot)
else:
from . import add_mesh_extra_objects
from . import add_mesh_twisted_torus
@@ -57,6 +57,7 @@ else:
from . import add_mesh_pyramid
from . import add_mesh_torusknot
from . import add_mesh_honeycomb
+ from . import add_mesh_teapot
import bpy
@@ -160,6 +161,8 @@ class INFO_MT_mesh_misc_add(bpy.types.Menu):
text="Step Pyramid")
layout.operator("mesh.honeycomb_add",
text="Honeycomb")
+ layout.operator("mesh.primitive_teapot_add",
+ text="Teapot+")
# Register all operators and panels
# Define "Extras" menu
diff --git a/add_mesh_extra_objects/add_mesh_teapot.py b/add_mesh_extra_objects/add_mesh_teapot.py
new file mode 100644
index 00000000..2eb9905a
--- /dev/null
+++ b/add_mesh_extra_objects/add_mesh_teapot.py
@@ -0,0 +1,832 @@
+'''# +---------------------------------------------------------+
+# | Copyright (c) 2005-2010 Anthony D'Agostino |
+# | http://home.comcast.net/~chronosphere |
+# | scorpius@netzero.com |
+# | February 12, 2005 |
+# | Newell Teapot Generator |
+# | Adds the famous missing primitive to Blender |
+# +---------------------------------------------------------+
+
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# ***** END GPL LICENCE BLOCK *****
+
+bl_info = {
+ "name": "Teapot+",
+ "author": "Anthony D'Agostino",
+ "version": (1, 0),
+ "blender": (2, 5, 7),
+ "location": "View3D > Add > Mesh ",
+ "url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts/Add_Teapot",
+ "category": "Add Mesh"}
+'''
+import bpy, mathutils, io, operator, functools
+
+class AddTeapot(bpy.types.Operator):
+ '''Add a teapot mesh.'''
+ bl_idname = "mesh.primitive_teapot_add"
+ bl_label = "Add Teapot"
+ bl_options = {"REGISTER", "UNDO"}
+
+ resolution = bpy.props.IntProperty(name="Resolution",
+ description="Resolution of the Teapot",
+ default=5, min=2, max=15)
+
+ objecttype = bpy.props.IntProperty(name="Object Type",
+ description="Type of Bezier Object",
+ default=1, min=1, max=2)
+
+ def execute(self, context):
+ verts, faces = make_teapot(self.objecttype,
+ self.resolution)
+ # Actually create the mesh object from this geometry data.
+ obj = create_mesh_object(context, verts, [], faces, "Teapot")
+ return {"FINISHED"}
+
+def menu_func(self, context):
+ self.layout.operator(AddTeapot.bl_idname, text="Teapot+", icon="MESH_CUBE")
+
+def register():
+ bpy.utils.register_module(__name__)
+ bpy.types.INFO_MT_mesh_add.append(menu_func)
+
+def unregister():
+ bpy.utils.unregister_module(__name__)
+ bpy.types.INFO_MT_mesh_add.remove(menu_func)
+
+if __name__ == "__main__":
+ register()
+
+def create_mesh_object(context, verts, edges, faces, name):
+ # Create new mesh
+ mesh = bpy.data.meshes.new(name)
+ # Make a mesh from a list of verts/edges/faces.
+ mesh.from_pydata(verts, edges, faces)
+ # Update mesh geometry after adding stuff.
+ mesh.update()
+ from bpy_extras import object_utils
+ return object_utils.object_data_add(context, mesh, operator=None)
+
+# ==========================
+# === Bezier patch Block ===
+# ==========================
+def read_indexed_patch_file(filename):
+ file = io.StringIO(filename)
+ rawpatches = []
+ patches = []
+ numpatches = int(file.readline())
+ for i in range(numpatches):
+ line = file.readline()
+ a,b,c,d, e,f,g,h, i,j,k,l, m,n,o,p = map(int, line.split(","))
+ patches.append([[a,b,c,d], [e,f,g,h], [i,j,k,l], [m,n,o,p]])
+ rawpatches.append([[0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0]])
+ verts = []
+ numverts = int(file.readline())
+ for i in range(numverts):
+ line = file.readline()
+ v1,v2,v3 = map(float, line.split(","))
+ verts.append((v1,v2,v3))
+ for i in range(len(patches)):
+ for j in range(4): #len(patches[i])):
+ for k in range(4): #len(patches[i][j])):
+ index = patches[i][j][k] - 1
+ rawpatches[i][j][k] = verts[index]
+ return rawpatches
+
+def patches_to_raw(patches, resolution):
+ raw = []
+ for patch in patches:
+ verts = make_verts(patch, resolution)
+ faces = make_faces(resolution)
+ rawquads = indexed_to_rawquads(verts, faces)
+ raw.append(rawquads)
+ raw = functools.reduce(operator.add, raw) # flatten the list
+ return raw
+
+def make_bezier(ctrlpnts, resolution):
+ b1 = lambda t: t*t*t
+ b2 = lambda t: 3*t * t * (1-t)
+ b3 = lambda t: 3*t * (1-t) * (1-t)
+ b4 = lambda t: (1-t) * (1-t) * (1-t)
+ makevec = lambda v: mathutils.Vector(v)
+ p1,p2,p3,p4 = map(makevec, ctrlpnts)
+ curveverts = []
+ for i in range(resolution+1):
+ t = i/resolution
+ x,y,z = b1(t)*p1 + b2(t)*p2 + b3(t)*p3 + b4(t)*p4
+ curveverts.append((x,y,z))
+ return curveverts
+
+def make_bezier(ctrlpnts, resolution):
+ b1 = lambda t: t*t*t
+ b2 = lambda t: 3*t * t * (1-t)
+ b3 = lambda t: 3*t * (1-t) * (1-t)
+ b4 = lambda t: (1-t) * (1-t) * (1-t)
+ p1,p2,p3,p4 = map(mathutils.Vector, ctrlpnts)
+ def makevert(t):
+ x,y,z = b1(t)*p1 + b2(t)*p2 + b3(t)*p3 + b4(t)*p4
+ return (x,y,z)
+ curveverts = [makevert(i/resolution) for i in range(resolution+1)]
+ return curveverts
+
+def make_verts(a, resolution):
+ s = []
+ for i in a:
+ c = make_bezier(i, resolution)
+ s.append(c)
+ b = transpose(s)
+ s = []
+ for i in b:
+ c = make_bezier(i, resolution)
+ s.append(c)
+ verts = s
+ verts = functools.reduce(operator.add, verts) # flatten the list
+ return verts
+
+def make_faces(resolution):
+ n = resolution+1
+ faces = []
+ for i in range(n-1):
+ for j in range(n-1):
+ v1 = (i+1)*n+j
+ v2 = (i+1)*n+j+1
+ v3 = i*n+j+1
+ v4 = i*n+j
+ faces.append([v1,v2,v3,v4])
+ return faces
+
+def indexed_to_rawquads(verts, faces):
+ rows = len(faces)
+ cols = len(faces[0]) # or 4
+ rawquads = [[None]*cols for i in range(rows)]
+ for i in range(rows):
+ for j in range(cols):
+ index = faces[i][j]
+ rawquads[i][j] = verts[index]
+ return rawquads
+
+def raw_to_indexed(rawfaces): # Generate verts and faces lists, without dups
+ verts = []
+ coords = {}
+ index = 0
+ for i in range(len(rawfaces)):
+ for j in range(len(rawfaces[i])):
+ vertex = rawfaces[i][j]
+ if vertex not in coords:
+ coords[vertex] = index
+ index += 1
+ verts.append(vertex)
+ rawfaces[i][j] = coords[vertex]
+ return verts, rawfaces
+
+def transpose(rowsbycols):
+ rows = len(rowsbycols)
+ cols = len(rowsbycols[0])
+ colsbyrows = [[None]*rows for i in range(cols)]
+ for i in range(cols):
+ for j in range(rows):
+ colsbyrows[i][j] = rowsbycols[j][i]
+ return colsbyrows
+
+def make_teapot(filename, resolution):
+ filenames = [None, teapot, teaspoon]
+ filename = filenames[filename]
+ patches = read_indexed_patch_file(filename)
+ raw = patches_to_raw(patches, resolution)
+ verts, faces = raw_to_indexed(raw)
+ return (verts, faces)
+
+# =================================
+# === Indexed Bezier Data Block ===
+# =================================
+teapot="""32
+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
+4,17,18,19,8,20,21,22,12,23,24,25,16,26,27,28
+19,29,30,31,22,32,33,34,25,35,36,37,28,38,39,40
+31,41,42,1,34,43,44,5,37,45,46,9,40,47,48,13
+13,14,15,16,49,50,51,52,53,54,55,56,57,58,59,60
+16,26,27,28,52,61,62,63,56,64,65,66,60,67,68,69
+28,38,39,40,63,70,71,72,66,73,74,75,69,76,77,78
+40,47,48,13,72,79,80,49,75,81,82,53,78,83,84,57
+57,58,59,60,85,86,87,88,89,90,91,92,93,94,95,96
+60,67,68,69,88,97,98,99,92,100,101,102,96,103,104,105
+69,76,77,78,99,106,107,108,102,109,110,111,105,112,113,114
+78,83,84,57,108,115,116,85,111,117,118,89,114,119,120,93
+121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136
+124,137,138,121,128,139,140,125,132,141,142,129,136,143,144,133
+133,134,135,136,145,146,147,148,149,150,151,152,69,153,154,155
+136,143,144,133,148,156,157,145,152,158,159,149,155,160,161,69
+162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177
+165,178,179,162,169,180,181,166,173,182,183,170,177,184,185,174
+174,175,176,177,186,187,188,189,190,191,192,193,194,195,196,197
+177,184,185,174,189,198,199,186,193,200,201,190,197,202,203,194
+204,204,204,204,207,208,209,210,211,211,211,211,212,213,214,215
+204,204,204,204,210,217,218,219,211,211,211,211,215,220,221,222
+204,204,204,204,219,224,225,226,211,211,211,211,222,227,228,229
+204,204,204,204,226,230,231,207,211,211,211,211,229,232,233,212
+212,213,214,215,234,235,236,237,238,239,240,241,242,243,244,245
+215,220,221,222,237,246,247,248,241,249,250,251,245,252,253,254
+222,227,228,229,248,255,256,257,251,258,259,260,254,261,262,263
+229,232,233,212,257,264,265,234,260,266,267,238,263,268,269,242
+270,270,270,270,279,280,281,282,275,276,277,278,271,272,273,274
+270,270,270,270,282,289,290,291,278,286,287,288,274,283,284,285
+270,270,270,270,291,298,299,300,288,295,296,297,285,292,293,294
+270,270,270,270,300,305,306,279,297,303,304,275,294,301,302,271
+306
+1.4,0.0,2.4
+1.4,-0.784,2.4
+0.784,-1.4,2.4
+0.0,-1.4,2.4
+1.3375,0.0,2.53125
+1.3375,-0.749,2.53125
+0.749,-1.3375,2.53125
+0.0,-1.3375,2.53125
+1.4375,0.0,2.53125
+1.4375,-0.805,2.53125
+0.805,-1.4375,2.53125
+0.0,-1.4375,2.53125
+1.5,0.0,2.4
+1.5,-0.84,2.4
+0.84,-1.5,2.4
+0.0,-1.5,2.4
+-0.784,-1.4,2.4
+-1.4,-0.784,2.4
+-1.4,0.0,2.4
+-0.749,-1.3375,2.53125
+-1.3375,-0.749,2.53125
+-1.3375,0.0,2.53125
+-0.805,-1.4375,2.53125
+-1.4375,-0.805,2.53125
+-1.4375,0.0,2.53125
+-0.84,-1.5,2.4
+-1.5,-0.84,2.4
+-1.5,0.0,2.4
+-1.4,0.784,2.4
+-0.784,1.4,2.4
+0.0,1.4,2.4
+-1.3375,0.749,2.53125
+-0.749,1.3375,2.53125
+0.0,1.3375,2.53125
+-1.4375,0.805,2.53125
+-0.805,1.4375,2.53125
+0.0,1.4375,2.53125
+-1.5,0.84,2.4
+-0.84,1.5,2.4
+0.0,1.5,2.4
+0.784,1.4,2.4
+1.4,0.784,2.4
+0.749,1.3375,2.53125
+1.3375,0.749,2.53125
+0.805,1.4375,2.53125
+1.4375,0.805,2.53125
+0.84,1.5,2.4
+1.5,0.84,2.4
+1.75,0.0,1.875
+1.75,-0.98,1.875
+0.98,-1.75,1.875
+0.0,-1.75,1.875
+2.0,0.0,1.35
+2.0,-1.12,1.35
+1.12,-2.0,1.35
+0.0,-2.0,1.35
+2.0,0.0,0.9
+2.0,-1.12,0.9
+1.12,-2.0,0.9
+0.0,-2.0,0.9
+-0.98,-1.75,1.875
+-1.75,-0.98,1.875
+-1.75,0.0,1.875
+-1.12,-2.0,1.35
+-2.0,-1.12,1.35
+-2.0,0.0,1.35
+-1.12,-2.0,0.9
+-2.0,-1.12,0.9
+-2.0,0.0,0.9
+-1.75,0.98,1.875
+-0.98,1.75,1.875
+0.0,1.75,1.875
+-2.0,1.12,1.35
+-1.12,2.0,1.35
+0.0,2.0,1.35
+-2.0,1.12,0.9
+-1.12,2.0,0.9
+0.0,2.0,0.9
+0.98,1.75,1.875
+1.75,0.98,1.875
+1.12,2.0,1.35
+2.0,1.12,1.35
+1.12,2.0,0.9
+2.0,1.12,0.9
+2.0,0.0,0.45
+2.0,-1.12,0.45
+1.12,-2.0,0.45
+0.0,-2.0,0.45
+1.5,0.0,0.225
+1.5,-0.84,0.225
+0.84,-1.5,0.225
+0.0,-1.5,0.225
+1.5,0.0,0.15
+1.5,-0.84,0.15
+0.84,-1.5,0.15
+0.0,-1.5,0.15
+-1.12,-2.0,0.45
+-2.0,-1.12,0.45
+-2.0,0.0,0.45
+-0.84,-1.5,0.225
+-1.5,-0.84,0.225
+-1.5,0.0,0.225
+-0.84,-1.5,0.15
+-1.5,-0.84,0.15
+-1.5,0.0,0.15
+-2.0,1.12,0.45
+-1.12,2.0,0.45
+0.0,2.0,0.45
+-1.5,0.84,0.225
+-0.84,1.5,0.225
+0.0,1.5,0.225
+-1.5,0.84,0.15
+-0.84,1.5,0.15
+0.0,1.5,0.15
+1.12,2.0,0.45
+2.0,1.12,0.45
+0.84,1.5,0.225
+1.5,0.84,0.225
+0.84,1.5,0.15
+1.5,0.84,0.15
+-1.6,0.0,2.025
+-1.6,-0.3,2.025
+-1.5,-0.3,2.25
+-1.5,0.0,2.25
+-2.3,0.0,2.025
+-2.3,-0.3,2.025
+-2.5,-0.3,2.25
+-2.5,0.0,2.25
+-2.7,0.0,2.025
+-2.7,-0.3,2.025
+-3.0,-0.3,2.25
+-3.0,0.0,2.25
+-2.7,0.0,1.8
+-2.7,-0.3,1.8
+-3.0,-0.3,1.8
+-3.0,0.0,1.8
+-1.5,0.3,2.25
+-1.6,0.3,2.025
+-2.5,0.3,2.25
+-2.3,0.3,2.025
+-3.0,0.3,2.25
+-2.7,0.3,2.025
+-3.0,0.3,1.8
+-2.7,0.3,1.8
+-2.7,0.0,1.575
+-2.7,-0.3,1.575
+-3.0,-0.3,1.35
+-3.0,0.0,1.35
+-2.5,0.0,1.125
+-2.5,-0.3,1.125
+-2.65,-0.3,0.9375
+-2.65,0.0,0.9375
+-2.0,-0.3,0.9
+-1.9,-0.3,0.6
+-1.9,0.0,0.6
+-3.0,0.3,1.35
+-2.7,0.3,1.575
+-2.65,0.3,0.9375
+-2.5,0.3,1.125
+-1.9,0.3,0.6
+-2.0,0.3,0.9
+1.7,0.0,1.425
+1.7,-0.66,1.425
+1.7,-0.66,0.6
+1.7,0.0,0.6
+2.6,0.0,1.425
+2.6,-0.66,1.425
+3.1,-0.66,0.825
+3.1,0.0,0.825
+2.3,0.0,2.1
+2.3,-0.25,2.1
+2.4,-0.25,2.025
+2.4,0.0,2.025
+2.7,0.0,2.4
+2.7,-0.25,2.4
+3.3,-0.25,2.4
+3.3,0.0,2.4
+1.7,0.66,0.6
+1.7,0.66,1.425
+3.1,0.66,0.825
+2.6,0.66,1.425
+2.4,0.25,2.025
+2.3,0.25,2.1
+3.3,0.25,2.4
+2.7,0.25,2.4
+2.8,0.0,2.475
+2.8,-0.25,2.475
+3.525,-0.25,2.49375
+3.525,0.0,2.49375
+2.9,0.0,2.475
+2.9,-0.15,2.475
+3.45,-0.15,2.5125
+3.45,0.0,2.5125
+2.8,0.0,2.4
+2.8,-0.15,2.4
+3.2,-0.15,2.4
+3.2,0.0,2.4
+3.525,0.25,2.49375
+2.8,0.25,2.475
+3.45,0.15,2.5125
+2.9,0.15,2.475
+3.2,0.15,2.4
+2.8,0.15,2.4
+0.0,0.0,3.15
+0.0,-0.002,3.15
+0.002,0.0,3.15
+0.8,0.0,3.15
+0.8,-0.45,3.15
+0.45,-0.8,3.15
+0.0,-0.8,3.15
+0.0,0.0,2.85
+0.2,0.0,2.7
+0.2,-0.112,2.7
+0.112,-0.2,2.7
+0.0,-0.2,2.7
+-0.002,0.0,3.15
+-0.45,-0.8,3.15
+-0.8,-0.45,3.15
+-0.8,0.0,3.15
+-0.112,-0.2,2.7
+-0.2,-0.112,2.7
+-0.2,0.0,2.7
+0.0,0.002,3.15
+-0.8,0.45,3.15
+-0.45,0.8,3.15
+0.0,0.8,3.15
+-0.2,0.112,2.7
+-0.112,0.2,2.7
+0.0,0.2,2.7
+0.45,0.8,3.15
+0.8,0.45,3.15
+0.112,0.2,2.7
+0.2,0.112,2.7
+0.4,0.0,2.55
+0.4,-0.224,2.55
+0.224,-0.4,2.55
+0.0,-0.4,2.55
+1.3,0.0,2.55
+1.3,-0.728,2.55
+0.728,-1.3,2.55
+0.0,-1.3,2.55
+1.3,0.0,2.4
+1.3,-0.728,2.4
+0.728,-1.3,2.4
+0.0,-1.3,2.4
+-0.224,-0.4,2.55
+-0.4,-0.224,2.55
+-0.4,0.0,2.55
+-0.728,-1.3,2.55
+-1.3,-0.728,2.55
+-1.3,0.0,2.55
+-0.728,-1.3,2.4
+-1.3,-0.728,2.4
+-1.3,0.0,2.4
+-0.4,0.224,2.55
+-0.224,0.4,2.55
+0.0,0.4,2.55
+-1.3,0.728,2.55
+-0.728,1.3,2.55
+0.0,1.3,2.55
+-1.3,0.728,2.4
+-0.728,1.3,2.4
+0.0,1.3,2.4
+0.224,0.4,2.55
+0.4,0.224,2.55
+0.728,1.3,2.55
+1.3,0.728,2.55
+0.728,1.3,2.4
+1.3,0.728,2.4
+0.0,0.0,0.0
+1.5,0.0,0.15
+1.5,0.84,0.15
+0.84,1.5,0.15
+0.0,1.5,0.15
+1.5,0.0,0.075
+1.5,0.84,0.075
+0.84,1.5,0.075
+0.0,1.5,0.075
+1.425,0.0,0.0
+1.425,0.798,0.0
+0.798,1.425,0.0
+0.0,1.425,0.0
+-0.84,1.5,0.15
+-1.5,0.84,0.15
+-1.5,0.0,0.15
+-0.84,1.5,0.075
+-1.5,0.84,0.075
+-1.5,0.0,0.075
+-0.798,1.425,0.0
+-1.425,0.798,0.0
+-1.425,0.0,0.0
+-1.5,-0.84,0.15
+-0.84,-1.5,0.15
+0.0,-1.5,0.15
+-1.5,-0.84,0.075
+-0.84,-1.5,0.075
+0.0,-1.5,0.075
+-1.425,-0.798,0.0
+-0.798,-1.425,0.0
+0.0,-1.425,0.0
+0.84,-1.5,0.15
+1.5,-0.84,0.15
+0.84,-1.5,0.075
+1.5,-0.84,0.075
+0.798,-1.425,0.0
+1.425,-0.798,0.0
+"""
+
+teaspoon="""16
+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
+17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32
+33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48
+49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64
+65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80
+81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96
+97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112
+113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128
+129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144
+145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160
+161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176
+177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192
+193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208
+209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224
+225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240
+241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256
+256
+-0.000107143,0.205357,0.0
+0.0,0.196429,-0.0178571
+0.0,0.196429,-0.0178571
+0.000107143,0.205357,0.0
+-0.0535714,0.205357,0.0
+-0.0222714,0.178571,-0.0534286
+0.0222714,0.178571,-0.0534286
+0.0535714,0.205357,0.0
+-0.107143,0.0952429,-0.0178571
+-0.0446429,0.0952429,-0.0892857
+0.0446429,0.0952429,-0.0892857
+0.107143,0.0952429,-0.0178571
+-0.107143,0.0,-0.0178571
+-0.0446429,0.0,-0.0892857
+0.0446429,0.0,-0.0892857
+0.107143,0.0,-0.0178571
+0.000107143,0.205357,0.0
+0.000135714,0.207589,0.00446429
+0.000157143,0.216518,0.00446429
+0.000125,0.214286,0.0
+0.0535714,0.205357,0.0
+0.0613964,0.212054,0.0133571
+0.0714286,0.220982,0.015625
+0.0625,0.214286,0.0
+0.107143,0.0952429,-0.0178571
+0.122768,0.0952429,0.0
+0.142857,0.0952429,0.00446429
+0.125,0.0952429,-0.0178571
+0.107143,0.0,-0.0178571
+0.122768,0.0,0.0
+0.142857,0.0,0.00446429
+0.125,0.0,-0.0178571
+0.000125,0.214286,0.0
+0.0,0.205357,-0.0178571
+0.0,0.205357,-0.0178571
+-0.000125,0.214286,0.0
+0.0625,0.214286,0.0
+0.0267857,0.1875,-0.0625
+-0.0267857,0.1875,-0.0625
+-0.0625,0.214286,0.0
+0.125,0.0952429,-0.0178571
+0.0535714,0.0952429,-0.107143
+-0.0535714,0.0952429,-0.107143
+-0.125,0.0952429,-0.0178571
+0.125,0.0,-0.0178571
+0.0535714,0.0,-0.107143
+-0.0535714,0.0,-0.107143
+-0.125,0.0,-0.0178571
+-0.000125,0.214286,0.0
+-0.000157143,0.216518,0.00446429
+-0.000135714,0.207589,0.00446429
+-0.000107143,0.205357,0.0
+-0.0625,0.214286,0.0
+-0.0714286,0.220982,0.015625
+-0.0613964,0.212054,0.0133571
+-0.0535714,0.205357,0.0
+-0.125,0.0952429,-0.0178571
+-0.142857,0.0952429,0.00446429
+-0.122768,0.0952429,0.0
+-0.107143,0.0952429,-0.0178571
+-0.125,0.0,-0.0178571
+-0.142857,0.0,0.00446429
+-0.122768,0.0,0.0
+-0.107143,0.0,-0.0178571
+-0.107143,0.0,-0.0178571
+-0.0446429,0.0,-0.0892857
+0.0446429,0.0,-0.0892857
+0.107143,0.0,-0.0178571
+-0.107143,-0.142857,-0.0178571
+-0.0446429,-0.142857,-0.0892857
+0.0446429,-0.142857,-0.0892857
+0.107143,-0.142857,-0.0178571
+-0.0133929,-0.160714,0.0386893
+-0.00557857,-0.160714,0.0386893
+0.00557857,-0.160714,0.0386893
+0.0133929,-0.160714,0.0386893
+-0.0133929,-0.25,0.0535714
+-0.00557857,-0.25,0.0535714
+0.00557857,-0.25,0.0535714
+0.0133929,-0.25,0.0535714
+0.107143,0.0,-0.0178571
+0.122768,0.0,0.0
+0.142857,0.0,0.00446429
+0.125,0.0,-0.0178571
+0.107143,-0.142857,-0.0178571
+0.122768,-0.142857,0.0
+0.142857,-0.142857,0.00446429
+0.125,-0.142857,-0.0178571
+0.0133929,-0.160714,0.0386893
+0.0153464,-0.160714,0.0386893
+0.0178571,-0.160714,0.0314357
+0.015625,-0.160714,0.0297607
+0.0133929,-0.25,0.0535714
+0.0153464,-0.25,0.0535714
+0.0178571,-0.25,0.0463179
+0.015625,-0.25,0.0446429
+0.125,0.0,-0.0178571
+0.0535714,0.0,-0.107143
+-0.0535714,0.0,-0.107143
+-0.125,0.0,-0.0178571
+0.125,-0.142857,-0.0178571
+0.0535714,-0.142857,-0.107143
+-0.0535714,-0.142857,-0.107143
+-0.125,-0.142857,-0.0178571
+0.015625,-0.160714,0.0297607
+0.00669643,-0.160714,0.0230643
+-0.00781071,-0.160714,0.0208321
+-0.015625,-0.160714,0.0297607
+0.015625,-0.25,0.0446429
+0.00669643,-0.25,0.0379464
+-0.00781071,-0.25,0.0357143
+-0.015625,-0.25,0.0446429
+-0.125,0.0,-0.0178571
+-0.142857,0.0,0.00446429
+-0.122768,0.0,0.0
+-0.107143,0.0,-0.0178571
+-0.125,-0.142857,-0.0178571
+-0.142857,-0.142857,0.00446429
+-0.122768,-0.142857,0.0
+-0.107143,-0.142857,-0.0178571
+-0.015625,-0.160714,0.0297607
+-0.0175786,-0.160714,0.0319929
+-0.0153464,-0.160714,0.0386893
+-0.0133929,-0.160714,0.0386893
+-0.015625,-0.25,0.0446429
+-0.0175786,-0.25,0.046875
+-0.0153464,-0.25,0.0535714
+-0.0133929,-0.25,0.0535714
+-0.0133929,-0.25,0.0535714
+-0.00557857,-0.25,0.0535714
+0.00557857,-0.25,0.0535714
+0.0133929,-0.25,0.0535714
+-0.0133929,-0.46425,0.0892857
+-0.00557857,-0.46425,0.0892857
+0.00557857,-0.46425,0.0892857
+0.0133929,-0.46425,0.0892857
+-0.0446429,-0.678571,0.0535714
+-0.00892857,-0.678571,0.0625
+0.00892857,-0.678571,0.0625
+0.0446429,-0.678571,0.0535714
+-0.0446429,-0.857143,0.0357143
+-0.00892857,-0.857143,0.0446429
+0.00892857,-0.857143,0.0446429
+0.0446429,-0.857143,0.0357143
+0.0133929,-0.25,0.0535714
+0.0153464,-0.25,0.0535714
+0.0178571,-0.25,0.0463179
+0.015625,-0.25,0.0446429
+0.0133929,-0.46425,0.0892857
+0.0153464,-0.464286,0.0892857
+0.0178571,-0.46425,0.0820321
+0.015625,-0.46425,0.0803571
+0.0446429,-0.678571,0.0535714
+0.0535714,-0.678571,0.0513393
+0.0535714,-0.678571,0.0334821
+0.0446429,-0.678571,0.0357143
+0.0446429,-0.857143,0.0357143
+0.0535714,-0.857143,0.0334821
+0.0535714,-0.857143,0.015625
+0.0446429,-0.857143,0.0178571
+0.015625,-0.25,0.0446429
+0.00669643,-0.25,0.0379464
+-0.00781071,-0.25,0.0357143
+-0.015625,-0.25,0.0446429
+0.015625,-0.46425,0.0803571
+0.00669643,-0.464286,0.0736607
+-0.00781071,-0.46425,0.0714286
+-0.015625,-0.46425,0.0803571
+0.0446429,-0.678571,0.0357143
+0.00892857,-0.678571,0.0446429
+-0.00892857,-0.678571,0.0446429
+-0.0446429,-0.678571,0.0357143
+0.0446429,-0.857143,0.0178571
+0.00892857,-0.857143,0.0267857
+-0.00892857,-0.857143,0.0267857
+-0.0446429,-0.857143,0.0178571
+-0.015625,-0.25,0.0446429
+-0.0175786,-0.25,0.046875
+-0.0153464,-0.25,0.0535714
+-0.0133929,-0.25,0.0535714
+-0.015625,-0.46425,0.0803571
+-0.0175786,-0.464286,0.0825893
+-0.0153464,-0.464286,0.0892857
+-0.0133929,-0.46425,0.0892857
+-0.0446429,-0.678571,0.0357143
+-0.0535714,-0.678571,0.0334821
+-0.0535714,-0.678571,0.0513393
+-0.0446429,-0.678571,0.0535714
+-0.0446429,-0.857143,0.0178571
+-0.0535714,-0.857143,0.015625
+-0.0535714,-0.857143,0.0334821
+-0.0446429,-0.857143,0.0357143
+-0.0446429,-0.857143,0.0357143
+-0.00892857,-0.857143,0.0446429
+0.00892857,-0.857143,0.0446429
+0.0446429,-0.857143,0.0357143
+-0.0446429,-0.928571,0.0285714
+-0.00892857,-0.928571,0.0375
+0.00892857,-0.928571,0.0375
+0.0446429,-0.928571,0.0285714
+-0.0539286,-0.999643,0.0178571
+0.000357143,-0.999643,0.0178571
+0.0,-0.999643,0.0178571
+0.0535714,-0.999643,0.0178571
+-0.000357143,-1,0.0178571
+0.000357143,-1,0.0178571
+0.0,-1,0.0178571
+0.0,-1,0.0178571
+0.0446429,-0.857143,0.0357143
+0.0535714,-0.857143,0.0334821
+0.0535714,-0.857143,0.015625
+0.0446429,-0.857143,0.0178571
+0.0446429,-0.928571,0.0285714
+0.0535714,-0.928571,0.0263393
+0.0535714,-0.928571,0.00848214
+0.0446429,-0.928571,0.0107143
+0.0535714,-0.999643,0.0178571
+0.0669643,-0.999643,0.0178571
+0.0673214,-0.999643,0.0
+0.0539286,-0.999643,0.0
+0.0,-1,0.0178571
+0.0,-1,0.0178571
+0.000357143,-1,0.0
+0.000357143,-1,0.0
+0.0446429,-0.857143,0.0178571
+0.00892857,-0.857143,0.0267857
+-0.00892857,-0.857143,0.0267857
+-0.0446429,-0.857143,0.0178571
+0.0446429,-0.928571,0.0107143
+0.00892857,-0.928571,0.0196429
+-0.00892857,-0.928571,0.0196429
+-0.0446429,-0.928571,0.0107143
+0.0539286,-0.999643,0.0
+0.000357143,-0.999643,0.0
+-0.000357143,-0.999643,0.0
+-0.0539286,-0.999643,0.0
+0.000357143,-1,0.0
+0.000357143,-1,0.0
+-0.000357143,-1,0.0
+-0.000357143,-1,0.0
+-0.0446429,-0.857143,0.0178571
+-0.0535714,-0.857143,0.015625
+-0.0535714,-0.857143,0.0334821
+-0.0446429,-0.857143,0.0357143
+-0.0446429,-0.928571,0.0107143
+-0.0535714,-0.928571,0.00848214
+-0.0535714,-0.928571,0.0263393
+-0.0446429,-0.928571,0.0285714
+-0.0539286,-0.999643,0.0
+-0.0673214,-0.999643,0.0
+-0.0675,-0.999643,0.0178571
+-0.0539286,-0.999643,0.0178571
+-0.000357143,-1,0.0
+-0.000357143,-1,0.0
+-0.000535714,-1,0.0178571
+-0.000357143,-1,0.0178571
+"""