846 lines
15 KiB
C

#pragma once
#include <stddef.h>
#include "../model.h"
// floating-point
const vertex_position speck_position[] = {
{-0.5, -0.5, 0.5},
{-0.5, 0.5, 0.5},
{-0.5, -0.5, -0.5},
{-0.5, 0.5, -0.5},
{0.5, -0.5, 0.5},
{0.5, 0.5, 0.5},
{0.5, -0.5, -0.5},
{0.5, 0.5, -0.5},
{-0.572933, -0.572933, -0.29665},
{-0.609568, -0.609568, 0.0},
{-0.572933, -0.572933, 0.29665},
{-0.572933, -0.29665, 0.572933},
{-0.609568, 0.0, 0.609568},
{-0.572933, 0.29665, 0.572933},
{-0.572933, 0.572933, 0.29665},
{-0.609568, 0.609568, 0.0},
{-0.572933, 0.572933, -0.29665},
{-0.572933, 0.29665, -0.572933},
{-0.609568, 0.0, -0.609568},
{-0.572933, -0.29665, -0.572933},
{0.29665, -0.572933, -0.572933},
{0.0, -0.609568, -0.609568},
{-0.29665, -0.572933, -0.572933},
{-0.29665, 0.572933, -0.572933},
{0.0, 0.609568, -0.609568},
{0.29665, 0.572933, -0.572933},
{0.572933, 0.29665, -0.572933},
{0.609568, 0.0, -0.609568},
{0.572933, -0.29665, -0.572933},
{0.572933, -0.572933, 0.29665},
{0.609568, -0.609568, 0.0},
{0.572933, -0.572933, -0.29665},
{0.572933, 0.572933, -0.29665},
{0.609568, 0.609568, 0.0},
{0.572933, 0.572933, 0.29665},
{0.572933, 0.29665, 0.572933},
{0.609568, 0.0, 0.609568},
{0.572933, -0.29665, 0.572933},
{-0.29665, -0.572933, 0.572933},
{0.0, -0.609568, 0.609568},
{0.29665, -0.572933, 0.572933},
{0.29665, 0.572933, 0.572933},
{0.0, 0.609568, 0.609568},
{-0.29665, 0.572933, 0.572933},
{-0.72899, -0.316157, 0.316157},
{-0.781829, 0.0, 0.33314},
{-0.72899, 0.316157, 0.316157},
{-0.781829, -0.33314, 0.0},
{-0.839506, 0.0, 0.0},
{-0.781829, 0.33314, 0.0},
{-0.72899, -0.316157, -0.316157},
{-0.781829, 0.0, -0.33314},
{-0.72899, 0.316157, -0.316157},
{-0.316157, -0.316157, -0.72899},
{-0.33314, 0.0, -0.781829},
{-0.316157, 0.316157, -0.72899},
{0.0, -0.33314, -0.781829},
{0.0, 0.0, -0.839506},
{0.0, 0.33314, -0.781829},
{0.316157, -0.316157, -0.72899},
{0.33314, 0.0, -0.781829},
{0.316157, 0.316157, -0.72899},
{0.72899, -0.316157, -0.316157},
{0.781829, 0.0, -0.33314},
{0.72899, 0.316157, -0.316157},
{0.781829, -0.33314, 0.0},
{0.839506, 0.0, 0.0},
{0.781829, 0.33314, 0.0},
{0.72899, -0.316157, 0.316157},
{0.781829, 0.0, 0.33314},
{0.72899, 0.316157, 0.316157},
{0.316157, -0.316157, 0.72899},
{0.33314, 0.0, 0.781829},
{0.316157, 0.316157, 0.72899},
{0.0, -0.33314, 0.781829},
{0.0, 0.0, 0.839506},
{0.0, 0.33314, 0.781829},
{-0.316157, -0.316157, 0.72899},
{-0.33314, 0.0, 0.781829},
{-0.316157, 0.316157, 0.72899},
{-0.316157, -0.72899, -0.316157},
{0.0, -0.781829, -0.33314},
{0.316157, -0.72899, -0.316157},
{-0.33314, -0.781829, 0.0},
{0.0, -0.839506, 0.0},
{0.33314, -0.781829, 0.0},
{-0.316157, -0.72899, 0.316157},
{0.0, -0.781829, 0.33314},
{0.316157, -0.72899, 0.316157},
{0.316157, 0.72899, -0.316157},
{0.0, 0.781829, -0.33314},
{-0.316157, 0.72899, -0.316157},
{0.33314, 0.781829, 0.0},
{0.0, 0.839506, 0.0},
{-0.33314, 0.781829, 0.0},
{0.316157, 0.72899, 0.316157},
{0.0, 0.781829, 0.33314},
{-0.316157, 0.72899, 0.316157},
};
// floating-point
const vertex_texture speck_texture[] = {
{0.25, 0.25},
{0.5, 0.25},
{0.5, 0.5},
{0.25, 0.5},
{0.75, 0.25},
{0.75, 0.5},
{0.5, 0.75},
{0.25, 0.75},
{0.75, 0.75},
{0.0, 0.0},
{0.25, 0.0},
{0.0, 0.25},
{0.5, 0.0},
{0.75, 0.0},
{1.0, 0.0},
{1.0, 0.25},
{1.0, 0.5},
{1.0, 0.75},
{1.0, 1.0},
{0.75, 1.0},
{0.5, 1.0},
{0.25, 1.0},
{0.0, 0.75},
{0.0, 1.0},
{0.0, 0.5},
};
// floating-point
const vertex_normal speck_normal[] = {
{-0.57735, -0.57735, 0.57735},
{-0.57735, 0.57735, 0.57735},
{-0.57735, -0.57735, -0.57735},
{-0.57735, 0.57735, -0.57735},
{0.57735, -0.57735, 0.57735},
{0.57735, 0.57735, 0.57735},
{0.57735, -0.57735, -0.57735},
{0.57735, 0.57735, -0.57735},
{-0.67094, -0.67094, -0.315719},
{-0.707107, -0.707107, 0.0},
{-0.67094, -0.67094, 0.315719},
{-0.67094, -0.315719, 0.67094},
{-0.707107, 0.0, 0.707107},
{-0.67094, 0.315719, 0.67094},
{-0.67094, 0.67094, 0.315719},
{-0.707107, 0.707107, 0.0},
{-0.67094, 0.67094, -0.315719},
{-0.67094, 0.315719, -0.67094},
{-0.707107, 0.0, -0.707107},
{-0.67094, -0.315719, -0.67094},
{0.315719, -0.67094, -0.67094},
{0.0, -0.707107, -0.707107},
{-0.315719, -0.67094, -0.67094},
{-0.315719, 0.67094, -0.67094},
{0.0, 0.707107, -0.707107},
{0.315719, 0.67094, -0.67094},
{0.67094, 0.315719, -0.67094},
{0.707107, 0.0, -0.707107},
{0.67094, -0.315719, -0.67094},
{0.67094, -0.67094, 0.315719},
{0.707107, -0.707107, 0.0},
{0.67094, -0.67094, -0.315719},
{0.67094, 0.67094, -0.315719},
{0.707107, 0.707107, 0.0},
{0.67094, 0.67094, 0.315719},
{0.67094, 0.315719, 0.67094},
{0.707107, 0.0, 0.707107},
{0.67094, -0.315719, 0.67094},
{-0.315719, -0.67094, 0.67094},
{0.0, -0.707107, 0.707107},
{0.315719, -0.67094, 0.67094},
{0.315719, 0.67094, 0.67094},
{0.0, 0.707107, 0.707107},
{-0.315719, 0.67094, 0.67094},
{-0.879729, -0.336211, 0.336211},
{-0.934488, 0.0, 0.355995},
{-0.879729, 0.336211, 0.336211},
{-0.934488, -0.355995, 0.0},
{-1.0, 0.0, 0.0},
{-0.934488, 0.355995, 0.0},
{-0.879729, -0.336211, -0.336211},
{-0.934488, 0.0, -0.355995},
{-0.879729, 0.336211, -0.336211},
{-0.336211, -0.336211, -0.879729},
{-0.355995, 0.0, -0.934488},
{-0.336211, 0.336211, -0.879729},
{0.0, -0.355995, -0.934488},
{0.0, 0.0, -1.0},
{0.0, 0.355995, -0.934488},
{0.336211, -0.336211, -0.879729},
{0.355995, 0.0, -0.934488},
{0.336211, 0.336211, -0.879729},
{0.879729, -0.336211, -0.336211},
{0.934488, 0.0, -0.355995},
{0.879729, 0.336211, -0.336211},
{0.934488, -0.355995, 0.0},
{1.0, 0.0, 0.0},
{0.934488, 0.355995, 0.0},
{0.879729, -0.336211, 0.336211},
{0.934488, 0.0, 0.355995},
{0.879729, 0.336211, 0.336211},
{0.336211, -0.336211, 0.879729},
{0.355995, 0.0, 0.934488},
{0.336211, 0.336211, 0.879729},
{0.0, -0.355995, 0.934488},
{0.0, 0.0, 1.0},
{0.0, 0.355995, 0.934488},
{-0.336211, -0.336211, 0.879729},
{-0.355995, 0.0, 0.934488},
{-0.336211, 0.336211, 0.879729},
{-0.336211, -0.879729, -0.336211},
{0.0, -0.934488, -0.355995},
{0.336211, -0.879729, -0.336211},
{-0.355995, -0.934488, 0.0},
{0.0, -1.0, 0.0},
{0.355995, -0.934488, 0.0},
{-0.336211, -0.879729, 0.336211},
{0.0, -0.934488, 0.355995},
{0.336211, -0.879729, 0.336211},
{0.336211, 0.879729, -0.336211},
{0.0, 0.934488, -0.355995},
{-0.336211, 0.879729, -0.336211},
{0.355995, 0.934488, 0.0},
{0.0, 1.0, 0.0},
{-0.355995, 0.934488, 0.0},
{0.336211, 0.879729, 0.336211},
{0.0, 0.934488, 0.355995},
{-0.336211, 0.879729, 0.336211},
};
union quadrilateral speck_Cube_quadrilateral[] = {
{ .v = {
{44, 0, 44},
{45, 1, 45},
{48, 2, 48},
{47, 3, 47},
}},
{ .v = {
{45, 1, 45},
{46, 4, 46},
{49, 5, 49},
{48, 2, 48},
}},
{ .v = {
{47, 3, 47},
{48, 2, 48},
{51, 6, 51},
{50, 7, 50},
}},
{ .v = {
{48, 2, 48},
{49, 5, 49},
{52, 8, 52},
{51, 6, 51},
}},
{ .v = {
{0, 9, 0},
{11, 10, 11},
{44, 0, 44},
{10, 11, 10},
}},
{ .v = {
{11, 10, 11},
{12, 12, 12},
{45, 1, 45},
{44, 0, 44},
}},
{ .v = {
{12, 12, 12},
{13, 13, 13},
{46, 4, 46},
{45, 1, 45},
}},
{ .v = {
{13, 13, 13},
{1, 14, 1},
{14, 15, 14},
{46, 4, 46},
}},
{ .v = {
{46, 4, 46},
{14, 15, 14},
{15, 16, 15},
{49, 5, 49},
}},
{ .v = {
{49, 5, 49},
{15, 16, 15},
{16, 17, 16},
{52, 8, 52},
}},
{ .v = {
{52, 8, 52},
{16, 17, 16},
{3, 18, 3},
{17, 19, 17},
}},
{ .v = {
{51, 6, 51},
{52, 8, 52},
{17, 19, 17},
{18, 20, 18},
}},
{ .v = {
{50, 7, 50},
{51, 6, 51},
{18, 20, 18},
{19, 21, 19},
}},
{ .v = {
{8, 22, 8},
{50, 7, 50},
{19, 21, 19},
{2, 23, 2},
}},
{ .v = {
{9, 24, 9},
{47, 3, 47},
{50, 7, 50},
{8, 22, 8},
}},
{ .v = {
{10, 11, 10},
{44, 0, 44},
{47, 3, 47},
{9, 24, 9},
}},
{ .v = {
{53, 0, 53},
{54, 1, 54},
{57, 2, 57},
{56, 3, 56},
}},
{ .v = {
{54, 1, 54},
{55, 4, 55},
{58, 5, 58},
{57, 2, 57},
}},
{ .v = {
{56, 3, 56},
{57, 2, 57},
{60, 6, 60},
{59, 7, 59},
}},
{ .v = {
{57, 2, 57},
{58, 5, 58},
{61, 8, 61},
{60, 6, 60},
}},
{ .v = {
{2, 9, 2},
{19, 10, 19},
{53, 0, 53},
{22, 11, 22},
}},
{ .v = {
{19, 10, 19},
{18, 12, 18},
{54, 1, 54},
{53, 0, 53},
}},
{ .v = {
{18, 12, 18},
{17, 13, 17},
{55, 4, 55},
{54, 1, 54},
}},
{ .v = {
{17, 13, 17},
{3, 14, 3},
{23, 15, 23},
{55, 4, 55},
}},
{ .v = {
{55, 4, 55},
{23, 15, 23},
{24, 16, 24},
{58, 5, 58},
}},
{ .v = {
{58, 5, 58},
{24, 16, 24},
{25, 17, 25},
{61, 8, 61},
}},
{ .v = {
{61, 8, 61},
{25, 17, 25},
{7, 18, 7},
{26, 19, 26},
}},
{ .v = {
{60, 6, 60},
{61, 8, 61},
{26, 19, 26},
{27, 20, 27},
}},
{ .v = {
{59, 7, 59},
{60, 6, 60},
{27, 20, 27},
{28, 21, 28},
}},
{ .v = {
{20, 22, 20},
{59, 7, 59},
{28, 21, 28},
{6, 23, 6},
}},
{ .v = {
{21, 24, 21},
{56, 3, 56},
{59, 7, 59},
{20, 22, 20},
}},
{ .v = {
{22, 11, 22},
{53, 0, 53},
{56, 3, 56},
{21, 24, 21},
}},
{ .v = {
{62, 0, 62},
{63, 1, 63},
{66, 2, 66},
{65, 3, 65},
}},
{ .v = {
{63, 1, 63},
{64, 4, 64},
{67, 5, 67},
{66, 2, 66},
}},
{ .v = {
{65, 3, 65},
{66, 2, 66},
{69, 6, 69},
{68, 7, 68},
}},
{ .v = {
{66, 2, 66},
{67, 5, 67},
{70, 8, 70},
{69, 6, 69},
}},
{ .v = {
{6, 9, 6},
{28, 10, 28},
{62, 0, 62},
{31, 11, 31},
}},
{ .v = {
{28, 10, 28},
{27, 12, 27},
{63, 1, 63},
{62, 0, 62},
}},
{ .v = {
{27, 12, 27},
{26, 13, 26},
{64, 4, 64},
{63, 1, 63},
}},
{ .v = {
{26, 13, 26},
{7, 14, 7},
{32, 15, 32},
{64, 4, 64},
}},
{ .v = {
{64, 4, 64},
{32, 15, 32},
{33, 16, 33},
{67, 5, 67},
}},
{ .v = {
{67, 5, 67},
{33, 16, 33},
{34, 17, 34},
{70, 8, 70},
}},
{ .v = {
{70, 8, 70},
{34, 17, 34},
{5, 18, 5},
{35, 19, 35},
}},
{ .v = {
{69, 6, 69},
{70, 8, 70},
{35, 19, 35},
{36, 20, 36},
}},
{ .v = {
{68, 7, 68},
{69, 6, 69},
{36, 20, 36},
{37, 21, 37},
}},
{ .v = {
{29, 22, 29},
{68, 7, 68},
{37, 21, 37},
{4, 23, 4},
}},
{ .v = {
{30, 24, 30},
{65, 3, 65},
{68, 7, 68},
{29, 22, 29},
}},
{ .v = {
{31, 11, 31},
{62, 0, 62},
{65, 3, 65},
{30, 24, 30},
}},
{ .v = {
{71, 0, 71},
{72, 1, 72},
{75, 2, 75},
{74, 3, 74},
}},
{ .v = {
{72, 1, 72},
{73, 4, 73},
{76, 5, 76},
{75, 2, 75},
}},
{ .v = {
{74, 3, 74},
{75, 2, 75},
{78, 6, 78},
{77, 7, 77},
}},
{ .v = {
{75, 2, 75},
{76, 5, 76},
{79, 8, 79},
{78, 6, 78},
}},
{ .v = {
{4, 9, 4},
{37, 10, 37},
{71, 0, 71},
{40, 11, 40},
}},
{ .v = {
{37, 10, 37},
{36, 12, 36},
{72, 1, 72},
{71, 0, 71},
}},
{ .v = {
{36, 12, 36},
{35, 13, 35},
{73, 4, 73},
{72, 1, 72},
}},
{ .v = {
{35, 13, 35},
{5, 14, 5},
{41, 15, 41},
{73, 4, 73},
}},
{ .v = {
{73, 4, 73},
{41, 15, 41},
{42, 16, 42},
{76, 5, 76},
}},
{ .v = {
{76, 5, 76},
{42, 16, 42},
{43, 17, 43},
{79, 8, 79},
}},
{ .v = {
{79, 8, 79},
{43, 17, 43},
{1, 18, 1},
{13, 19, 13},
}},
{ .v = {
{78, 6, 78},
{79, 8, 79},
{13, 19, 13},
{12, 20, 12},
}},
{ .v = {
{77, 7, 77},
{78, 6, 78},
{12, 20, 12},
{11, 21, 11},
}},
{ .v = {
{38, 22, 38},
{77, 7, 77},
{11, 21, 11},
{0, 23, 0},
}},
{ .v = {
{39, 24, 39},
{74, 3, 74},
{77, 7, 77},
{38, 22, 38},
}},
{ .v = {
{40, 11, 40},
{71, 0, 71},
{74, 3, 74},
{39, 24, 39},
}},
{ .v = {
{80, 0, 80},
{81, 1, 81},
{84, 2, 84},
{83, 3, 83},
}},
{ .v = {
{81, 1, 81},
{82, 4, 82},
{85, 5, 85},
{84, 2, 84},
}},
{ .v = {
{83, 3, 83},
{84, 2, 84},
{87, 6, 87},
{86, 7, 86},
}},
{ .v = {
{84, 2, 84},
{85, 5, 85},
{88, 8, 88},
{87, 6, 87},
}},
{ .v = {
{2, 9, 2},
{22, 10, 22},
{80, 0, 80},
{8, 11, 8},
}},
{ .v = {
{22, 10, 22},
{21, 12, 21},
{81, 1, 81},
{80, 0, 80},
}},
{ .v = {
{21, 12, 21},
{20, 13, 20},
{82, 4, 82},
{81, 1, 81},
}},
{ .v = {
{20, 13, 20},
{6, 14, 6},
{31, 15, 31},
{82, 4, 82},
}},
{ .v = {
{82, 4, 82},
{31, 15, 31},
{30, 16, 30},
{85, 5, 85},
}},
{ .v = {
{85, 5, 85},
{30, 16, 30},
{29, 17, 29},
{88, 8, 88},
}},
{ .v = {
{88, 8, 88},
{29, 17, 29},
{4, 18, 4},
{40, 19, 40},
}},
{ .v = {
{87, 6, 87},
{88, 8, 88},
{40, 19, 40},
{39, 20, 39},
}},
{ .v = {
{86, 7, 86},
{87, 6, 87},
{39, 20, 39},
{38, 21, 38},
}},
{ .v = {
{10, 22, 10},
{86, 7, 86},
{38, 21, 38},
{0, 23, 0},
}},
{ .v = {
{9, 24, 9},
{83, 3, 83},
{86, 7, 86},
{10, 22, 10},
}},
{ .v = {
{8, 11, 8},
{80, 0, 80},
{83, 3, 83},
{9, 24, 9},
}},
{ .v = {
{89, 0, 89},
{90, 1, 90},
{93, 2, 93},
{92, 3, 92},
}},
{ .v = {
{90, 1, 90},
{91, 4, 91},
{94, 5, 94},
{93, 2, 93},
}},
{ .v = {
{92, 3, 92},
{93, 2, 93},
{96, 6, 96},
{95, 7, 95},
}},
{ .v = {
{93, 2, 93},
{94, 5, 94},
{97, 8, 97},
{96, 6, 96},
}},
{ .v = {
{7, 9, 7},
{25, 10, 25},
{89, 0, 89},
{32, 11, 32},
}},
{ .v = {
{25, 10, 25},
{24, 12, 24},
{90, 1, 90},
{89, 0, 89},
}},
{ .v = {
{24, 12, 24},
{23, 13, 23},
{91, 4, 91},
{90, 1, 90},
}},
{ .v = {
{23, 13, 23},
{3, 14, 3},
{16, 15, 16},
{91, 4, 91},
}},
{ .v = {
{91, 4, 91},
{16, 15, 16},
{15, 16, 15},
{94, 5, 94},
}},
{ .v = {
{94, 5, 94},
{15, 16, 15},
{14, 17, 14},
{97, 8, 97},
}},
{ .v = {
{97, 8, 97},
{14, 17, 14},
{1, 18, 1},
{43, 19, 43},
}},
{ .v = {
{96, 6, 96},
{97, 8, 97},
{43, 19, 43},
{42, 20, 42},
}},
{ .v = {
{95, 7, 95},
{96, 6, 96},
{42, 20, 42},
{41, 21, 41},
}},
{ .v = {
{34, 22, 34},
{95, 7, 95},
{41, 21, 41},
{5, 23, 5},
}},
{ .v = {
{33, 24, 33},
{92, 3, 92},
{95, 7, 95},
{34, 22, 34},
}},
{ .v = {
{32, 11, 32},
{89, 0, 89},
{92, 3, 92},
{33, 24, 33},
}},
};
const struct object speck_Cube = {
.triangle = NULL,
.quadrilateral = &speck_Cube_quadrilateral[0],
.triangle_count = 0,
.quadrilateral_count = 96,
.material = speck_matSpeck,
};
const struct object speck_Cube_white = {
.triangle = NULL,
.quadrilateral = &speck_Cube_quadrilateral[0],
.triangle_count = 0,
.quadrilateral_count = 96,
.material = speck_white,
};
const struct object * speck_object_list[] = {
&speck_Cube,
};
const struct model speck_model = {
.position = &speck_position[0],
.texture = &speck_texture[0],
.normal = &speck_normal[0],
.object = &speck_object_list[0],
.object_count = 1,
};