dreamcast/chess/king.hpp
2024-05-31 23:09:55 -05:00

251 lines
8.4 KiB
C++

#pragma once
#include "geometry/geometry.hpp"
namespace king {
constexpr vec3 vertices[] = {
{ 0.587722f, -0.812159f, -0.500000f },
{ 0.508186f, -0.497465f, -0.500000f },
{ 0.569728f, -0.561184f, -0.500000f },
{ 0.590376f, -0.644625f, -0.500000f },
{ 0.451429f, -0.468419f, -0.500000f },
{ 0.713971f, -0.169361f, -0.500000f },
{ 0.769329f, -0.073675f, -0.500000f },
{ 0.787068f, 0.014243f, -0.500000f },
{ 0.781478f, 0.126337f, -0.500000f },
{ 0.743187f, 0.238086f, -0.500000f },
{ 0.681645f, 0.323805f, -0.500000f },
{ 0.604056f, 0.381043f, -0.500000f },
{ 0.502300f, 0.423017f, -0.500000f },
{ 0.406904f, 0.435736f, -0.500000f },
{ 0.274621f, 0.424289f, -0.500000f },
{ 0.163962f, 0.386130f, -0.500000f },
{ 0.143610f, 0.464991f, -0.500000f },
{ 0.263174f, 0.464991f, -0.500000f },
{ 0.261902f, 0.705390f, -0.500000f },
{ 0.134707f, 0.706662f, -0.500000f },
{ 0.133435f, 0.837673f, -0.500000f },
{ -0.587722f, -0.812159f, -0.500000f },
{ -0.508186f, -0.497465f, -0.500000f },
{ -0.569728f, -0.561184f, -0.500000f },
{ -0.590376f, -0.644625f, -0.500000f },
{ -0.451429f, -0.468419f, -0.500000f },
{ -0.713971f, -0.169361f, -0.500000f },
{ -0.769329f, -0.073675f, -0.500000f },
{ -0.787068f, 0.014243f, -0.500000f },
{ -0.781478f, 0.126337f, -0.500000f },
{ -0.743187f, 0.238086f, -0.500000f },
{ -0.681645f, 0.323805f, -0.500000f },
{ -0.604056f, 0.381043f, -0.500000f },
{ -0.502300f, 0.423017f, -0.500000f },
{ -0.406904f, 0.435736f, -0.500000f },
{ -0.274621f, 0.424289f, -0.500000f },
{ -0.163962f, 0.386130f, -0.500000f },
{ -0.143610f, 0.464991f, -0.500000f },
{ -0.263174f, 0.464991f, -0.500000f },
{ -0.261902f, 0.705390f, -0.500000f },
{ -0.134707f, 0.706662f, -0.500000f },
{ -0.133435f, 0.837673f, -0.500000f },
{ -0.232004f, -0.196898f, -0.500000f },
{ -0.186214f, -0.196898f, -0.500000f },
{ 0.186214f, -0.196898f, -0.500000f },
{ 0.232004f, -0.196898f, -0.500000f },
{ 0.187740f, 0.064106f, -0.500000f },
{ 0.361743f, 0.103791f, -0.500000f },
{ 0.286952f, 0.109897f, -0.500000f },
{ 0.416691f, 0.025948f, -0.500000f },
{ 0.398375f, -0.019843f, -0.500000f },
{ 0.392270f, 0.074791f, -0.500000f },
{ -0.416691f, 0.025948f, -0.500000f },
{ -0.398375f, -0.019843f, -0.500000f },
{ -0.392270f, 0.074791f, -0.500000f },
{ -0.286952f, 0.109897f, -0.500000f },
{ -0.361743f, 0.103791f, -0.500000f },
{ -0.187740f, 0.064106f, -0.500000f },
{ -0.625504f, 0.268384f, -1.500000f },
{ -0.565495f, 0.312652f, -1.500000f },
{ 0.461141f, -0.560928f, -1.500000f },
{ 0.499116f, -0.600247f, -1.500000f },
{ 0.511019f, -0.734231f, -1.500000f },
{ 0.512298f, -0.653515f, -1.500000f },
{ 0.326852f, -0.492204f, -1.500000f },
{ 0.650355f, -0.123707f, -1.500000f },
{ 0.695471f, -0.045723f, -1.500000f },
{ 0.708752f, 0.020099f, -1.500000f },
{ 0.704195f, 0.111476f, -1.500000f },
{ 0.673189f, 0.201964f, -1.500000f },
{ 0.625504f, 0.268384f, -1.500000f },
{ 0.565495f, 0.312652f, -1.500000f },
{ 0.481954f, 0.347113f, -1.500000f },
{ 0.405092f, 0.357361f, -1.500000f },
{ 0.290927f, 0.347481f, -1.500000f },
{ 0.109592f, 0.284952f, -1.500000f },
{ 0.043020f, 0.542919f, -1.500000f },
{ 0.184833f, 0.542919f, -1.500000f },
{ 0.184381f, 0.628234f, -1.500000f },
{ 0.057525f, 0.629502f, -1.500000f },
{ 0.056260f, 0.759745f, -1.500000f },
{ -0.511019f, -0.734231f, -1.500000f },
{ -0.461141f, -0.560928f, -1.500000f },
{ -0.499116f, -0.600247f, -1.500000f },
{ -0.512298f, -0.653515f, -1.500000f },
{ -0.326852f, -0.492204f, -1.500000f },
{ -0.650355f, -0.123707f, -1.500000f },
{ -0.695471f, -0.045723f, -1.500000f },
{ -0.708752f, 0.020099f, -1.500000f },
{ -0.704195f, 0.111476f, -1.500000f },
{ -0.673189f, 0.201964f, -1.500000f },
{ -0.481954f, 0.347113f, -1.500000f },
{ -0.405092f, 0.357361f, -1.500000f },
{ -0.290927f, 0.347481f, -1.500000f },
{ -0.109592f, 0.284952f, -1.500000f },
{ -0.043020f, 0.542919f, -1.500000f },
{ -0.184833f, 0.542919f, -1.500000f },
{ -0.184381f, 0.628234f, -1.500000f },
{ -0.057525f, 0.629502f, -1.500000f },
{ -0.056260f, 0.759745f, -1.500000f },
{ -0.265712f, -0.274826f, -1.500000f },
{ -0.107829f, -0.274826f, -1.500000f },
{ 0.107829f, -0.274826f, -1.500000f },
{ 0.265712f, -0.274826f, -1.500000f },
{ 0.110104f, 0.114101f, -1.500000f },
{ 0.395484f, 0.179223f, -1.500000f },
{ 0.272886f, 0.189231f, -1.500000f },
{ 0.502042f, 0.029498f, -1.500000f },
{ 0.465256f, -0.062466f, -1.500000f },
{ 0.455855f, 0.121871f, -1.500000f },
{ -0.465256f, -0.062466f, -1.500000f },
{ -0.502042f, 0.029498f, -1.500000f },
{ -0.455855f, 0.121871f, -1.500000f },
{ -0.272886f, 0.189231f, -1.500000f },
{ -0.395484f, 0.179223f, -1.500000f },
{ -0.110104f, 0.114101f, -1.500000f },
};
constexpr face_v faces[] = {
{{ 71}, { 75}, {105}},
{{ 92}, {114}, { 94}},
{{ 76}, { 80}, { 95}},
{{ 4}, { 45}, { 42}},
{{ 33}, { 55}, { 36}},
{{ 13}, { 15}, { 48}},
{{ 16}, { 40}, { 37}},
{{109}, {107}, { 67}},
{{ 67}, { 68}, { 69}},
{{ 69}, { 70}, { 71}},
{{ 71}, { 72}, { 73}},
{{ 73}, { 74}, { 75}},
{{ 75}, {106}, {105}},
{{105}, {109}, { 67}},
{{ 67}, { 69}, { 71}},
{{ 71}, { 73}, { 75}},
{{105}, { 67}, { 71}},
{{ 94}, { 93}, { 92}},
{{ 92}, { 91}, {114}},
{{114}, {113}, { 94}},
{{ 85}, { 82}, { 83}},
{{ 83}, { 84}, { 81}},
{{ 81}, { 62}, { 63}},
{{ 63}, { 61}, { 60}},
{{ 64}, { 65}, { 66}},
{{ 63}, { 60}, { 64}},
{{ 83}, { 81}, { 63}},
{{ 87}, { 86}, { 85}},
{{ 85}, { 83}, { 63}},
{{ 64}, { 66}, { 67}},
{{ 85}, { 63}, { 64}},
{{ 88}, { 87}, { 85}},
{{ 90}, { 89}, { 88}},
{{ 59}, { 58}, { 90}},
{{114}, { 91}, { 59}},
{{112}, {114}, { 59}},
{{ 59}, { 90}, { 88}},
{{ 64}, { 67}, {107}},
{{ 64}, {107}, {108}},
{{112}, { 59}, { 88}},
{{111}, {112}, { 88}},
{{ 64}, {108}, {103}},
{{ 64}, {103}, {102}},
{{111}, { 88}, { 85}},
{{110}, {111}, { 85}},
{{ 85}, { 64}, {102}},
{{104}, {106}, { 75}},
{{100}, {110}, { 85}},
{{101}, {100}, { 85}},
{{102}, {104}, { 75}},
{{ 76}, { 77}, { 78}},
{{102}, { 75}, { 76}},
{{101}, { 85}, {102}},
{{ 94}, {113}, {115}},
{{115}, {101}, {102}},
{{ 76}, { 78}, { 79}},
{{115}, {102}, { 76}},
{{ 95}, { 94}, {115}},
{{ 97}, { 96}, { 95}},
{{ 80}, { 99}, { 98}},
{{ 98}, { 97}, { 95}},
{{ 95}, {115}, { 76}},
{{ 76}, { 79}, { 80}},
{{ 80}, { 98}, { 95}},
{{ 32}, { 31}, { 30}},
{{ 30}, { 29}, { 28}},
{{ 28}, { 27}, { 26}},
{{ 25}, { 22}, { 23}},
{{ 28}, { 26}, { 25}},
{{ 32}, { 30}, { 28}},
{{ 56}, { 33}, { 32}},
{{ 54}, { 56}, { 32}},
{{ 32}, { 28}, { 25}},
{{ 25}, { 23}, { 24}},
{{ 24}, { 21}, { 0}},
{{ 0}, { 3}, { 2}},
{{ 2}, { 1}, { 4}},
{{ 4}, { 5}, { 6}},
{{ 6}, { 7}, { 8}},
{{ 8}, { 9}, { 10}},
{{ 10}, { 11}, { 12}},
{{ 12}, { 47}, { 51}},
{{ 12}, { 51}, { 49}},
{{ 8}, { 10}, { 12}},
{{ 4}, { 6}, { 8}},
{{ 0}, { 2}, { 4}},
{{ 25}, { 24}, { 0}},
{{ 52}, { 54}, { 32}},
{{ 53}, { 52}, { 32}},
{{ 25}, { 0}, { 4}},
{{ 4}, { 8}, { 12}},
{{ 4}, { 12}, { 49}},
{{ 53}, { 32}, { 25}},
{{ 44}, { 43}, { 42}},
{{ 42}, { 53}, { 25}},
{{ 4}, { 49}, { 50}},
{{ 45}, { 44}, { 42}},
{{ 4}, { 50}, { 45}},
{{ 42}, { 25}, { 4}},
{{ 35}, { 34}, { 33}},
{{ 33}, { 56}, { 55}},
{{ 55}, { 57}, { 36}},
{{ 36}, { 35}, { 33}},
{{ 47}, { 12}, { 13}},
{{ 13}, { 14}, { 15}},
{{ 15}, { 46}, { 48}},
{{ 48}, { 47}, { 13}},
{{ 46}, { 15}, { 16}},
{{ 16}, { 17}, { 18}},
{{ 19}, { 20}, { 41}},
{{ 16}, { 18}, { 19}},
{{ 44}, { 46}, { 16}},
{{ 57}, { 43}, { 44}},
{{ 37}, { 36}, { 57}},
{{ 39}, { 38}, { 37}},
{{ 19}, { 41}, { 40}},
{{ 40}, { 39}, { 37}},
{{ 37}, { 57}, { 44}},
{{ 16}, { 19}, { 40}},
{{ 37}, { 44}, { 16}},
};
constexpr uint32_t num_faces = (sizeof (faces)) / (sizeof (face_v));
}