Shuhei Tsuchida / Mbed 2 deprecated dotstar_old_style_6volleyball

Dependencies:   RotationMat_ SDFileSystem math mbed trigonometric_fanc

main.cpp

Committer:
shuhei2306
Date:
2016-02-08
Revision:
2:b09caaa3de96
Parent:
1:64ca0218709d

File content as of revision 2:b09caaa3de96:


#include "mbed.h"
#include "SDFileSystem.h"
#include "Adafruit_DotStar.h"

#include "Vector3D.h"
#include "RotationMat.h"
//#include "trigonometric_fanc.h"
#include "mymath.h"

const float v_leds[6][9][22][3]={{{{0.585398, 0.636783, 0.501813},{0.519512, 0.691586, 0.501813},{0.448526, 0.7396, 0.501813},{0.373138, 0.780354, 0.501813},{0.294086, 0.813448, 0.501813},{0.212148, 0.838557, 0.501813},{0.128128, 0.855434, 0.501813},{0.0428495, 0.863914, 0.501813},{-0.0428495, 0.863914, 0.501813},{-0.128128, 0.855434, 0.501813},{-0.212148, 0.838557, 0.501813},{-0.294086, 0.813448, 0.501813},{-0.373138, 0.780354, 0.501813},{-0.448526, 0.7396, 0.501813},{-0.519512, 0.691586, 0.501813},{-0.585398, 0.636783, 0.501813},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
{{-0.684874, 0.619184, 0.384134},{-0.624509, 0.680021, 0.384134},{-0.558764, 0.735, 0.384134},{-0.488203, 0.783644, 0.384134},{-0.413436, 0.825537, 0.384134},{-0.335106, 0.860317, 0.384134},{-0.25389, 0.887683, 0.384134},{-0.170485, 0.907401, 0.384134},{-0.0856113, 0.9193, 0.384134},{0, 0.923277, 0.384134},{0.0856113, 0.9193, 0.384134},{0.170485, 0.907401, 0.384134},{0.253889, 0.887683, 0.384134},{0.335106, 0.860317, 0.384134},{0.413436, 0.825537, 0.384134},{0.488203, 0.783645, 0.384134},{0.558763, 0.735, 0.384134},{0.624509, 0.680021, 0.384134},{0.684874, 0.619184, 0.384134},{0,0,0},{0,0,0},{0,0,0}},
{{0.721281, 0.64206, 0.25983},{0.661511, 0.703485, 0.25983},{0.59653, 0.759368, 0.25983},{0.52685, 0.80927, 0.25983},{0.453019, 0.852796, 0.25983},{0.375621, 0.889605, 0.25983},{0.295263, 0.919406, 0.25983},{0.212579, 0.941965, 0.25983},{0.128221, 0.957104, 0.25983},{0.0428528, 0.964703, 0.25983},{-0.0428529, 0.964703, 0.25983},{-0.128221, 0.957104, 0.25983},{-0.212579, 0.941965, 0.25983},{-0.295263, 0.919406, 0.25983},{-0.375621, 0.889605, 0.25983},{-0.453019, 0.852796, 0.25983},{-0.52685, 0.80927, 0.25983},{-0.59653, 0.759368, 0.25983},{-0.661511, 0.703485, 0.25983},{-0.721281, 0.64206, 0.25983},{0,0,0},{0,0,0}},
{{-0.781503, 0.609984, 0.131045},{-0.725896, 0.675205, 0.131045},{-0.664864, 0.735379, 0.131045},{-0.598863, 0.790057, 0.131045},{-0.528386, 0.83883, 0.131045},{-0.45396, 0.881333, 0.131045},{-0.37614, 0.917249, 0.131045},{-0.295509, 0.946309, 0.131045},{-0.21267, 0.968297, 0.131045},{-0.128241, 0.983047, 0.131045},{-0.0428538, 0.99045, 0.131045},{0.0428539, 0.99045, 0.131045},{0.128241, 0.983047, 0.131045},{0.21267, 0.968297, 0.131045},{0.29551, 0.946309, 0.131045},{0.37614, 0.917249, 0.131045},{0.45396, 0.881333, 0.131045},{0.528386, 0.83883, 0.131045},{0.598863, 0.790057, 0.131045},{0.664864, 0.735379, 0.131045},{0.725896, 0.675205, 0.131045},{0.781503, 0.609984, 0.131045}},
{{0.783455, 0.621449, 0},{0.727363, 0.686253, 0},{0.665929, 0.746015, 0},{0.599602, 0.800298, 0},{0.528871, 0.848702, 0},{0.454256, 0.890871, 0},{0.376303, 0.926497, 0},{0.295586, 0.955316, 0},{0.212697, 0.977118, 0},{0.128247, 0.991742, 0},{0.0428538, 0.999081, 0},{-0.0428538, 0.999081, 0},{-0.128247, 0.991742, 0},{-0.212697, 0.977118, 0},{-0.295586, 0.955316, 0},{-0.376303, 0.926497, 0},{-0.454256, 0.890871, 0},{-0.528872, 0.848702, 0},{-0.599602, 0.800298, 0},{-0.665929, 0.746015, 0},{-0.727363, 0.686253, 0},{-0.783455, 0.621449, 0}},
{{-0.781503, 0.609984, -0.131045},{-0.725896, 0.675205, -0.131045},{-0.664864, 0.735379, -0.131045},{-0.598863, 0.790057, -0.131045},{-0.528386, 0.83883, -0.131045},{-0.45396, 0.881333, -0.131045},{-0.37614, 0.917249, -0.131045},{-0.295509, 0.946309, -0.131045},{-0.21267, 0.968297, -0.131045},{-0.128241, 0.983047, -0.131045},{-0.0428538, 0.99045, -0.131045},{0.0428539, 0.99045, -0.131045},{0.128241, 0.983047, -0.131045},{0.21267, 0.968297, -0.131045},{0.29551, 0.946309, -0.131045},{0.37614, 0.917249, -0.131045},{0.45396, 0.881333, -0.131045},{0.528386, 0.83883, -0.131045},{0.598863, 0.790057, -0.131045},{0.664864, 0.735379, -0.131045},{0.725896, 0.675205, -0.131045},{0.781503, 0.609984, -0.131045}},
{{0.721281, 0.64206, -0.25983},{0.661511, 0.703485, -0.25983},{0.59653, 0.759368, -0.25983},{0.52685, 0.80927, -0.25983},{0.453019, 0.852796, -0.25983},{0.375621, 0.889605, -0.25983},{0.295263, 0.919406, -0.25983},{0.212579, 0.941965, -0.25983},{0.128221, 0.957104, -0.25983},{0.0428528, 0.964703, -0.25983},{-0.0428529, 0.964703, -0.25983},{-0.128221, 0.957104, -0.25983},{-0.212579, 0.941965, -0.25983},{-0.295263, 0.919406, -0.25983},{-0.375621, 0.889605, -0.25983},{-0.453019, 0.852796, -0.25983},{-0.52685, 0.80927, -0.25983},{-0.59653, 0.759368, -0.25983},{-0.661511, 0.703485, -0.25983},{-0.721281, 0.64206, -0.25983},{0,0,0},{0,0,0}},
{{-0.684874, 0.619184, -0.384134},{-0.624509, 0.680021, -0.384134},{-0.558764, 0.735, -0.384134},{-0.488203, 0.783644, -0.384134},{-0.413436, 0.825537, -0.384134},{-0.335106, 0.860317, -0.384134},{-0.25389, 0.887683, -0.384134},{-0.170485, 0.907401, -0.384134},{-0.0856113, 0.9193, -0.384134},{0, 0.923277, -0.384134},{0.0856113, 0.9193, -0.384134},{0.170485, 0.907401, -0.384134},{0.253889, 0.887683, -0.384134},{0.335106, 0.860317, -0.384134},{0.413436, 0.825537, -0.384134},{0.488203, 0.783645, -0.384134},{0.558763, 0.735, -0.384134},{0.624509, 0.680021, -0.384134},{0.684874, 0.619184, -0.384134},{0,0,0},{0,0,0},{0,0,0}},
{{0.585398, 0.636783, -0.501813},{0.519512, 0.691586, -0.501813},{0.448526, 0.7396, -0.501813},{0.373138, 0.780354, -0.501813},{0.294086, 0.813448, -0.501813},{0.212148, 0.838557, -0.501813},{0.128128, 0.855434, -0.501813},{0.0428495, 0.863914, -0.501813},{-0.0428495, 0.863914, -0.501813},{-0.128128, 0.855434, -0.501813},{-0.212148, 0.838557, -0.501813},{-0.294086, 0.813448, -0.501813},{-0.373138, 0.780354, -0.501813},{-0.448526, 0.7396, -0.501813},{-0.519512, 0.691586, -0.501813},{-0.585398, 0.636783, -0.501813},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}
},{{{0.501813, 0.585398, 0.636783},{0.501813, 0.519512, 0.691586},{0.501813, 0.448526, 0.7396},{0.501813, 0.373138, 0.780354},{0.501813, 0.294086, 0.813448},{0.501813, 0.212148, 0.838557},{0.501813, 0.128128, 0.855434},{0.501813, 0.0428495, 0.863914},{0.501813, -0.0428495, 0.863914},{0.501813, -0.128128, 0.855434},{0.501813, -0.212148, 0.838557},{0.501813, -0.294086, 0.813448},{0.501813, -0.373138, 0.780354},{0.501813, -0.448526, 0.7396},{0.501813, -0.519512, 0.691586},{0.501813, -0.585398, 0.636783},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
{{0.384134, -0.684874, 0.619184},{0.384134, -0.624509, 0.680021},{0.384134, -0.558763, 0.735},{0.384134, -0.488203, 0.783645},{0.384134, -0.413436, 0.825537},{0.384134, -0.335106, 0.860317},{0.384134, -0.253889, 0.887683},{0.384134, -0.170485, 0.907401},{0.384134, -0.0856113, 0.919299},{0.384134, 1.6791e-08, 0.923277},{0.384134, 0.0856113, 0.919299},{0.384134, 0.170485, 0.907401},{0.384134, 0.253889, 0.887683},{0.384134, 0.335106, 0.860317},{0.384134, 0.413436, 0.825537},{0.384134, 0.488203, 0.783645},{0.384134, 0.558763, 0.735},{0.384134, 0.624509, 0.680021},{0.384134, 0.684874, 0.619184},{0,0,0},{0,0,0},{0,0,0}},
{{0.25983, 0.721281, 0.64206},{0.25983, 0.661511, 0.703485},{0.25983, 0.59653, 0.759368},{0.25983, 0.52685, 0.80927},{0.25983, 0.453019, 0.852796},{0.25983, 0.375621, 0.889605},{0.25983, 0.295263, 0.919406},{0.25983, 0.212579, 0.941965},{0.25983, 0.128221, 0.957104},{0.25983, 0.0428529, 0.964703},{0.25983, -0.0428529, 0.964703},{0.25983, -0.128221, 0.957104},{0.25983, -0.212579, 0.941965},{0.259831, -0.295263, 0.919406},{0.25983, -0.375621, 0.889605},{0.259831, -0.453019, 0.852796},{0.259831, -0.52685, 0.80927},{0.25983, -0.59653, 0.759368},{0.25983, -0.661511, 0.703485},{0.25983, -0.721281, 0.64206},{0,0,0},{0,0,0}},
{{0.131045, -0.781502, 0.609984},{0.131045, -0.725896, 0.675205},{0.131045, -0.664864, 0.735379},{0.131045, -0.598863, 0.790057},{0.131045, -0.528386, 0.83883},{0.131045, -0.45396, 0.881333},{0.131045, -0.37614, 0.917249},{0.131045, -0.295509, 0.946309},{0.131045, -0.21267, 0.968297},{0.131045, -0.128241, 0.983047},{0.131045, -0.0428538, 0.99045},{0.131045, 0.0428539, 0.99045},{0.131045, 0.128241, 0.983047},{0.131045, 0.21267, 0.968297},{0.131045, 0.29551, 0.946309},{0.131045, 0.37614, 0.917249},{0.131045, 0.45396, 0.881333},{0.131045, 0.528386, 0.83883},{0.131045, 0.598863, 0.790057},{0.131045, 0.664864, 0.735379},{0.131045, 0.725896, 0.675205},{0.131045, 0.781503, 0.609984}},
{{-7.08151e-09, 0.783455, 0.621449},{-1.797e-09, 0.727363, 0.686253},{3.5007e-09, 0.665929, 0.746015},{8.77269e-09, 0.599602, 0.800298},{1.39802e-08, 0.528871, 0.848702},{1.90851e-08, 0.454256, 0.890871},{2.40497e-08, 0.376303, 0.926497},{2.88377e-08, 0.295586, 0.955316},{3.34139e-08, 0.212697, 0.977118},{3.77446e-08, 0.128247, 0.991742},{4.1798e-08, 0.0428538, 0.999081},{4.55444e-08, -0.0428538, 0.999081},{4.89563e-08, -0.128247, 0.991742},{5.20085e-08, -0.212697, 0.977118},{5.46787e-08, -0.295586, 0.955316},{5.69472e-08, -0.376303, 0.926497},{5.87974e-08, -0.454256, 0.890871},{6.02157e-08, -0.528872, 0.848702},{6.11916e-08, -0.599602, 0.800298},{6.1718e-08, -0.665929, 0.746015},{6.17911e-08, -0.727363, 0.686253},{6.14103e-08, -0.783455, 0.621449}},
{{-0.131045, -0.781502, 0.609984},{-0.131045, -0.725896, 0.675205},{-0.131045, -0.664864, 0.735379},{-0.131045, -0.598863, 0.790057},{-0.131045, -0.528386, 0.83883},{-0.131045, -0.45396, 0.881333},{-0.131045, -0.37614, 0.917249},{-0.131045, -0.295509, 0.946309},{-0.131045, -0.21267, 0.968297},{-0.131045, -0.128241, 0.983047},{-0.131045, -0.0428538, 0.99045},{-0.131045, 0.0428539, 0.99045},{-0.131045, 0.128241, 0.983047},{-0.131045, 0.21267, 0.968297},{-0.131045, 0.29551, 0.946309},{-0.131045, 0.37614, 0.917249},{-0.131045, 0.45396, 0.881333},{-0.131045, 0.528386, 0.83883},{-0.131045, 0.598863, 0.790057},{-0.131045, 0.664864, 0.735379},{-0.131045, 0.725896, 0.675205},{-0.131045, 0.781503, 0.609984}},
{{-0.25983, 0.721281, 0.64206},{-0.25983, 0.661511, 0.703485},{-0.25983, 0.59653, 0.759368},{-0.25983, 0.52685, 0.80927},{-0.25983, 0.453019, 0.852796},{-0.25983, 0.375621, 0.889605},{-0.25983, 0.295263, 0.919406},{-0.25983, 0.212579, 0.941965},{-0.25983, 0.128221, 0.957104},{-0.25983, 0.0428528, 0.964703},{-0.25983, -0.0428529, 0.964703},{-0.25983, -0.128221, 0.957104},{-0.25983, -0.212579, 0.941965},{-0.25983, -0.295263, 0.919406},{-0.25983, -0.375621, 0.889605},{-0.25983, -0.453019, 0.852796},{-0.25983, -0.52685, 0.80927},{-0.25983, -0.59653, 0.759368},{-0.25983, -0.661511, 0.703485},{-0.25983, -0.721281, 0.64206},{0,0,0},{0,0,0}},
{{-0.384134, -0.684874, 0.619184},{-0.384134, -0.624509, 0.680021},{-0.384134, -0.558763, 0.735},{-0.384134, -0.488203, 0.783645},{-0.384134, -0.413436, 0.825537},{-0.384134, -0.335106, 0.860317},{-0.384134, -0.25389, 0.887683},{-0.384134, -0.170485, 0.907401},{-0.384134, -0.0856113, 0.9193},{-0.384134, -1.6791e-08, 0.923277},{-0.384134, 0.0856113, 0.9193},{-0.384134, 0.170485, 0.907401},{-0.384134, 0.253889, 0.887683},{-0.384134, 0.335106, 0.860317},{-0.384134, 0.413436, 0.825537},{-0.384134, 0.488203, 0.783645},{-0.384134, 0.558763, 0.735},{-0.384134, 0.624509, 0.680021},{-0.384134, 0.684874, 0.619184},{0,0,0},{0,0,0},{0,0,0}},
{{-0.501813, 0.585398, 0.636783},{-0.501813, 0.519512, 0.691586},{-0.501813, 0.448526, 0.7396},{-0.501813, 0.373138, 0.780354},{-0.501813, 0.294086, 0.813448},{-0.501813, 0.212148, 0.838557},{-0.501813, 0.128128, 0.855434},{-0.501813, 0.0428494, 0.863914},{-0.501813, -0.0428495, 0.863914},{-0.501813, -0.128128, 0.855434},{-0.501813, -0.212148, 0.838557},{-0.501813, -0.294087, 0.813448},{-0.501813, -0.373138, 0.780354},{-0.501813, -0.448526, 0.7396},{-0.501813, -0.519512, 0.691586},{-0.501813, -0.585398, 0.636784},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}
},{{{-0.501813, 0.585398, -0.636783},{-0.501813, 0.519512, -0.691586},{-0.501813, 0.448526, -0.7396},{-0.501813, 0.373138, -0.780354},{-0.501813, 0.294086, -0.813448},{-0.501813, 0.212148, -0.838557},{-0.501813, 0.128128, -0.855434},{-0.501813, 0.0428494, -0.863914},{-0.501813, -0.0428495, -0.863914},{-0.501813, -0.128128, -0.855434},{-0.501813, -0.212148, -0.838557},{-0.501813, -0.294087, -0.813448},{-0.501813, -0.373138, -0.780354},{-0.501813, -0.448526, -0.7396},{-0.501813, -0.519512, -0.691586},{-0.501813, -0.585398, -0.636784},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
{{-0.384134, -0.684874, -0.619184},{-0.384134, -0.624509, -0.680021},{-0.384134, -0.558763, -0.735},{-0.384134, -0.488203, -0.783645},{-0.384134, -0.413436, -0.825537},{-0.384134, -0.335106, -0.860317},{-0.384134, -0.25389, -0.887683},{-0.384134, -0.170485, -0.907401},{-0.384134, -0.0856113, -0.9193},{-0.384134, -1.6791e-08, -0.923277},{-0.384134, 0.0856113, -0.9193},{-0.384134, 0.170485, -0.907401},{-0.384134, 0.253889, -0.887683},{-0.384134, 0.335106, -0.860317},{-0.384134, 0.413436, -0.825537},{-0.384134, 0.488203, -0.783645},{-0.384134, 0.558763, -0.735},{-0.384134, 0.624509, -0.680021},{-0.384134, 0.684874, -0.619184},{0,0,0},{0,0,0},{0,0,0}},
{{-0.25983, 0.721281, -0.64206},{-0.25983, 0.661511, -0.703485},{-0.25983, 0.59653, -0.759368},{-0.25983, 0.52685, -0.80927},{-0.25983, 0.453019, -0.852796},{-0.25983, 0.375621, -0.889605},{-0.25983, 0.295263, -0.919406},{-0.25983, 0.212579, -0.941965},{-0.25983, 0.128221, -0.957104},{-0.25983, 0.0428528, -0.964703},{-0.25983, -0.0428529, -0.964703},{-0.25983, -0.128221, -0.957104},{-0.25983, -0.212579, -0.941965},{-0.25983, -0.295263, -0.919406},{-0.25983, -0.375621, -0.889605},{-0.25983, -0.453019, -0.852796},{-0.25983, -0.52685, -0.80927},{-0.25983, -0.59653, -0.759368},{-0.25983, -0.661511, -0.703485},{-0.25983, -0.721281, -0.64206},{0,0,0},{0,0,0}},
{{-0.131045, -0.781502, -0.609984},{-0.131045, -0.725896, -0.675205},{-0.131045, -0.664864, -0.735379},{-0.131045, -0.598863, -0.790057},{-0.131045, -0.528386, -0.83883},{-0.131045, -0.45396, -0.881333},{-0.131045, -0.37614, -0.917249},{-0.131045, -0.295509, -0.946309},{-0.131045, -0.21267, -0.968297},{-0.131045, -0.128241, -0.983047},{-0.131045, -0.0428538, -0.99045},{-0.131045, 0.0428539, -0.99045},{-0.131045, 0.128241, -0.983047},{-0.131045, 0.21267, -0.968297},{-0.131045, 0.29551, -0.946309},{-0.131045, 0.37614, -0.917249},{-0.131045, 0.45396, -0.881333},{-0.131045, 0.528386, -0.83883},{-0.131045, 0.598863, -0.790057},{-0.131045, 0.664864, -0.735379},{-0.131045, 0.725896, -0.675205},{-0.131045, 0.781503, -0.609984}},
{{-7.08151e-09, 0.783455, -0.621449},{-1.797e-09, 0.727363, -0.686253},{3.5007e-09, 0.665929, -0.746015},{8.77269e-09, 0.599602, -0.800298},{1.39802e-08, 0.528871, -0.848702},{1.90851e-08, 0.454256, -0.890871},{2.40497e-08, 0.376303, -0.926497},{2.88377e-08, 0.295586, -0.955316},{3.34139e-08, 0.212697, -0.977118},{3.77446e-08, 0.128247, -0.991742},{4.1798e-08, 0.0428538, -0.999081},{4.55444e-08, -0.0428538, -0.999081},{4.89563e-08, -0.128247, -0.991742},{5.20085e-08, -0.212697, -0.977118},{5.46787e-08, -0.295586, -0.955316},{5.69472e-08, -0.376303, -0.926497},{5.87974e-08, -0.454256, -0.890871},{6.02157e-08, -0.528872, -0.848702},{6.11916e-08, -0.599602, -0.800298},{6.1718e-08, -0.665929, -0.746015},{6.17911e-08, -0.727363, -0.686253},{6.14103e-08, -0.783455, -0.621449}},
{{0.131045, -0.781502, -0.609984},{0.131045, -0.725896, -0.675205},{0.131045, -0.664864, -0.735379},{0.131045, -0.598863, -0.790057},{0.131045, -0.528386, -0.83883},{0.131045, -0.45396, -0.881333},{0.131045, -0.37614, -0.917249},{0.131045, -0.295509, -0.946309},{0.131045, -0.21267, -0.968297},{0.131045, -0.128241, -0.983047},{0.131045, -0.0428538, -0.99045},{0.131045, 0.0428539, -0.99045},{0.131045, 0.128241, -0.983047},{0.131045, 0.21267, -0.968297},{0.131045, 0.29551, -0.946309},{0.131045, 0.37614, -0.917249},{0.131045, 0.45396, -0.881333},{0.131045, 0.528386, -0.83883},{0.131045, 0.598863, -0.790057},{0.131045, 0.664864, -0.735379},{0.131045, 0.725896, -0.675205},{0.131045, 0.781503, -0.609984}},
{{0.25983, 0.721281, -0.64206},{0.25983, 0.661511, -0.703485},{0.25983, 0.59653, -0.759368},{0.25983, 0.52685, -0.80927},{0.25983, 0.453019, -0.852796},{0.25983, 0.375621, -0.889605},{0.25983, 0.295263, -0.919406},{0.25983, 0.212579, -0.941965},{0.25983, 0.128221, -0.957104},{0.25983, 0.0428529, -0.964703},{0.25983, -0.0428529, -0.964703},{0.25983, -0.128221, -0.957104},{0.25983, -0.212579, -0.941965},{0.259831, -0.295263, -0.919406},{0.25983, -0.375621, -0.889605},{0.259831, -0.453019, -0.852796},{0.259831, -0.52685, -0.80927},{0.25983, -0.59653, -0.759368},{0.25983, -0.661511, -0.703485},{0.25983, -0.721281, -0.64206},{0,0,0},{0,0,0}},
{{0.384134, -0.684874, -0.619184},{0.384134, -0.624509, -0.680021},{0.384134, -0.558763, -0.735},{0.384134, -0.488203, -0.783645},{0.384134, -0.413436, -0.825537},{0.384134, -0.335106, -0.860317},{0.384134, -0.253889, -0.887683},{0.384134, -0.170485, -0.907401},{0.384134, -0.0856113, -0.919299},{0.384134, 1.6791e-08, -0.923277},{0.384134, 0.0856113, -0.919299},{0.384134, 0.170485, -0.907401},{0.384134, 0.253889, -0.887683},{0.384134, 0.335106, -0.860317},{0.384134, 0.413436, -0.825537},{0.384134, 0.488203, -0.783645},{0.384134, 0.558763, -0.735},{0.384134, 0.624509, -0.680021},{0.384134, 0.684874, -0.619184},{0,0,0},{0,0,0},{0,0,0}},
{{0.501813, 0.585398, -0.636783},{0.501813, 0.519512, -0.691586},{0.501813, 0.448526, -0.7396},{0.501813, 0.373138, -0.780354},{0.501813, 0.294086, -0.813448},{0.501813, 0.212148, -0.838557},{0.501813, 0.128128, -0.855434},{0.501813, 0.0428495, -0.863914},{0.501813, -0.0428495, -0.863914},{0.501813, -0.128128, -0.855434},{0.501813, -0.212148, -0.838557},{0.501813, -0.294086, -0.813448},{0.501813, -0.373138, -0.780354},{0.501813, -0.448526, -0.7396},{0.501813, -0.519512, -0.691586},{0.501813, -0.585398, -0.636783},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}
},{{{-0.636784, 0.501813, -0.585398},{-0.691586, 0.501813, -0.519512},{-0.7396, 0.501813, -0.448526},{-0.780354, 0.501813, -0.373138},{-0.813448, 0.501813, -0.294086},{-0.838557, 0.501813, -0.212148},{-0.855434, 0.501813, -0.128128},{-0.863914, 0.501813, -0.0428494},{-0.863914, 0.501813, 0.0428495},{-0.855434, 0.501813, 0.128128},{-0.838557, 0.501813, 0.212148},{-0.813448, 0.501813, 0.294087},{-0.780354, 0.501813, 0.373138},{-0.7396, 0.501813, 0.448526},{-0.691586, 0.501813, 0.519512},{-0.636783, 0.501813, 0.585398},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
{{-0.619184, 0.384134, 0.684874},{-0.680021, 0.384134, 0.624509},{-0.734999, 0.384134, 0.558764},{-0.783644, 0.384134, 0.488203},{-0.825537, 0.384134, 0.413436},{-0.860317, 0.384134, 0.335106},{-0.887683, 0.384134, 0.25389},{-0.907401, 0.384134, 0.170485},{-0.919299, 0.384134, 0.0856113},{-0.923277, 0.384134, 2.35667e-08},{-0.9193, 0.384134, -0.0856113},{-0.907401, 0.384134, -0.170485},{-0.887683, 0.384134, -0.253889},{-0.860317, 0.384134, -0.335106},{-0.825537, 0.384134, -0.413436},{-0.783645, 0.384134, -0.488203},{-0.735, 0.384134, -0.558763},{-0.680021, 0.384134, -0.624509},{-0.619184, 0.384134, -0.684874},{0,0,0},{0,0,0},{0,0,0}},
{{-0.642061, 0.25983, -0.721281},{-0.703485, 0.25983, -0.661511},{-0.759368, 0.25983, -0.59653},{-0.80927, 0.25983, -0.52685},{-0.852796, 0.25983, -0.453019},{-0.889605, 0.25983, -0.375621},{-0.919406, 0.25983, -0.295263},{-0.941965, 0.25983, -0.212579},{-0.957104, 0.25983, -0.128221},{-0.964703, 0.25983, -0.0428528},{-0.964703, 0.25983, 0.0428529},{-0.957104, 0.25983, 0.128221},{-0.941965, 0.25983, 0.212579},{-0.919406, 0.25983, 0.295263},{-0.889605, 0.25983, 0.375621},{-0.852796, 0.25983, 0.453019},{-0.80927, 0.25983, 0.52685},{-0.759368, 0.25983, 0.59653},{-0.703485, 0.25983, 0.661511},{-0.64206, 0.25983, 0.721281},{0,0,0},{0,0,0}},
{{-0.609984, 0.131045, 0.781503},{-0.675205, 0.131045, 0.725896},{-0.735379, 0.131045, 0.664864},{-0.790057, 0.131045, 0.598863},{-0.83883, 0.131045, 0.528386},{-0.881333, 0.131045, 0.45396},{-0.917249, 0.131045, 0.37614},{-0.946309, 0.131045, 0.29551},{-0.968297, 0.131045, 0.21267},{-0.983047, 0.131045, 0.128241},{-0.99045, 0.131045, 0.0428539},{-0.99045, 0.131045, -0.0428539},{-0.983047, 0.131045, -0.128241},{-0.968297, 0.131045, -0.21267},{-0.946309, 0.131045, -0.29551},{-0.917249, 0.131045, -0.37614},{-0.881333, 0.131045, -0.45396},{-0.83883, 0.131045, -0.528386},{-0.790057, 0.131045, -0.598863},{-0.735379, 0.131045, -0.664864},{-0.675205, 0.131045, -0.725896},{-0.609984, 0.131045, -0.781503}},
{{-0.621449, -3.42459e-08, -0.783455},{-0.686253, -3.17941e-08, -0.727363},{-0.746015, -2.91087e-08, -0.665929},{-0.800298, -2.62095e-08, -0.599602},{-0.848702, -2.31177e-08, -0.528871},{-0.890871, -1.98561e-08, -0.454256},{-0.926497, -1.64487e-08, -0.376303},{-0.955316, -1.29205e-08, -0.295586},{-0.977118, -9.29729e-09, -0.212697},{-0.991742, -5.60583e-09, -0.128247},{-0.999081, -1.8732e-09, -0.0428538},{-0.999081, 1.8732e-09, 0.0428538},{-0.991742, 5.60585e-09, 0.128247},{-0.977118, 9.29731e-09, 0.212698},{-0.955316, 1.29205e-08, 0.295586},{-0.926497, 1.64487e-08, 0.376303},{-0.890871, 1.98561e-08, 0.454256},{-0.848702, 2.31177e-08, 0.528872},{-0.800298, 2.62095e-08, 0.599603},{-0.746015, 2.91087e-08, 0.665929},{-0.686252, 3.17941e-08, 0.727363},{-0.621449, 3.42459e-08, 0.783455}},
{{-0.609984, -0.131045, 0.781503},{-0.675205, -0.131045, 0.725896},{-0.735379, -0.131045, 0.664864},{-0.790057, -0.131045, 0.598863},{-0.83883, -0.131045, 0.528386},{-0.881333, -0.131045, 0.45396},{-0.917249, -0.131045, 0.37614},{-0.946309, -0.131045, 0.29551},{-0.968297, -0.131045, 0.21267},{-0.983047, -0.131045, 0.128241},{-0.99045, -0.131045, 0.0428539},{-0.99045, -0.131045, -0.0428539},{-0.983047, -0.131045, -0.128241},{-0.968297, -0.131045, -0.21267},{-0.946309, -0.131045, -0.29551},{-0.917249, -0.131045, -0.37614},{-0.881333, -0.131045, -0.45396},{-0.83883, -0.131045, -0.528386},{-0.790057, -0.131045, -0.598863},{-0.735379, -0.131045, -0.664864},{-0.675205, -0.131045, -0.725896},{-0.609984, -0.131045, -0.781503}},
{{-0.64206, -0.25983, -0.721281},{-0.703485, -0.25983, -0.661511},{-0.759368, -0.25983, -0.59653},{-0.80927, -0.25983, -0.52685},{-0.852796, -0.25983, -0.453019},{-0.889605, -0.25983, -0.375621},{-0.919406, -0.25983, -0.295263},{-0.941965, -0.25983, -0.212579},{-0.957104, -0.25983, -0.128221},{-0.964703, -0.25983, -0.0428528},{-0.964703, -0.25983, 0.042853},{-0.957104, -0.25983, 0.128221},{-0.941965, -0.25983, 0.212579},{-0.919406, -0.25983, 0.295263},{-0.889605, -0.25983, 0.375621},{-0.852796, -0.25983, 0.453019},{-0.80927, -0.25983, 0.52685},{-0.759368, -0.25983, 0.59653},{-0.703485, -0.25983, 0.661511},{-0.64206, -0.25983, 0.721281},{0,0,0},{0,0,0}},
{{-0.619184, -0.384134, 0.684874},{-0.680021, -0.384134, 0.624509},{-0.734999, -0.384134, 0.558764},{-0.783645, -0.384134, 0.488203},{-0.825537, -0.384134, 0.413436},{-0.860317, -0.384134, 0.335107},{-0.887683, -0.384134, 0.25389},{-0.907401, -0.384134, 0.170485},{-0.919299, -0.384134, 0.0856114},{-0.923277, -0.384134, 5.71488e-08},{-0.9193, -0.384134, -0.0856113},{-0.907401, -0.384134, -0.170485},{-0.887683, -0.384134, -0.253889},{-0.860317, -0.384134, -0.335106},{-0.825537, -0.384134, -0.413436},{-0.783645, -0.384134, -0.488203},{-0.735, -0.384134, -0.558763},{-0.680021, -0.384134, -0.624509},{-0.619184, -0.384134, -0.684874},{0,0,0},{0,0,0},{0,0,0}},
{{-0.636784, -0.501813, -0.585398},{-0.691586, -0.501813, -0.519512},{-0.7396, -0.501813, -0.448526},{-0.780354, -0.501813, -0.373138},{-0.813448, -0.501813, -0.294086},{-0.838557, -0.501813, -0.212148},{-0.855434, -0.501813, -0.128128},{-0.863914, -0.501813, -0.0428494},{-0.863914, -0.501813, 0.0428496},{-0.855434, -0.501813, 0.128128},{-0.838557, -0.501813, 0.212148},{-0.813448, -0.501813, 0.294087},{-0.780354, -0.501813, 0.373138},{-0.7396, -0.501813, 0.448526},{-0.691586, -0.501813, 0.519512},{-0.636783, -0.501813, 0.585398},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}
},{{{0.636783, 0.501813, 0.585398},{0.691586, 0.501813, 0.519512},{0.7396, 0.501813, 0.448526},{0.780354, 0.501813, 0.373138},{0.813448, 0.501813, 0.294086},{0.838557, 0.501813, 0.212148},{0.855434, 0.501813, 0.128128},{0.863914, 0.501813, 0.0428495},{0.863914, 0.501813, -0.0428495},{0.855434, 0.501813, -0.128128},{0.838557, 0.501813, -0.212148},{0.813448, 0.501813, -0.294086},{0.780354, 0.501813, -0.373138},{0.7396, 0.501813, -0.448526},{0.691586, 0.501813, -0.519512},{0.636784, 0.501813, -0.585398},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
{{0.619184, 0.384134, -0.684874},{0.680021, 0.384134, -0.624509},{0.735, 0.384134, -0.558763},{0.783645, 0.384134, -0.488203},{0.825537, 0.384134, -0.413436},{0.860317, 0.384134, -0.335106},{0.887683, 0.384134, -0.25389},{0.907401, 0.384134, -0.170485},{0.919299, 0.384134, -0.0856113},{0.923277, 0.384134, 2.35667e-08},{0.9193, 0.384134, 0.0856113},{0.907401, 0.384134, 0.170485},{0.887683, 0.384134, 0.253889},{0.860317, 0.384134, 0.335106},{0.825537, 0.384134, 0.413436},{0.783644, 0.384134, 0.488203},{0.735, 0.384134, 0.558763},{0.680021, 0.384134, 0.624509},{0.619184, 0.384134, 0.684874},{0,0,0},{0,0,0},{0,0,0}},
{{0.64206, 0.25983, 0.721281},{0.703485, 0.25983, 0.661511},{0.759368, 0.25983, 0.59653},{0.80927, 0.25983, 0.52685},{0.852796, 0.25983, 0.453019},{0.889605, 0.25983, 0.375621},{0.919406, 0.25983, 0.295263},{0.941965, 0.25983, 0.212579},{0.957104, 0.25983, 0.128221},{0.964703, 0.25983, 0.0428529},{0.964703, 0.25983, -0.0428529},{0.957104, 0.25983, -0.128221},{0.941965, 0.25983, -0.212579},{0.919406, 0.25983, -0.295263},{0.889605, 0.25983, -0.375621},{0.852796, 0.25983, -0.453019},{0.80927, 0.25983, -0.52685},{0.759368, 0.25983, -0.59653},{0.703485, 0.25983, -0.661511},{0.64206, 0.25983, -0.721281},{0,0,0},{0,0,0}},
{{0.609984, 0.131045, -0.781502},{0.675205, 0.131045, -0.725896},{0.735379, 0.131045, -0.664864},{0.790057, 0.131045, -0.598863},{0.83883, 0.131045, -0.528386},{0.881333, 0.131045, -0.45396},{0.917249, 0.131045, -0.37614},{0.946309, 0.131045, -0.295509},{0.968297, 0.131045, -0.21267},{0.983047, 0.131045, -0.128241},{0.99045, 0.131045, -0.0428538},{0.99045, 0.131045, 0.042854},{0.983047, 0.131045, 0.128241},{0.968297, 0.131045, 0.21267},{0.946309, 0.131045, 0.29551},{0.917249, 0.131045, 0.37614},{0.881333, 0.131045, 0.45396},{0.83883, 0.131045, 0.528386},{0.790057, 0.131045, 0.598863},{0.735379, 0.131045, 0.664864},{0.675205, 0.131045, 0.725896},{0.609984, 0.131045, 0.781503}},
{{0.621449, 3.42459e-08, 0.783455},{0.686253, 3.17941e-08, 0.727363},{0.746015, 2.91087e-08, 0.665929},{0.800298, 2.62095e-08, 0.599602},{0.848702, 2.31177e-08, 0.528872},{0.890871, 1.98561e-08, 0.454256},{0.926497, 1.64487e-08, 0.376303},{0.955316, 1.29205e-08, 0.295586},{0.977118, 9.2973e-09, 0.212697},{0.991742, 5.60584e-09, 0.128247},{0.999081, 1.8732e-09, 0.0428539},{0.999081, -1.8732e-09, -0.0428538},{0.991742, -5.60584e-09, -0.128247},{0.977118, -9.2973e-09, -0.212697},{0.955316, -1.29205e-08, -0.295586},{0.926497, -1.64487e-08, -0.376303},{0.890871, -1.98561e-08, -0.454256},{0.848702, -2.31177e-08, -0.528872},{0.800298, -2.62095e-08, -0.599602},{0.746015, -2.91087e-08, -0.665929},{0.686253, -3.17941e-08, -0.727363},{0.621449, -3.42459e-08, -0.783455}},
{{0.609984, -0.131045, -0.781502},{0.675205, -0.131045, -0.725896},{0.735379, -0.131045, -0.664864},{0.790057, -0.131045, -0.598863},{0.83883, -0.131045, -0.528386},{0.881333, -0.131045, -0.45396},{0.917249, -0.131045, -0.37614},{0.946309, -0.131045, -0.295509},{0.968297, -0.131045, -0.21267},{0.983047, -0.131045, -0.128241},{0.99045, -0.131045, -0.0428538},{0.99045, -0.131045, 0.042854},{0.983047, -0.131045, 0.128241},{0.968297, -0.131045, 0.21267},{0.946309, -0.131045, 0.29551},{0.917249, -0.131045, 0.37614},{0.881333, -0.131045, 0.45396},{0.83883, -0.131045, 0.528386},{0.790057, -0.131045, 0.598863},{0.735379, -0.131045, 0.664864},{0.675205, -0.131045, 0.725896},{0.609984, -0.131045, 0.781503}},
{{0.64206, -0.25983, 0.721281},{0.703485, -0.25983, 0.661511},{0.759368, -0.25983, 0.59653},{0.80927, -0.25983, 0.52685},{0.852796, -0.25983, 0.453019},{0.889605, -0.25983, 0.375621},{0.919406, -0.25983, 0.295263},{0.941965, -0.25983, 0.212579},{0.957104, -0.25983, 0.128221},{0.964703, -0.25983, 0.0428529},{0.964703, -0.25983, -0.0428528},{0.957104, -0.25983, -0.128221},{0.941965, -0.25983, -0.212579},{0.919406, -0.25983, -0.295263},{0.889605, -0.25983, -0.375621},{0.852796, -0.25983, -0.453019},{0.80927, -0.25983, -0.52685},{0.759368, -0.25983, -0.59653},{0.703485, -0.25983, -0.661511},{0.64206, -0.25983, -0.721281},{0,0,0},{0,0,0}},
{{0.619184, -0.384134, -0.684874},{0.680021, -0.384134, -0.624509},{0.735, -0.384134, -0.558763},{0.783645, -0.384134, -0.488203},{0.825537, -0.384134, -0.413436},{0.860317, -0.384134, -0.335106},{0.887683, -0.384134, -0.253889},{0.907401, -0.384134, -0.170485},{0.919299, -0.384134, -0.0856113},{0.923277, -0.384134, 5.71488e-08},{0.9193, -0.384134, 0.0856114},{0.907401, -0.384134, 0.170485},{0.887683, -0.384134, 0.25389},{0.860317, -0.384134, 0.335106},{0.825537, -0.384134, 0.413436},{0.783645, -0.384134, 0.488203},{0.735, -0.384134, 0.558763},{0.680021, -0.384134, 0.624509},{0.619184, -0.384134, 0.684874},{0,0,0},{0,0,0},{0,0,0}},
{{0.636783, -0.501813, 0.585398},{0.691586, -0.501813, 0.519512},{0.7396, -0.501813, 0.448526},{0.780354, -0.501813, 0.373138},{0.813448, -0.501813, 0.294087},{0.838557, -0.501813, 0.212148},{0.855434, -0.501813, 0.128128},{0.863914, -0.501813, 0.0428495},{0.863914, -0.501813, -0.0428495},{0.855434, -0.501813, -0.128128},{0.838557, -0.501813, -0.212148},{0.813448, -0.501813, -0.294086},{0.780354, -0.501813, -0.373138},{0.7396, -0.501813, -0.448526},{0.691586, -0.501813, -0.519512},{0.636784, -0.501813, -0.585398},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}
},{{{0.585398, -0.636783, -0.501813},{0.519512, -0.691586, -0.501813},{0.448526, -0.7396, -0.501813},{0.373138, -0.780354, -0.501813},{0.294086, -0.813448, -0.501813},{0.212148, -0.838557, -0.501813},{0.128128, -0.855434, -0.501813},{0.0428495, -0.863914, -0.501813},{-0.0428495, -0.863914, -0.501813},{-0.128128, -0.855434, -0.501813},{-0.212148, -0.838557, -0.501813},{-0.294086, -0.813448, -0.501813},{-0.373138, -0.780354, -0.501813},{-0.448526, -0.7396, -0.501813},{-0.519512, -0.691586, -0.501813},{-0.585398, -0.636783, -0.501813},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}},
{{-0.684874, -0.619184, -0.384134},{-0.624509, -0.680021, -0.384134},{-0.558763, -0.734999, -0.384134},{-0.488203, -0.783644, -0.384134},{-0.413436, -0.825537, -0.384134},{-0.335106, -0.860317, -0.384134},{-0.253889, -0.887683, -0.384134},{-0.170485, -0.907401, -0.384134},{-0.0856113, -0.919299, -0.384134},{0, -0.923277, -0.384134},{0.0856113, -0.919299, -0.384134},{0.170485, -0.907401, -0.384134},{0.253889, -0.887683, -0.384134},{0.335106, -0.860317, -0.384134},{0.413436, -0.825537, -0.384134},{0.488203, -0.783644, -0.384134},{0.558763, -0.735, -0.384134},{0.624509, -0.680021, -0.384134},{0.684874, -0.619184, -0.384134},{0,0,0},{0,0,0},{0,0,0}},
{{0.721281, -0.64206, -0.25983},{0.661511, -0.703485, -0.25983},{0.59653, -0.759368, -0.25983},{0.52685, -0.80927, -0.25983},{0.453019, -0.852796, -0.25983},{0.375621, -0.889605, -0.25983},{0.295263, -0.919406, -0.25983},{0.212579, -0.941965, -0.25983},{0.128221, -0.957104, -0.25983},{0.0428528, -0.964703, -0.259831},{-0.0428529, -0.964703, -0.259831},{-0.128221, -0.957104, -0.259831},{-0.212579, -0.941965, -0.25983},{-0.295263, -0.919406, -0.25983},{-0.375621, -0.889605, -0.25983},{-0.453019, -0.852796, -0.25983},{-0.52685, -0.80927, -0.25983},{-0.59653, -0.759368, -0.25983},{-0.661511, -0.703485, -0.25983},{-0.721281, -0.64206, -0.25983},{0,0,0},{0,0,0}},
{{-0.781503, -0.609984, -0.131045},{-0.725896, -0.675205, -0.131045},{-0.664864, -0.735379, -0.131045},{-0.598863, -0.790057, -0.131045},{-0.528386, -0.83883, -0.131045},{-0.45396, -0.881333, -0.131045},{-0.37614, -0.917249, -0.131045},{-0.295509, -0.946309, -0.131045},{-0.21267, -0.968297, -0.131045},{-0.128241, -0.983047, -0.131045},{-0.0428538, -0.99045, -0.131045},{0.0428539, -0.99045, -0.131045},{0.128241, -0.983047, -0.131045},{0.21267, -0.968297, -0.131045},{0.29551, -0.946309, -0.131045},{0.37614, -0.917249, -0.131045},{0.45396, -0.881333, -0.131045},{0.528386, -0.83883, -0.131045},{0.598863, -0.790057, -0.131045},{0.664864, -0.735379, -0.131045},{0.725896, -0.675205, -0.131045},{0.781503, -0.609984, -0.131045}},
{{0.783455, -0.621449, -5.43288e-08},{0.727363, -0.686253, -5.99941e-08},{0.665929, -0.746015, -6.52187e-08},{0.599602, -0.800298, -6.99643e-08},{0.528871, -0.848702, -7.41959e-08},{0.454256, -0.890871, -7.78825e-08},{0.376303, -0.926497, -8.09969e-08},{0.295586, -0.955316, -8.35164e-08},{0.212697, -0.977118, -8.54224e-08},{0.128247, -0.991742, -8.67009e-08},{0.0428538, -0.999081, -8.73425e-08},{-0.0428538, -0.999081, -8.73425e-08},{-0.128247, -0.991742, -8.67009e-08},{-0.212697, -0.977118, -8.54224e-08},{-0.295586, -0.955316, -8.35164e-08},{-0.376303, -0.926497, -8.09969e-08},{-0.454256, -0.890871, -7.78825e-08},{-0.528872, -0.848702, -7.41959e-08},{-0.599602, -0.800298, -6.99643e-08},{-0.665929, -0.746015, -6.52187e-08},{-0.727363, -0.686253, -5.99941e-08},{-0.783455, -0.621449, -5.43288e-08}},
{{-0.781503, -0.609984, 0.131045},{-0.725896, -0.675205, 0.131045},{-0.664864, -0.735379, 0.131045},{-0.598863, -0.790057, 0.131045},{-0.528386, -0.83883, 0.131045},{-0.45396, -0.881333, 0.131045},{-0.37614, -0.917249, 0.131045},{-0.295509, -0.946309, 0.131045},{-0.21267, -0.968297, 0.131045},{-0.128241, -0.983047, 0.131045},{-0.0428538, -0.99045, 0.131045},{0.0428539, -0.99045, 0.131045},{0.128241, -0.983047, 0.131045},{0.21267, -0.968297, 0.131045},{0.29551, -0.946309, 0.131045},{0.37614, -0.917249, 0.131045},{0.45396, -0.881333, 0.131045},{0.528386, -0.83883, 0.131045},{0.598863, -0.790057, 0.131045},{0.664864, -0.735379, 0.131045},{0.725896, -0.675205, 0.131045},{0.781503, -0.609984, 0.131045}},
{{0.721281, -0.64206, 0.25983},{0.661511, -0.703485, 0.25983},{0.59653, -0.759368, 0.25983},{0.52685, -0.80927, 0.25983},{0.453019, -0.852796, 0.25983},{0.375621, -0.889605, 0.25983},{0.295263, -0.919406, 0.25983},{0.212579, -0.941965, 0.25983},{0.128221, -0.957104, 0.25983},{0.0428528, -0.964703, 0.25983},{-0.0428529, -0.964703, 0.25983},{-0.128221, -0.957104, 0.25983},{-0.212579, -0.941965, 0.25983},{-0.295263, -0.919406, 0.25983},{-0.375621, -0.889605, 0.25983},{-0.453019, -0.852796, 0.25983},{-0.52685, -0.80927, 0.25983},{-0.59653, -0.759368, 0.25983},{-0.661511, -0.703485, 0.25983},{-0.721281, -0.64206, 0.25983},{0,0,0},{0,0,0}},
{{-0.684874, -0.619184, 0.384134},{-0.624509, -0.680021, 0.384134},{-0.558763, -0.735, 0.384134},{-0.488203, -0.783645, 0.384134},{-0.413436, -0.825537, 0.384134},{-0.335106, -0.860317, 0.384134},{-0.25389, -0.887683, 0.384134},{-0.170485, -0.907401, 0.384134},{-0.0856113, -0.9193, 0.384134},{0, -0.923277, 0.384134},{0.0856113, -0.9193, 0.384134},{0.170485, -0.907401, 0.384134},{0.253889, -0.887683, 0.384134},{0.335106, -0.860317, 0.384134},{0.413436, -0.825537, 0.384134},{0.488203, -0.783645, 0.384134},{0.558763, -0.735, 0.384134},{0.624509, -0.680021, 0.384134},{0.684874, -0.619184, 0.384134},{0,0,0},{0,0,0},{0,0,0}},
{{0.585398, -0.636784, 0.501813},{0.519512, -0.691586, 0.501813},{0.448526, -0.7396, 0.501813},{0.373138, -0.780354, 0.501813},{0.294086, -0.813448, 0.501813},{0.212148, -0.838557, 0.501813},{0.128128, -0.855434, 0.501813},{0.0428495, -0.863914, 0.501813},{-0.0428495, -0.863914, 0.501813},{-0.128128, -0.855434, 0.501813},{-0.212148, -0.838557, 0.501813},{-0.294086, -0.813448, 0.501813},{-0.373138, -0.780354, 0.501813},{-0.448526, -0.7396, 0.501813},{-0.519512, -0.691586, 0.501813},{-0.585398, -0.636784, 0.501813},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}}};

SDFileSystem sd(p11, p12, p13, p14, "sd"); // the pinout on the mbed Cool Components workshop board
Serial pc(USBTX, USBRX); // tx, rx
FILE *fp;
float z_ganma=0;
float z_kijun_ganma=0;

RawSerial device(p28, p27); // serial communication between robot and mbed: speed,angle,led status received
struct robotData {
    float speed;
    float angle;
    uint8_t led;  // receive-data: 0,33=1,34=2,35=3
    uint8_t status;
} robotData = { 0,0,33,0 };
//LocalFileSystem local("local");               // Create the local filesystem under the name "local"

//const int byte_num = 114;//3*19  *2上下            // CSVから一度に読み込むバイト数 // 改行2バイト分読み込みをどこかで考える(アスキーコード 13と10)

//int rState = 3;  // シリアル値によって変化
bool ontime = false;
unsigned char compareT_b[3];
unsigned long compareT = 0;//比較する数値
//unsigned long diff_time = 0;//時間調整用
//unsigned long start_time = 0;//時間調整用
Timer timer;
float cos_theta;

RotationMat rMat;

Vector3D position_vec(0,0,0);
Vector3D target_vec(0,1,0);
Vector3D rAxis(1,0,0);
const Vector3D xAxis(1,0,0);
const Vector3D yAxis(0,1,0);
const Vector3D zAxis(0,0,1);

float angular_velocity=10;
float kaiten;
float pretime=0;
float x_=0;
float y_=0;
float z_=0;

short longtitude;
short latitude;

float angles;

#define LED_0_8_NUM 16
#define LED_1_7_NUM 19
#define LED_2_6_NUM 20
#define LED_3_4_5_NUM 22
#define NUMPIXELS 178
#define NUM_LINE 9
#define NUM_TAPE 6
Adafruit_DotStar strip(NUMPIXELS, DOTSTAR_RGB);

DigitalOut decoder_in_a(p24);
DigitalOut decoder_in_b(p25);
DigitalOut decoder_in_c(p26);


void pc_rx () {
   /*
   pc.putc(pc.getc());
   if(i<TOPNUMPIXELS-2)
   i++;
   else
   i=0;
   
    if(j<BOTTOMNUMPIXELS-2)
   j++;
   else
   j=0;
   */
}

void rx()
{
    uint8_t val = device.getc(), buf = 0;
    // pc.putc(val);
    // pc.putc(val);
    //robotはPCから受けたものをそのまま渡してきてる
    //上位2bitは10 つまり4bytes目
    
    //上位2bitを確認 mode確認
    robotData.status = (val >> 6) & 0x03;
   
   //上位2bitは00の時,speed
    if ((robotData.status == 0x00)) {   
        buf = val & 0x3f;
       // robotData.angle = (float)buf * 5.625;
       robotData.speed=(float)buf*0.03125f;
       // pc.printf("speed=%f\n", (float)buf*0.03125f);
       // pc.putc(robotData.angle);
    }
    //上位2bitは01の時,angle
    if ((robotData.status == 0x01)) {
        buf = val & 0x3f;//1<<6
        if((float)buf==0)
        {
     
        }
        else
        {
            z_ganma=(float)buf*0.09817f;//2*PI/64
            // pc.printf("angle=%f\n", (float)buf*0.09817f);
        }
     
            //pc.printf("angle=%f\n", (float)buf*360.0f/64.0f);
    }
    
    //とりあえず上のbit は10らしい ロボット側のせってい
    if ((robotData.status == 0x02)) {
        //回転決めるために速度送る.
        //上位3bit,4bit目を割り当てる.
        if( ((val>>4) & 0x03) == 0x03)
        {
            buf = (val & 0x0f);
            z_kijun_ganma+= (int)buf;
            //pc.printf("buf=%d\n", (int)buf);
            if(z_kijun_ganma>360)z_kijun_ganma = z_kijun_ganma-360;
        }
    }
}


void selectDecoderCh(unsigned int num_ch)
{
    decoder_in_a = num_ch & 0b1;
    decoder_in_b = (num_ch>>1) & 0b1;
    decoder_in_c = (num_ch>>2) & 0b1;
}


//仮想LEDの回転 
//ロボットから受け取った値と連動させる?
void updateRotation()
{
    rMat.calMat(angular_velocity, rAxis.x, rAxis.y, rAxis.z);
    x_ = target_vec.x;//x
    y_ = target_vec.y;//y
    z_ = target_vec.z;//z
    target_vec.x = rMat.r[0][0]*x_+rMat.r[0][1]*y_+rMat.r[0][2]*z_;
    target_vec.y = rMat.r[1][0]*x_+rMat.r[1][1]*y_+rMat.r[1][2]*z_;
    target_vec.z = rMat.r[2][0]*x_+rMat.r[2][1]*y_+rMat.r[2][2]*z_;
}

void set_strip_color(int i_tape, int i_line, int i_pixel, int i_lednum)
{
    position_vec.x = v_leds[i_tape][i_line][i_pixel][0];
    position_vec.y = v_leds[i_tape][i_line][i_pixel][1];
    position_vec.z = v_leds[i_tape][i_line][i_pixel][2];
    
    //angles =  angle(target_vec , position_vec); 
    cos_theta = MyMath::cos(MyMath::Degrees(40));
    if((position_vec)*(target_vec) < cos_theta) { 
       strip.setPixelColor(i_lednum,100,0,0);
    }
    else
    {
        strip.setPixelColor(i_lednum,0,0,0);
    }
     
}

void init()
{
    pc.baud(115200);
    pc.attach(pc_rx, Serial::RxIrq);
    device.attach(rx, Serial::RxIrq);
    //pc.printf("Hello World!\n");
    /*
    mkdir("/sd/001.txt", 0777);
    fp = fopen("/sd/001.txt","r");
  
    if(fp == NULL) 
    {
      error("Could not open file for read\n");
    }
    */
    timer.start();
    
    strip.begin(); //Initialize
    for(int i_tape=0; i_tape<NUM_TAPE; i_tape++)
    {
        selectDecoderCh(i_tape);
        strip.show();  //Turn all LEDs off ASAP
    }
}

int main() {
    init();
        
    while(1) 
    {  
        //進行方向を回転させる用
        //シリアルで受け取る.
        /*これいる?ワープしちゃう原因?
        x_ = targetvec.x*MyMath::cos(MyMath::Degrees(z_kijun_ganma)) - targetvec.y * MyMath::sin(MyMath::Degrees(z_kijun_ganma));
        y_ = targetvec.x*MyMath::sin(MyMath::Degrees(z_kijun_ganma)) + targetvec.y * MyMath::cos(MyMath::Degrees(z_kijun_ganma));
    
        targetvec.x=x_;
        targetvec.y=y_;
        */
        //回転軸回転させる.
        x_ = rAxis.x*MyMath::cos(MyMath::Degrees(z_kijun_ganma)) - rAxis.y * MyMath::sin(MyMath::Degrees(z_kijun_ganma));
        y_ = rAxis.x*MyMath::sin(MyMath::Degrees(z_kijun_ganma)) + rAxis.y * MyMath::cos(MyMath::Degrees(z_kijun_ganma));
    
        rAxis.x=x_;
        rAxis.y=y_;
    
        //向きに対して
        x_= rAxis.x*MyMath::cos(MyMath::Degrees(z_ganma))-rAxis.y*MyMath::sin(MyMath::Degrees(z_ganma));
        y_= rAxis.x*MyMath::sin(MyMath::Degrees(z_ganma))+rAxis.y*MyMath::cos(MyMath::Degrees(z_ganma));
    
        rAxis.x=x_;
        rAxis.y=y_;
    
        //速度*時間差=直径xPIxθ/360
        //kaiten=(v(t'-t)*360)/(2*PI*R)
        if(timer.read_ms()-pretime>=30)
        {
            kaiten+=(robotData.speed *( (timer.read_ms()-pretime)/1000.0f )* PI_180 ) / 0.09f ;
            if(kaiten>360)kaiten=kaiten-360;
            pretime=timer.read_ms();
        }
        
        //回転行列生成
        updateRotation();
        
        for(int i_tape=0; i_tape<NUM_TAPE; i_tape++)
        {
            selectDecoderCh(i_tape);
            for(int i_line=0; i_line<NUM_LINE; i_line++)
            {
                switch(i_line)
                {
                    case 0:
                        for(int i_pixel =0; i_pixel < LED_0_8_NUM ; i_pixel++)
                        {
                            set_strip_color(i_tape, i_line, i_pixel, i_pixel);
                        }
                    break;
                    case 1:
                         for(int i_pixel =0; i_pixel < LED_1_7_NUM ; i_pixel++)
                         {
                            set_strip_color(i_tape, i_line, i_pixel, i_pixel+16);
                         }
                    break;
                    case 2:
                       for(int i_pixel =0; i_pixel < LED_2_6_NUM ; i_pixel++)
                         {
                             set_strip_color(i_tape, i_line, i_pixel, i_pixel+35);
                         }
                    break;
                    case 3:
                        for(int i_pixel =0; i_pixel < LED_3_4_5_NUM ; i_pixel++)
                        {
                             set_strip_color(i_tape, i_line, i_pixel, i_pixel+55);    
                        }
                    break;
                    case 4:
                        for(int i_pixel =0; i_pixel < LED_3_4_5_NUM ; i_pixel++)
                        {
                             set_strip_color(i_tape, i_line, i_pixel, i_pixel+77);
                        }
                    break;
                    case 5:
                        for(int i_pixel =0; i_pixel < LED_3_4_5_NUM ; i_pixel++)
                         {
                             set_strip_color(i_tape, i_line, i_pixel, i_pixel+99);
                         }
                    break;
                    case 6:
                         for(int i_pixel =0; i_pixel < LED_2_6_NUM ; i_pixel++)
                         {
                              set_strip_color(i_tape, i_line, i_pixel, i_pixel+121);
                        } 
                    break;
                    case 7:
                        for(int i_pixel =0; i_pixel < LED_1_7_NUM ; i_pixel++)
                        {
                             set_strip_color(i_tape, i_line, i_pixel, i_pixel+141);
                        }
                    break;
                    case 8:
                         for(int i_pixel =0; i_pixel < LED_0_8_NUM ; i_pixel++)
                        {
                             set_strip_color(i_tape, i_line, i_pixel, i_pixel+160);
                        }
                    break;
                }
            }
            //白色点灯回避用
            strip.setPixelColor(176,0,0,0);
            strip.setPixelColor(177,0,0,0);
            
            strip.show();
        }
    }
}
   /* for(int i_tape=0; i_tape<NUM_TAPE; i_tape++)
        {
            selectDecoderCh(i_tape);
            for(int i_pixel=0; i_pixel<NUMPIXELS; i_pixel++)
            {
                strip.setPixelColor(i_pixel, 100*i_pixel/NUMPIXELS, 100*(NUMPIXELS-i_pixel)/NUMPIXELS, 0);
            }
            strip.show();
        }
        
        for(int i_tape=0; i_tape<NUM_TAPE; i_tape++)
        {
            selectDecoderCh(i_tape);
            for(int i_pixel=0; i_pixel<NUMPIXELS; i_pixel++)
            {
                strip.setPixelColor(i_pixel, 0, 100*i_pixel/NUMPIXELS, 100*(NUMPIXELS-i_pixel)/NUMPIXELS);
            }
            strip.show();
        }
        */

   /*
    while(1) {   
    // testes=fgetc(fp);
    // pc.printf("%d\n", (int)testes - 48);
     wait(0.01);
   
   // pc.printf("sdData[9]: %d\n",  (int)(sdData[9]));
    
        if(ontime == false)
        { 
            fread(compareT_b, 1,3, fp);
        
            //fgets(compareT_b, 3+1, fp);//取ってくる個数+1
            pc.printf("Compare0: %d\n", (int)( compareT_b[0]));
            pc.printf("Compare1: %d\n", (int)( compareT_b[1]));
            pc.printf("Compare2: %d\n", (int)( compareT_b[2]));
            compareT = (unsigned long)(compareT_b[0]) * 256 * 256 +  (unsigned long)(compareT_b[1]) * 256 +  (unsigned long)compareT_b[2];//符号拡張阻止
            //pc.putc(compareT);
            pc.printf("Compare: %d\n", compareT);
            
            ontime = true;
        }
    
        if( timer.read()*1000 > compareT)//compareTが現在の時間がcomparetTを超えたら
        {
            ontime = false;
            
            // SDカードをbyte_num分、読み取る (57Byte)
            //fgets(sdData, byte_num+1+2, fp);//取ってくる個数+1
            fread(sdData, 1,byte_num, fp);
            pc.printf("sdData[0]: %d\n",  (int)(sdData[0]));
            pc.printf("sdData[1]: %d\n",  (int)(sdData[1]));
            pc.printf("sdData[2]: %d\n",  (int)(sdData[2]));
        }     
    }
    */