#--------------------------------------------------------------------------------
# Library of various 3D shapes
#--------------------------------------------------------------------------------
#---------------------------------------------------------------------
#' Return a teapotahedron object, constructed from elementary spacial objects
#'
#' @param centre Centre of teapotahedron
#' @param radius Is the nominal size from the centre to each vertex. So the radius of the smallest sphere containing the object.
#' @param properties Package-independent object defining additional properties
#' @param bound Include a bounding sphere? Default=TRUE
#' @param align.to Name of axis to align to - i.e. 2 surfaces will be level in that plane. Default = "x"
#'
#' @return A compound object, comprising of elementary triangle objects
#' in a grouped hierarchical object, with a surrounding bounding sphere
#' used for spacial indexing. It should be noted that this is not an exclosed solid, and
#' that the surface normals need a bit of work
#'
#' @export
#' @importFrom vecspace Spc.MakePolygon Spc.Combine Spc.Translate Spc.Rotate Spc.MakeSphere
#'
#' @family constructors
#'
#' @examples
#' w <- Spc.MakeTeapotahedron(c(0,0,0), 10, surface_props)
Spc.MakeTeapotahedron <- function (centre, radius, properties=NA, bound=TRUE, align.to="x") {
if ((typeof(centre) != "double") || (length(centre) != 3)) {
print("Spc.MakeTeapotahedron: centre should be a 3 number vector")
return(NA)
}
if ((typeof(radius) != "double") || (length(radius) != 1)|| (radius <= 0)) {
print("Spc.MakeTeapotahedron: radius should be a positive scalar numeric")
return(NA)
}
#----
#Definition of teapot from http://www.holmes3d.net/graphics/teapot/
verts <- matrix(c( 0, 0, 0.488037, 0.00390625, 0.0421881, 0.476326, 0.00390625, -0.0421881, 0.476326,
0.0107422, 0, 0.575333, 0.0125, 0.0562508, 0.450561, 0.0125, -0.0562508, 0.450561,
0.0195312, 0, 0.413654, 0.0210938, 0.0421881, 0.424797, 0.0210938, -0.0421881, 0.424797,
0.025, 0, 0.413086, 0.03875, 0.19625, 0.488037, 0.03875, -0.19625, 0.488037,
0.0390625, 0, 0.66803, 0.0486597, 0.192034, 0.575333, 0.0486597, -0.192034, 0.575333,
0.0567676, 0.188584, 0.413654, 0.0567676, -0.188584, 0.413654, 0.0625, 0, 0.358795,
0.0747852, 0.180918, 0.66803, 0.0747852, -0.180918, 0.66803, 0.0791016, 0, 0.764481,
0.0964063, 0.171719, 0.358795, 0.0964063, -0.171719, 0.358795, 0.1, 0, 0.769043,
0.103906, 0.0421881, 0.777779, 0.103906, -0.0421881, 0.777779, 0.105469, 0, 0.32156,
0.111721, 0.165203, 0.764481, 0.111721, -0.165203, 0.764481, 0.1125, 0.0562508, 0.796997,
0.1125, -0.0562508, 0.796997, 0.121094, 0.0421881, 0.816215, 0.121094, -0.0421881, 0.816215,
0.125, 0, 0.300049, 0.125, 0, 0.824951, 0.125, 0, 0.863037,
0.136045, 0.154853, 0.32156, 0.136045, -0.154853, 0.32156, 0.137695, 0, 0.881027,
0.145, 0.355, 0.488037, 0.145, -0.355, 0.488037, 0.149219, 0, 0.887024,
0.15, 0, 0.863037, 0.152627, 0.347373, 0.575333, 0.152627, -0.347373, 0.575333,
0.154062, 0.147187, 0.300049, 0.154062, 0.147187, 0.863037, 0.154062, -0.147187, 0.300049,
0.154062, -0.147187, 0.863037, 0.154883, 0, 0.881027, 0.158867, 0.341133, 0.413654,
0.158867, -0.341133, 0.413654, 0.165774, 0.142205, 0.881027, 0.165774, -0.142204, 0.881027,
0.172734, 0.327266, 0.66803, 0.172734, -0.327266, 0.66803, 0.175, 0, 0.863037,
0.176404, 0.137682, 0.887024, 0.176404, -0.137681, 0.887024, 0.177125, 0.137375, 0.863037,
0.177125, -0.137375, 0.863037, 0.181629, 0.135459, 0.881027, 0.181629, -0.135458, 0.881027,
0.189375, 0.310625, 0.358795, 0.189375, -0.310625, 0.358795, 0.200187, 0.127562, 0.863037,
0.200187, -0.127562, 0.863037, 0.201162, 0.298838, 0.764481, 0.201162, -0.298838, 0.764481,
0.210938, 0, 0.884945, 0.219883, 0.280117, 0.32156, 0.219883, -0.280117, 0.32156,
0.23334, 0.113457, 0.884945, 0.23334, -0.113457, 0.884945, 0.23375, 0.26625, 0.300049,
0.23375, 0.26625, 0.863037, 0.23375, -0.26625, 0.300049, 0.23375, -0.26625, 0.863037,
0.242764, 0.257238, 0.881027, 0.242764, -0.257235, 0.881027, 0.250945, 0.249056, 0.887024,
0.250945, -0.249054, 0.887024, 0.2515, 0.2485, 0.863037, 0.2515, -0.2485, 0.863037,
0.254967, 0.245034, 0.881027, 0.254967, -0.245033, 0.881027, 0.26925, 0.23075, 0.863037,
0.26925, -0.23075, 0.863037, 0.29375, 0, 0.900055, 0.294766, 0.205234, 0.884945,
0.294766, -0.205234, 0.884945, 0.30375, 0.46125, 0.488037, 0.30375, -0.46125, 0.488037,
0.307966, 0.45134, 0.575333, 0.307966, -0.45134, 0.575333, 0.309734, 0.080953, 0.900055,
0.309734, -0.080953, 0.900055, 0.311416, 0.443233, 0.413654, 0.311416, -0.443233, 0.413654,
0.319082, 0.425215, 0.66803, 0.319082, -0.425215, 0.66803, 0.328281, 0.403594, 0.358795,
0.328281, -0.403594, 0.358795, 0.334797, 0.388279, 0.764481, 0.334797, -0.388279, 0.764481,
0.345146, 0.363955, 0.32156, 0.345146, -0.363955, 0.32156, 0.352812, 0.345937, 0.300049,
0.352812, 0.345937, 0.863037, 0.352812, -0.345937, 0.300049, 0.352812, -0.345937, 0.863037,
0.353562, 0.146438, 0.900055, 0.353562, -0.146438, 0.900055, 0.357795, 0.334229, 0.881027,
0.357795, -0.334224, 0.881027, 0.362318, 0.323599, 0.887024, 0.362318, -0.323595, 0.887024,
0.362625, 0.322875, 0.863037, 0.362625, -0.322875, 0.863037, 0.364542, 0.318373, 0.881027,
0.364542, -0.318371, 0.881027, 0.372437, 0.299813, 0.863037, 0.372437, -0.299813, 0.863037,
0.385938, 0, 0.915394, 0.386543, 0.266661, 0.884945, 0.386543, -0.266661, 0.884945,
0.394777, 0.0447694, 0.915394, 0.394777, -0.0447694, 0.915394, 0.414844, 0, 1.03776,
0.41875, 0, 1.00793, 0.419016, 0.0809842, 0.915394, 0.419016, -0.0809842, 0.915394,
0.419047, 0.190266, 0.900055, 0.419047, -0.190266, 0.900055, 0.421414, 0.0335127, 1.03776,
0.421414, -0.0335127, 1.03776, 0.425021, 0.0319696, 1.00793, 0.425021, -0.0319696, 1.00793,
0.43946, 0.0605401, 1.03776, 0.43946, -0.0605401, 1.03776, 0.442242, 0.0577578, 1.00793,
0.442242, -0.0577578, 1.00793, 0.45, 0, 0.937988, 0.450781, 0, 0.971153,
0.453875, 0.0196248, 0.937988, 0.453875, -0.0196248, 0.937988, 0.454586, 0.0193479, 0.971153,
0.454586, -0.0193479, 0.971153, 0.45523, 0.105222, 0.915394, 0.45523, -0.105222, 0.915394,
0.4645, 0.0354995, 0.937988, 0.4645, -0.0354995, 0.937988, 0.465028, 0.0349715, 0.971153,
0.465028, -0.0349715, 0.971153, 0.466487, 0.0785866, 1.03776, 0.466487, -0.0785866, 1.03776,
0.46803, 0.0749796, 1.00793, 0.46803, -0.0749796, 1.00793, 0.480375, 0.0461242, 0.937988,
0.480375, -0.0461242, 0.937988, 0.480652, 0.0454139, 0.971153, 0.480652, -0.0454139, 0.971153,
0.5, 0, 1.05005, 0.5, 0.0492185, 0.971153, 0.5, 0.049999, 0.937988,
0.5, 0.0812503, 1.00793, 0.5, 0.0851567, 1.03776, 0.5, 0.114062, 0.915394,
0.5, 0.20625, 0.900055, 0.5, 0.289063, 0.884945, 0.5, 0.325001, 0.863037,
0.5, 0.34512, 0.881027, 0.5, 0.35, 0.863037, 0.5, 0.350785, 0.887024,
0.5, 0.362308, 0.881027, 0.5, 0.375, 0.300049, 0.5, 0.375, 0.863037,
0.5, 0.394531, 0.32156, 0.5, 0.420898, 0.764481, 0.5, 0.4375, 0.358795,
0.5, 0.460938, 0.66803, 0.5, 0.480469, 0.413654, 0.5, 0.489258, 0.575333,
0.5, 0.5, 0.488037, 0.5, -0.0492185, 0.971153, 0.5, -0.049999, 0.937988,
0.5, -0.0812503, 1.00793, 0.5, -0.0851567, 1.03776, 0.5, -0.114062, 0.915394,
0.5, -0.20625, 0.900055, 0.5, -0.289063, 0.884945, 0.5, -0.325001, 0.863037,
0.5, -0.345118, 0.881027, 0.5, -0.35, 0.863037, 0.5, -0.35078, 0.887024,
0.5, -0.362303, 0.881027, 0.5, -0.375, 0.300049, 0.5, -0.375, 0.863037,
0.5, -0.394531, 0.32156, 0.5, -0.420898, 0.764481, 0.5, -0.4375, 0.358795,
0.5, -0.460938, 0.66803, 0.5, -0.480469, 0.413654, 0.5, -0.489258, 0.575333,
0.5, -0.5, 0.488037, 0.519348, 0.0454139, 0.971153, 0.519348, -0.0454139, 0.971153,
0.519625, 0.0461242, 0.937988, 0.519625, -0.0461242, 0.937988, 0.53197, 0.0749796, 1.00793,
0.53197, -0.0749796, 1.00793, 0.533513, 0.0785866, 1.03776, 0.533513, -0.0785866, 1.03776,
0.534972, 0.0349715, 0.971153, 0.534972, -0.0349715, 0.971153, 0.5355, 0.0354995, 0.937988,
0.5355, -0.0354995, 0.937988, 0.54477, 0.105222, 0.915394, 0.54477, -0.105222, 0.915394,
0.545414, 0.0193479, 0.971153, 0.545414, -0.0193479, 0.971153, 0.546125, 0.0196248, 0.937988,
0.546125, -0.0196248, 0.937988, 0.549219, 0, 0.971153, 0.55, 0, 0.937988,
0.557758, 0.0577578, 1.00793, 0.557758, -0.0577578, 1.00793, 0.56054, 0.0605401, 1.03776,
0.56054, -0.0605401, 1.03776, 0.574979, 0.0319696, 1.00793, 0.574979, -0.0319696, 1.00793,
0.578586, 0.0335127, 1.03776, 0.578586, -0.0335127, 1.03776, 0.580953, 0.190266, 0.900055,
0.580953, -0.190266, 0.900055, 0.580984, 0.0809842, 0.915394, 0.580984, -0.0809842, 0.915394,
0.58125, 0, 1.00793, 0.585156, 0, 1.03776, 0.605223, 0.0447694, 0.915394,
0.605223, -0.0447694, 0.915394, 0.613457, 0.266661, 0.884945, 0.613457, -0.266661, 0.884945,
0.614062, 0, 0.915394, 0.627562, 0.299813, 0.863037, 0.627562, -0.299813, 0.863037,
0.635459, 0.318373, 0.881027, 0.635459, -0.318371, 0.881027, 0.637375, 0.322875, 0.863037,
0.637375, -0.322875, 0.863037, 0.637682, 0.323599, 0.887024, 0.637682, -0.323595, 0.887024,
0.642205, 0.334229, 0.881027, 0.642205, -0.334224, 0.881027, 0.646437, 0.146438, 0.900055,
0.646437, -0.146438, 0.900055, 0.647187, 0.345937, 0.300049, 0.647187, 0.345937, 0.863037,
0.647187, -0.345937, 0.300049, 0.647187, -0.345937, 0.863037, 0.654853, 0.363955, 0.32156,
0.654853, -0.363955, 0.32156, 0.665203, 0.388279, 0.764481, 0.665203, -0.388279, 0.764481,
0.671719, 0.403594, 0.358795, 0.671719, -0.403594, 0.358795, 0.680918, 0.425215, 0.66803,
0.680918, -0.425215, 0.66803, 0.688584, 0.443233, 0.413654, 0.688584, -0.443233, 0.413654,
0.690266, 0.080953, 0.900055, 0.690266, -0.080953, 0.900055, 0.692034, 0.45134, 0.575333,
0.692034, -0.45134, 0.575333, 0.69625, 0.46125, 0.488037, 0.69625, -0.46125, 0.488037,
0.705234, 0.205234, 0.884945, 0.705234, -0.205234, 0.884945, 0.70625, 0, 0.900055,
0.73075, 0.23075, 0.863037, 0.73075, -0.23075, 0.863037, 0.745033, 0.245034, 0.881027,
0.745033, -0.245033, 0.881027, 0.7485, 0.2485, 0.863037, 0.7485, -0.2485, 0.863037,
0.749055, 0.249056, 0.887024, 0.749055, -0.249054, 0.887024, 0.757236, 0.257238, 0.881027,
0.757236, -0.257235, 0.881027, 0.76625, 0.26625, 0.300049, 0.76625, 0.26625, 0.863037,
0.76625, -0.26625, 0.300049, 0.76625, -0.26625, 0.863037, 0.76666, 0.113457, 0.884945,
0.76666, -0.113457, 0.884945, 0.780117, 0.280117, 0.32156, 0.780117, -0.280117, 0.32156,
0.789062, 0, 0.884945, 0.798838, 0.298838, 0.764481, 0.798838, -0.298838, 0.764481,
0.799812, 0.127562, 0.863037, 0.799812, -0.127562, 0.863037, 0.810625, 0.310625, 0.358795,
0.810625, -0.310625, 0.358795, 0.818371, 0.135459, 0.881027, 0.818371, -0.135458, 0.881027,
0.822875, 0.137375, 0.863037, 0.822875, -0.137375, 0.863037, 0.823596, 0.137682, 0.887024,
0.823596, -0.137681, 0.887024, 0.825, 0, 0.863037, 0.827266, 0.327266, 0.66803,
0.827266, -0.327266, 0.66803, 0.834226, 0.142205, 0.881027, 0.834226, -0.142204, 0.881027,
0.841133, 0.341133, 0.413654, 0.841133, -0.341133, 0.413654, 0.845117, 0, 0.881027,
0.845937, 0.147187, 0.300049, 0.845937, 0.147187, 0.863037, 0.845937, -0.147187, 0.300049,
0.845937, -0.147187, 0.863037, 0.847373, 0.347373, 0.575333, 0.847373, -0.347373, 0.575333,
0.85, 0, 0.863037, 0.850781, 0, 0.887024, 0.855, 0.355, 0.488037,
0.855, -0.355, 0.488037, 0.862305, 0, 0.881027, 0.863955, 0.154853, 0.32156,
0.863955, -0.154853, 0.32156, 0.875, 0, 0.300049, 0.875, 0, 0.863037,
0.888279, 0.165203, 0.764481, 0.888279, -0.165203, 0.764481, 0.894531, 0, 0.32156,
0.903594, 0.171719, 0.358795, 0.903594, -0.171719, 0.358795, 0.920898, 0, 0.764481,
0.925, 0, 0.413086, 0.925, 0, 0.618896, 0.925, 0.0928131, 0.445244,
0.925, 0.0928131, 0.586738, 0.925, 0.123751, 0.515991, 0.925, -0.0928131, 0.445244,
0.925, -0.0928131, 0.586738, 0.925, -0.123751, 0.515991, 0.925215, 0.180918, 0.66803,
0.925215, -0.180918, 0.66803, 0.9375, 0, 0.358795, 0.943232, 0.188584, 0.413654,
0.943232, -0.188584, 0.413654, 0.95134, 0.192034, 0.575333, 0.95134, -0.192034, 0.575333,
0.960938, 0, 0.66803, 0.96125, 0.19625, 0.488037, 0.96125, -0.19625, 0.488037,
0.980469, 0, 0.413654, 0.989258, 0, 0.575333, 1, 0, 0.488037,
1.04492, 0, 0.646503, 1.05408, 0.0838042, 0.622637, 1.05408, -0.0838042, 0.622637,
1.07422, 0.111739, 0.570131, 1.07422, -0.111739, 0.570131, 1.09436, 0.0838042, 0.517625,
1.09436, -0.0838042, 0.517625, 1.09687, 0, 0.71286, 1.10352, 0, 0.493759,
1.10859, 0.0639847, 0.698941, 1.10859, -0.0639847, 0.698941, 1.12539, 0, 0.79327,
1.13437, 0.0853129, 0.66832, 1.13437, -0.0853129, 0.66832, 1.13967, 0.0441651, 0.788218,
1.13967, -0.0441651, 0.788218, 1.16016, 0.0639847, 0.637698, 1.16016, -0.0639847, 0.637698,
1.17109, 0.0588868, 0.777105, 1.17109, -0.0588868, 0.777105, 1.17188, 0, 0.623779,
1.175, 0, 0.863037, 1.19297, 0, 0.8732, 1.19844, 0.0351562, 0.863037,
1.19844, -0.0351562, 0.863037, 1.2, 0, 0.863037, 1.20251, 0.0441651, 0.765992,
1.20251, -0.0441651, 0.765992, 1.20625, 0, 0.876587, 1.21016, 0, 0.8732,
1.21563, 0.0210938, 0.863037, 1.21563, -0.0210938, 0.863037, 1.2168, 0, 0.76094,
1.21807, 0.032959, 0.873741, 1.21807, -0.032959, 0.873741, 1.22981, 0.028125, 0.87746,
1.22981, -0.028125, 0.87746, 1.23016, 0.023291, 0.873967, 1.23016, -0.023291, 0.873967,
1.25, 0.028125, 0.863037, 1.25, 0.046875, 0.863037, 1.25, -0.028125, 0.863037,
1.25, -0.046875, 0.863037, 1.27329, 0.0439453, 0.874933, 1.27329, -0.0439453, 0.874933,
1.27417, 0.0310547, 0.875654, 1.27417, -0.0310547, 0.875654, 1.28164, 0.0375, 0.879379,
1.28164, -0.0375, 0.879379, 1.28437, 0.0210938, 0.863037, 1.28437, -0.0210938, 0.863037,
1.3, 0, 0.863037, 1.30156, 0.0351562, 0.863037, 1.30156, -0.0351562, 0.863037,
1.31818, 0.023291, 0.877342, 1.31818, -0.023291, 0.877342, 1.325, 0, 0.863037,
1.32851, 0.032959, 0.876125, 1.32851, -0.032959, 0.876125, 1.33347, 0.028125, 0.881299,
1.33347, -0.028125, 0.881299, 1.33818, 0, 0.878109, 1.35361, 0, 0.876667,
1.35703, 0, 0.882171, -0.0167969, 0, 0.768166, -0.0202759, 0.0421881, 0.776765,
-0.0202759, -0.0421881, 0.776765, -0.0279297, 0.0562508, 0.795683, -0.0279297, -0.0562508, 0.795683,
-0.0355835, 0.0421881, 0.814601, -0.0355835, -0.0421881, 0.814601, -0.0390625, 0, 0.8232,
-0.0800781, 0, 0.538757, -0.0827332, 0.0421881, 0.529498, -0.0827332, -0.0421881, 0.529498,
-0.0885742, 0.0562508, 0.509128, -0.0885742, -0.0562508, 0.509128, -0.0944153, 0.0421881, 0.488759,
-0.0944153, -0.0421881, 0.488759, -0.0970703, 0, 0.4795, -0.103125, 0, 0.762024,
-0.111426, 0.0421881, 0.769668, -0.111426, -0.0421881, 0.769668, -0.129688, 0.0562508, 0.786484,
-0.129688, -0.0562508, 0.786484, -0.134375, 0, 0.600098, -0.141943, 0.0421881, 0.592611,
-0.141943, -0.0421881, 0.592611, -0.147949, 0.0421881, 0.8033, -0.147949, -0.0421881, 0.8033,
-0.15625, 0, 0.810943, -0.156641, 0, 0.745354, -0.158594, 0.0562508, 0.576141,
-0.158594, -0.0562508, 0.576141, -0.165234, 0, 0.661621, -0.167566, 0.0421881, 0.750404,
-0.167566, -0.0421881, 0.750404, -0.175, 0, 0.712891, -0.175244, 0.0421881, 0.559671,
-0.175244, -0.0421881, 0.559671, -0.175885, 0.0421881, 0.656723, -0.175885, -0.0421881, 0.656723,
-0.182812, 0, 0.552185, -0.186719, 0.0421881, 0.712891, -0.186719, -0.0421881, 0.712891,
-0.191602, 0.0562508, 0.761515, -0.191602, -0.0562508, 0.761515, -0.199316, 0.0562508, 0.645947,
-0.199316, -0.0562508, 0.645947, -0.2125, 0.0562508, 0.712891, -0.2125, -0.0562508, 0.712891,
-0.215637, 0.0421881, 0.772625, -0.215637, -0.0421881, 0.772625, -0.222748, 0.0421881, 0.63517,
-0.222748, -0.0421881, 0.63517, -0.226562, 0, 0.777676, -0.233398, 0, 0.630272,
-0.238281, 0.0421881, 0.712891, -0.238281, -0.0421881, 0.712891, -0.25, 0, 0.712891),
ncol=3, byrow=TRUE)
# Take care, the source labels vertices from 0-479, need to add 1
faces <- matrix(c(
324, 306, 304, 317,
306, 283, 281, 304,
283, 248, 246, 281,
248, 172, 171, 246,
317, 304, 308, 325,
304, 281, 285, 308,
281, 246, 250, 285,
246, 171, 173, 250,
325, 308, 313, 328,
308, 285, 287, 313,
285, 250, 252, 287,
250, 173, 174, 252,
328, 313, 319, 332,
313, 287, 290, 319,
287, 252, 257, 290,
252, 174, 176, 257,
172, 117, 119, 171,
117, 82, 84, 119,
82, 59, 61, 84,
59, 42, 49, 61,
171, 119, 115, 173,
119, 84, 80, 115,
84, 61, 57, 80,
61, 49, 41, 57,
173, 115, 113, 174,
115, 80, 78, 113,
80, 57, 52, 78,
57, 41, 38, 52,
174, 113, 108, 176,
113, 78, 75, 108,
78, 52, 46, 75,
52, 38, 35, 46,
42, 60, 62, 49,
60, 83, 85, 62,
83, 118, 120, 85,
118, 193, 192, 120,
49, 62, 58, 41,
62, 85, 81, 58,
85, 120, 116, 81,
120, 192, 194, 116,
41, 58, 53, 38,
58, 81, 79, 53,
81, 116, 114, 79,
116, 194, 195, 114,
38, 53, 48, 35,
53, 79, 77, 48,
79, 114, 110, 77,
114, 195, 197, 110,
193, 249, 247, 192,
249, 284, 282, 247,
284, 307, 305, 282,
307, 324, 317, 305,
192, 247, 251, 194,
247, 282, 286, 251,
282, 305, 309, 286,
305, 317, 325, 309,
194, 251, 253, 195,
251, 286, 288, 253,
286, 309, 314, 288,
309, 325, 328, 314,
195, 253, 259, 197,
253, 288, 292, 259,
288, 314, 321, 292,
314, 328, 332, 321,
332, 319, 333, 338,
319, 290, 298, 333,
290, 257, 262, 298,
257, 176, 178, 262,
338, 333, 347, 354,
333, 298, 311, 347,
298, 262, 266, 311,
262, 178, 180, 266,
354, 347, 352, 358,
347, 311, 322, 352,
311, 266, 272, 322,
266, 180, 182, 272,
358, 352, 355, 359,
352, 322, 326, 355,
322, 272, 274, 326,
272, 182, 183, 274,
176, 108, 103, 178,
108, 75, 67, 103,
75, 46, 27, 67,
46, 35, 20, 27,
178, 103, 99, 180,
103, 67, 54, 99,
67, 27, 18, 54,
27, 20, 12, 18,
180, 99, 93, 182,
99, 54, 43, 93,
54, 18, 13, 43,
18, 12, 3, 13,
182, 93, 91, 183,
93, 43, 39, 91,
43, 13, 10, 39,
13, 3, 0, 10,
35, 48, 28, 20,
48, 77, 68, 28,
77, 110, 104, 68,
110, 197, 199, 104,
20, 28, 19, 12,
28, 68, 55, 19,
68, 104, 100, 55,
104, 199, 201, 100,
12, 19, 14, 3,
19, 55, 44, 14,
55, 100, 94, 44,
100, 201, 203, 94,
3, 14, 11, 0,
14, 44, 40, 11,
44, 94, 92, 40,
94, 203, 204, 92,
197, 259, 263, 199,
259, 292, 299, 263,
292, 321, 334, 299,
321, 332, 338, 334,
199, 263, 267, 201,
263, 299, 312, 267,
299, 334, 348, 312,
334, 338, 354, 348,
201, 267, 273, 203,
267, 312, 323, 273,
312, 348, 353, 323,
348, 354, 358, 353,
203, 273, 275, 204,
273, 323, 327, 275,
323, 353, 356, 327,
353, 358, 359, 356,
359, 355, 350, 357,
355, 326, 315, 350,
326, 274, 268, 315,
274, 183, 181, 268,
357, 350, 336, 349,
350, 315, 302, 336,
315, 268, 264, 302,
268, 181, 179, 264,
349, 336, 329, 335,
336, 302, 295, 329,
302, 264, 260, 295,
264, 179, 177, 260,
335, 329, 318, 331,
329, 295, 289, 318,
295, 260, 256, 289,
260, 177, 175, 256,
183, 91, 97, 181,
91, 39, 50, 97,
39, 10, 15, 50,
10, 0, 6, 15,
181, 97, 101, 179,
97, 50, 63, 101,
50, 15, 21, 63,
15, 6, 17, 21,
179, 101, 105, 177,
101, 63, 70, 105,
63, 21, 36, 70,
21, 17, 26, 36,
177, 105, 107, 175,
105, 70, 74, 107,
70, 36, 45, 74,
36, 26, 33, 45,
0, 11, 16, 6,
11, 40, 51, 16,
40, 92, 98, 51,
92, 204, 202, 98,
6, 16, 22, 17,
16, 51, 64, 22,
51, 98, 102, 64,
98, 202, 200, 102,
17, 22, 37, 26,
22, 64, 71, 37,
64, 102, 106, 71,
102, 200, 198, 106,
26, 37, 47, 33,
37, 71, 76, 47,
71, 106, 109, 76,
106, 198, 196, 109,
204, 275, 269, 202,
275, 327, 316, 269,
327, 356, 351, 316,
356, 359, 357, 351,
202, 269, 265, 200,
269, 316, 303, 265,
316, 351, 337, 303,
351, 357, 349, 337,
200, 265, 261, 198,
265, 303, 296, 261,
303, 337, 330, 296,
337, 349, 335, 330,
198, 261, 258, 196,
261, 296, 291, 258,
296, 330, 320, 291,
330, 335, 331, 320,
23, 24, 425, 424,
24, 29, 427, 425,
29, 31, 429, 427,
31, 34, 431, 429,
424, 425, 441, 440,
425, 427, 443, 441,
427, 429, 448, 443,
429, 431, 450, 448,
440, 441, 455, 451,
441, 443, 465, 455,
443, 448, 471, 465,
448, 450, 475, 471,
451, 455, 463, 457,
455, 465, 469, 463,
465, 471, 477, 469,
471, 475, 479, 477,
34, 32, 430, 431,
32, 30, 428, 430,
30, 25, 426, 428,
25, 23, 424, 426,
431, 430, 449, 450,
430, 428, 444, 449,
428, 426, 442, 444,
426, 424, 440, 442,
450, 449, 472, 475,
449, 444, 466, 472,
444, 442, 456, 466,
442, 440, 451, 456,
475, 472, 478, 479,
472, 466, 470, 478,
466, 456, 464, 470,
456, 451, 457, 464,
457, 463, 460, 454,
463, 469, 467, 460,
469, 477, 473, 467,
477, 479, 476, 473,
454, 460, 446, 445,
460, 467, 452, 446,
467, 473, 458, 452,
473, 476, 462, 458,
445, 446, 433, 432,
446, 452, 435, 433,
452, 458, 437, 435,
458, 462, 439, 437,
432, 433, 1, 0,
433, 435, 4, 1,
435, 437, 7, 4,
437, 439, 9, 7,
479, 478, 474, 476,
478, 470, 468, 474,
470, 464, 461, 468,
464, 457, 454, 461,
476, 474, 459, 462,
474, 468, 453, 459,
468, 461, 447, 453,
461, 454, 445, 447,
462, 459, 438, 439,
459, 453, 436, 438,
453, 447, 434, 436,
447, 445, 432, 434,
439, 438, 8, 9,
438, 436, 5, 8,
436, 434, 2, 5,
434, 432, 0, 2,
340, 342, 361, 360,
342, 343, 363, 361,
343, 341, 365, 363,
341, 339, 368, 365,
360, 361, 369, 367,
361, 363, 372, 369,
363, 365, 376, 372,
365, 368, 380, 376,
367, 369, 374, 371,
369, 372, 378, 374,
372, 376, 386, 378,
376, 380, 392, 386,
371, 374, 383, 381,
374, 378, 400, 383,
378, 386, 412, 400,
386, 392, 416, 412,
339, 344, 366, 368,
344, 346, 364, 366,
346, 345, 362, 364,
345, 340, 360, 362,
368, 366, 377, 380,
366, 364, 373, 377,
364, 362, 370, 373,
362, 360, 367, 370,
380, 377, 387, 392,
377, 373, 379, 387,
373, 370, 375, 379,
370, 367, 371, 375,
392, 387, 413, 416,
387, 379, 402, 413,
379, 375, 384, 402,
375, 371, 381, 384,
381, 383, 393, 382,
383, 400, 403, 393,
400, 412, 417, 403,
412, 416, 422, 417,
382, 393, 395, 388,
393, 403, 407, 395,
403, 417, 419, 407,
417, 422, 423, 419,
388, 395, 397, 389,
395, 407, 405, 397,
407, 419, 414, 405,
419, 423, 421, 414,
389, 397, 390, 385,
397, 405, 399, 390,
405, 414, 409, 399,
414, 421, 411, 409,
416, 413, 418, 422,
413, 402, 404, 418,
402, 384, 394, 404,
384, 381, 382, 394,
422, 418, 420, 423,
418, 404, 408, 420,
404, 394, 396, 408,
394, 382, 388, 396,
423, 420, 415, 421,
420, 408, 406, 415,
408, 396, 398, 406,
396, 388, 389, 398,
421, 415, 410, 411,
415, 406, 401, 410,
406, 398, 391, 401,
398, 389, 385, 391,
238, 231, 229, 237,
231, 227, 225, 229,
227, 211, 209, 225,
211, 166, 165, 209,
237, 229, 219, 223,
229, 225, 213, 219,
225, 209, 205, 213,
209, 165, 163, 205,
223, 219, 221, 224,
219, 213, 215, 221,
213, 205, 207, 215,
205, 163, 164, 207,
166, 154, 156, 165,
154, 138, 140, 156,
138, 134, 136, 140,
134, 128, 129, 136,
165, 156, 160, 163,
156, 140, 152, 160,
140, 136, 146, 152,
136, 129, 143, 146,
163, 160, 158, 164,
160, 152, 150, 158,
152, 146, 144, 150,
146, 143, 142, 144,
128, 135, 137, 129,
135, 139, 141, 137,
139, 155, 157, 141,
155, 187, 186, 157,
129, 137, 147, 143,
137, 141, 153, 147,
141, 157, 161, 153,
157, 186, 184, 161,
143, 147, 145, 142,
147, 153, 151, 145,
153, 161, 159, 151,
161, 184, 185, 159,
187, 212, 210, 186,
212, 228, 226, 210,
228, 232, 230, 226,
232, 238, 237, 230,
186, 210, 206, 184,
210, 226, 214, 206,
226, 230, 220, 214,
230, 237, 223, 220,
184, 206, 208, 185,
206, 214, 216, 208,
214, 220, 222, 216,
220, 223, 224, 222,
224, 221, 239, 243,
221, 215, 235, 239,
215, 207, 217, 235,
207, 164, 167, 217,
243, 239, 270, 278,
239, 235, 254, 270,
235, 217, 233, 254,
217, 167, 168, 233,
278, 270, 293, 297,
270, 254, 276, 293,
254, 233, 241, 276,
233, 168, 169, 241,
297, 293, 300, 310,
293, 276, 279, 300,
276, 241, 244, 279,
241, 169, 170, 244,
164, 158, 148, 167,
158, 150, 130, 148,
150, 144, 126, 130,
144, 142, 123, 126,
167, 148, 132, 168,
148, 130, 111, 132,
130, 126, 95, 111,
126, 123, 88, 95,
168, 132, 124, 169,
132, 111, 89, 124,
111, 95, 72, 89,
95, 88, 69, 72,
169, 124, 121, 170,
124, 89, 86, 121,
89, 72, 65, 86,
72, 69, 56, 65,
142, 145, 127, 123,
145, 151, 131, 127,
151, 159, 149, 131,
159, 185, 188, 149,
123, 127, 96, 88,
127, 131, 112, 96,
131, 149, 133, 112,
149, 188, 189, 133,
88, 96, 73, 69,
96, 112, 90, 73,
112, 133, 125, 90,
133, 189, 190, 125,
69, 73, 66, 56,
73, 90, 87, 66,
90, 125, 122, 87,
125, 190, 191, 122,
185, 208, 218, 188,
208, 216, 236, 218,
216, 222, 240, 236,
222, 224, 243, 240,
188, 218, 234, 189,
218, 236, 255, 234,
236, 240, 271, 255,
240, 243, 278, 271,
189, 234, 242, 190,
234, 255, 277, 242,
255, 271, 294, 277,
271, 278, 297, 294,
190, 242, 245, 191,
242, 277, 280, 245,
277, 294, 301, 280,
294, 297, 310, 301
),
ncol=4, byrow=TRUE) + 1
to.face <- function (v) {
return(Spc.MakePolygon(verts[v,1] * scale,verts[v,2] * scale,verts[v,3] * scale))
}
#***NB Need to add in the triangular faces here
#Scale nees a bit of work. This is very approximate.
scale <- radius
#----
r <- list()
for (i in 1:432)
r <- append(r, list(to.face(faces[i,])))
r <- Spc.Combine(r, properties=properties, bound=bound)
#---- rotations to plane
# if (align.to %in% c("x","X"))
# r <- Spc.Rotate(r, ,pivot.angle=c(0,0,dihangle/2))
#
# if (align.to %in% c("y","Y"))
# r <- Spc.Rotate(r, ,pivot.angle=c(dihangle/2,0,0))
#
# if (align.to %in% c("z","Z"))
# r <- Spc.Rotate(r, ,pivot.angle=c(0,dihangle/2,0))
#
r <- Spc.Translate(r, centre)
return(r)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.