1
0
mirror of synced 2025-01-11 13:52:15 +01:00
ImHex/lib/third_party/imgui/implot3d/source/implot3d_meshes.cpp

822 lines
30 KiB
C++
Raw Normal View History

2024-12-17 23:51:45 +01:00
//--------------------------------------------------
// ImPlot3D v0.1
// implot3d_meshes.cpp
// Date: 2024-12-07
// Author: Breno Cunha Queiroz (brenocq.com)
//
// Acknowledgments:
// ImPlot3D is heavily inspired by ImPlot
// (https://github.com/epezent/implot) by Evan Pezent,
// and follows a similar code style and structure to
// maintain consistency with ImPlot's API.
//--------------------------------------------------
// Table of Contents:
// [SECTION] Includes
// [SECTION] Cube
// [SECTION] Sphere
// [SECTION] Duck
//-----------------------------------------------------------------------------
// [SECTION] Includes
//-----------------------------------------------------------------------------
#include "implot3d.h"
//-----------------------------------------------------------------------------
// [SECTION] Cube
//-----------------------------------------------------------------------------
namespace ImPlot3D {
// clang-format off
ImPlot3DPoint cube_vtx[CUBE_VTX_COUNT] = {
{-1.0f, -1.0f, -1.0f}, // 0: Bottom-back-left
{ 1.0f, -1.0f, -1.0f}, // 1: Bottom-back-right
{ 1.0f, 1.0f, -1.0f}, // 2: Top-back-right
{-1.0f, 1.0f, -1.0f}, // 3: Top-back-left
{-1.0f, -1.0f, 1.0f}, // 4: Bottom-front-left
{ 1.0f, -1.0f, 1.0f}, // 5: Bottom-front-right
{ 1.0f, 1.0f, 1.0f}, // 6: Top-front-right
{-1.0f, 1.0f, 1.0f}, // 7: Top-front-left
};
unsigned int cube_idx[CUBE_IDX_COUNT] = {
// Back face
0, 1, 2,
0, 2, 3,
// Front face
4, 5, 6,
4, 6, 7,
// Left face
0, 3, 7,
0, 7, 4,
// Right face
1, 5, 6,
1, 6, 2,
// Top face
3, 2, 6,
3, 6, 7,
// Bottom face
0, 1, 5,
0, 5, 4,
};
// clang-format on
//-----------------------------------------------------------------------------
// [SECTION] Sphere
//-----------------------------------------------------------------------------
ImPlot3DPoint sphere_vtx[SPHERE_VTX_COUNT] = {
{-0.525731f, 0.850651f, 0.000000f},
{0.525731f, 0.850651f, 0.000000f},
{-0.525731f, -0.850651f, 0.000000f},
{0.525731f, -0.850651f, 0.000000f},
{0.000000f, -0.525731f, 0.850651f},
{0.000000f, 0.525731f, 0.850651f},
{0.000000f, -0.525731f, -0.850651f},
{0.000000f, 0.525731f, -0.850651f},
{0.850651f, 0.000000f, -0.525731f},
{0.850651f, 0.000000f, 0.525731f},
{-0.850651f, 0.000000f, -0.525731f},
{-0.850651f, 0.000000f, 0.525731f},
{-0.809017f, 0.500000f, 0.309017f},
{-0.500000f, 0.309017f, 0.809017f},
{-0.309017f, 0.809017f, 0.500000f},
{0.309017f, 0.809017f, 0.500000f},
{0.000000f, 1.000000f, 0.000000f},
{0.309017f, 0.809017f, -0.500000f},
{-0.309017f, 0.809017f, -0.500000f},
{-0.500000f, 0.309017f, -0.809017f},
{-0.809017f, 0.500000f, -0.309017f},
{-1.000000f, 0.000000f, 0.000000f},
{0.500000f, 0.309017f, 0.809017f},
{0.809017f, 0.500000f, 0.309017f},
{-0.500000f, -0.309017f, 0.809017f},
{0.000000f, 0.000000f, 1.000000f},
{-0.809017f, -0.500000f, -0.309017f},
{-0.809017f, -0.500000f, 0.309017f},
{0.000000f, 0.000000f, -1.000000f},
{-0.500000f, -0.309017f, -0.809017f},
{0.809017f, 0.500000f, -0.309017f},
{0.500000f, 0.309017f, -0.809017f},
{0.809017f, -0.500000f, 0.309017f},
{0.500000f, -0.309017f, 0.809017f},
{0.309017f, -0.809017f, 0.500000f},
{-0.309017f, -0.809017f, 0.500000f},
{0.000000f, -1.000000f, 0.000000f},
{-0.309017f, -0.809017f, -0.500000f},
{0.309017f, -0.809017f, -0.500000f},
{0.500000f, -0.309017f, -0.809017f},
{0.809017f, -0.500000f, -0.309017f},
{1.000000f, 0.000000f, 0.000000f},
{-0.693780f, 0.702046f, 0.160622f},
{-0.587785f, 0.688191f, 0.425325f},
{-0.433889f, 0.862668f, 0.259892f},
{-0.862668f, 0.259892f, 0.433889f},
{-0.702046f, 0.160622f, 0.693780f},
{-0.688191f, 0.425325f, 0.587785f},
{-0.425325f, 0.587785f, 0.688191f},
{-0.259892f, 0.433889f, 0.862668f},
{-0.160622f, 0.693780f, 0.702046f},
{-0.162460f, 0.951057f, 0.262866f},
{-0.273267f, 0.961938f, 0.000000f},
{0.160622f, 0.693780f, 0.702046f},
{0.000000f, 0.850651f, 0.525731f},
{0.162460f, 0.951057f, 0.262866f},
{0.433889f, 0.862668f, 0.259892f},
{0.273267f, 0.961938f, 0.000000f},
{-0.162460f, 0.951057f, -0.262866f},
{-0.433889f, 0.862668f, -0.259892f},
{0.433889f, 0.862668f, -0.259892f},
{0.162460f, 0.951057f, -0.262866f},
{0.000000f, 0.850651f, -0.525731f},
{0.160622f, 0.693780f, -0.702046f},
{-0.160622f, 0.693780f, -0.702046f},
{-0.587785f, 0.688191f, -0.425325f},
{-0.693780f, 0.702046f, -0.160622f},
{-0.259892f, 0.433889f, -0.862668f},
{-0.425325f, 0.587785f, -0.688191f},
{-0.688191f, 0.425325f, -0.587785f},
{-0.702046f, 0.160622f, -0.693780f},
{-0.862668f, 0.259892f, -0.433889f},
{-0.850651f, 0.525731f, 0.000000f},
{-0.961938f, 0.000000f, -0.273267f},
{-0.951057f, 0.262866f, -0.162460f},
{-0.951057f, 0.262866f, 0.162460f},
{-0.961938f, 0.000000f, 0.273267f},
{0.587785f, 0.688191f, 0.425325f},
{0.693780f, 0.702046f, 0.160622f},
{0.259892f, 0.433889f, 0.862668f},
{0.425325f, 0.587785f, 0.688191f},
{0.688191f, 0.425325f, 0.587785f},
{0.702046f, 0.160622f, 0.693780f},
{0.862668f, 0.259892f, 0.433889f},
{-0.262866f, 0.162460f, 0.951057f},
{0.000000f, 0.273267f, 0.961938f},
{-0.702046f, -0.160622f, 0.693780f},
{-0.525731f, 0.000000f, 0.850651f},
{-0.262866f, -0.162460f, 0.951057f},
{-0.259892f, -0.433889f, 0.862668f},
{0.000000f, -0.273267f, 0.961938f},
{-0.951057f, -0.262866f, 0.162460f},
{-0.862668f, -0.259892f, 0.433889f},
{-0.862668f, -0.259892f, -0.433889f},
{-0.951057f, -0.262866f, -0.162460f},
{-0.850651f, -0.525731f, 0.000000f},
{-0.693780f, -0.702046f, -0.160622f},
{-0.693780f, -0.702046f, 0.160622f},
{-0.525731f, 0.000000f, -0.850651f},
{-0.702046f, -0.160622f, -0.693780f},
{0.000000f, 0.273267f, -0.961938f},
{-0.262866f, 0.162460f, -0.951057f},
{-0.262866f, -0.162460f, -0.951057f},
{0.000000f, -0.273267f, -0.961938f},
{-0.259892f, -0.433889f, -0.862668f},
{0.425325f, 0.587785f, -0.688191f},
{0.259892f, 0.433889f, -0.862668f},
{0.693780f, 0.702046f, -0.160622f},
{0.587785f, 0.688191f, -0.425325f},
{0.688191f, 0.425325f, -0.587785f},
{0.862668f, 0.259892f, -0.433889f},
{0.702046f, 0.160622f, -0.693780f},
{0.693780f, -0.702046f, 0.160622f},
{0.587785f, -0.688191f, 0.425325f},
{0.433889f, -0.862668f, 0.259892f},
{0.862668f, -0.259892f, 0.433889f},
{0.702046f, -0.160622f, 0.693780f},
{0.688191f, -0.425325f, 0.587785f},
{0.425325f, -0.587785f, 0.688191f},
{0.259892f, -0.433889f, 0.862668f},
{0.160622f, -0.693780f, 0.702046f},
{0.162460f, -0.951057f, 0.262866f},
{0.273267f, -0.961938f, 0.000000f},
{-0.160622f, -0.693780f, 0.702046f},
{0.000000f, -0.850651f, 0.525731f},
{-0.162460f, -0.951057f, 0.262866f},
{-0.433889f, -0.862668f, 0.259892f},
{-0.273267f, -0.961938f, 0.000000f},
{0.162460f, -0.951057f, -0.262866f},
{0.433889f, -0.862668f, -0.259892f},
{-0.433889f, -0.862668f, -0.259892f},
{-0.162460f, -0.951057f, -0.262866f},
{0.000000f, -0.850651f, -0.525731f},
{-0.160622f, -0.693780f, -0.702046f},
{0.160622f, -0.693780f, -0.702046f},
{0.587785f, -0.688191f, -0.425325f},
{0.693780f, -0.702046f, -0.160622f},
{0.259892f, -0.433889f, -0.862668f},
{0.425325f, -0.587785f, -0.688191f},
{0.688191f, -0.425325f, -0.587785f},
{0.702046f, -0.160622f, -0.693780f},
{0.862668f, -0.259892f, -0.433889f},
{0.850651f, -0.525731f, 0.000000f},
{0.961938f, 0.000000f, -0.273267f},
{0.951057f, -0.262866f, -0.162460f},
{0.951057f, -0.262866f, 0.162460f},
{0.961938f, 0.000000f, 0.273267f},
{0.262866f, -0.162460f, 0.951057f},
{0.525731f, 0.000000f, 0.850651f},
{0.262866f, 0.162460f, 0.951057f},
{-0.587785f, -0.688191f, 0.425325f},
{-0.425325f, -0.587785f, 0.688191f},
{-0.688191f, -0.425325f, 0.587785f},
{-0.425325f, -0.587785f, -0.688191f},
{-0.587785f, -0.688191f, -0.425325f},
{-0.688191f, -0.425325f, -0.587785f},
{0.525731f, 0.000000f, -0.850651f},
{0.262866f, -0.162460f, -0.951057f},
{0.262866f, 0.162460f, -0.951057f},
{0.951057f, 0.262866f, 0.162460f},
{0.951057f, 0.262866f, -0.162460f},
{0.850651f, 0.525731f, 0.000000f},
};
unsigned int sphere_idx[SPHERE_IDX_COUNT] = {
0, 42, 44,
42, 12, 43,
44, 43, 14,
42, 43, 44,
12, 45, 47,
45, 11, 46,
47, 46, 13,
45, 46, 47,
14, 48, 50,
48, 13, 49,
50, 49, 5,
48, 49, 50,
12, 47, 43,
47, 13, 48,
43, 48, 14,
47, 48, 43,
0, 44, 52,
44, 14, 51,
52, 51, 16,
44, 51, 52,
14, 50, 54,
50, 5, 53,
54, 53, 15,
50, 53, 54,
16, 55, 57,
55, 15, 56,
57, 56, 1,
55, 56, 57,
14, 54, 51,
54, 15, 55,
51, 55, 16,
54, 55, 51,
0, 52, 59,
52, 16, 58,
59, 58, 18,
52, 58, 59,
16, 57, 61,
57, 1, 60,
61, 60, 17,
57, 60, 61,
18, 62, 64,
62, 17, 63,
64, 63, 7,
62, 63, 64,
16, 61, 58,
61, 17, 62,
58, 62, 18,
61, 62, 58,
0, 59, 66,
59, 18, 65,
66, 65, 20,
59, 65, 66,
18, 64, 68,
64, 7, 67,
68, 67, 19,
64, 67, 68,
20, 69, 71,
69, 19, 70,
71, 70, 10,
69, 70, 71,
18, 68, 65,
68, 19, 69,
65, 69, 20,
68, 69, 65,
0, 66, 42,
66, 20, 72,
42, 72, 12,
66, 72, 42,
20, 71, 74,
71, 10, 73,
74, 73, 21,
71, 73, 74,
12, 75, 45,
75, 21, 76,
45, 76, 11,
75, 76, 45,
20, 74, 72,
74, 21, 75,
72, 75, 12,
74, 75, 72,
1, 56, 78,
56, 15, 77,
78, 77, 23,
56, 77, 78,
15, 53, 80,
53, 5, 79,
80, 79, 22,
53, 79, 80,
23, 81, 83,
81, 22, 82,
83, 82, 9,
81, 82, 83,
15, 80, 77,
80, 22, 81,
77, 81, 23,
80, 81, 77,
5, 49, 85,
49, 13, 84,
85, 84, 25,
49, 84, 85,
13, 46, 87,
46, 11, 86,
87, 86, 24,
46, 86, 87,
25, 88, 90,
88, 24, 89,
90, 89, 4,
88, 89, 90,
13, 87, 84,
87, 24, 88,
84, 88, 25,
87, 88, 84,
11, 76, 92,
76, 21, 91,
92, 91, 27,
76, 91, 92,
21, 73, 94,
73, 10, 93,
94, 93, 26,
73, 93, 94,
27, 95, 97,
95, 26, 96,
97, 96, 2,
95, 96, 97,
21, 94, 91,
94, 26, 95,
91, 95, 27,
94, 95, 91,
10, 70, 99,
70, 19, 98,
99, 98, 29,
70, 98, 99,
19, 67, 101,
67, 7, 100,
101, 100, 28,
67, 100, 101,
29, 102, 104,
102, 28, 103,
104, 103, 6,
102, 103, 104,
19, 101, 98,
101, 28, 102,
98, 102, 29,
101, 102, 98,
7, 63, 106,
63, 17, 105,
106, 105, 31,
63, 105, 106,
17, 60, 108,
60, 1, 107,
108, 107, 30,
60, 107, 108,
31, 109, 111,
109, 30, 110,
111, 110, 8,
109, 110, 111,
17, 108, 105,
108, 30, 109,
105, 109, 31,
108, 109, 105,
3, 112, 114,
112, 32, 113,
114, 113, 34,
112, 113, 114,
32, 115, 117,
115, 9, 116,
117, 116, 33,
115, 116, 117,
34, 118, 120,
118, 33, 119,
120, 119, 4,
118, 119, 120,
32, 117, 113,
117, 33, 118,
113, 118, 34,
117, 118, 113,
3, 114, 122,
114, 34, 121,
122, 121, 36,
114, 121, 122,
34, 120, 124,
120, 4, 123,
124, 123, 35,
120, 123, 124,
36, 125, 127,
125, 35, 126,
127, 126, 2,
125, 126, 127,
34, 124, 121,
124, 35, 125,
121, 125, 36,
124, 125, 121,
3, 122, 129,
122, 36, 128,
129, 128, 38,
122, 128, 129,
36, 127, 131,
127, 2, 130,
131, 130, 37,
127, 130, 131,
38, 132, 134,
132, 37, 133,
134, 133, 6,
132, 133, 134,
36, 131, 128,
131, 37, 132,
128, 132, 38,
131, 132, 128,
3, 129, 136,
129, 38, 135,
136, 135, 40,
129, 135, 136,
38, 134, 138,
134, 6, 137,
138, 137, 39,
134, 137, 138,
40, 139, 141,
139, 39, 140,
141, 140, 8,
139, 140, 141,
38, 138, 135,
138, 39, 139,
135, 139, 40,
138, 139, 135,
3, 136, 112,
136, 40, 142,
112, 142, 32,
136, 142, 112,
40, 141, 144,
141, 8, 143,
144, 143, 41,
141, 143, 144,
32, 145, 115,
145, 41, 146,
115, 146, 9,
145, 146, 115,
40, 144, 142,
144, 41, 145,
142, 145, 32,
144, 145, 142,
4, 119, 90,
119, 33, 147,
90, 147, 25,
119, 147, 90,
33, 116, 148,
116, 9, 82,
148, 82, 22,
116, 82, 148,
25, 149, 85,
149, 22, 79,
85, 79, 5,
149, 79, 85,
33, 148, 147,
148, 22, 149,
147, 149, 25,
148, 149, 147,
2, 126, 97,
126, 35, 150,
97, 150, 27,
126, 150, 97,
35, 123, 151,
123, 4, 89,
151, 89, 24,
123, 89, 151,
27, 152, 92,
152, 24, 86,
92, 86, 11,
152, 86, 92,
35, 151, 150,
151, 24, 152,
150, 152, 27,
151, 152, 150,
6, 133, 104,
133, 37, 153,
104, 153, 29,
133, 153, 104,
37, 130, 154,
130, 2, 96,
154, 96, 26,
130, 96, 154,
29, 155, 99,
155, 26, 93,
99, 93, 10,
155, 93, 99,
37, 154, 153,
154, 26, 155,
153, 155, 29,
154, 155, 153,
8, 140, 111,
140, 39, 156,
111, 156, 31,
140, 156, 111,
39, 137, 157,
137, 6, 103,
157, 103, 28,
137, 103, 157,
31, 158, 106,
158, 28, 100,
106, 100, 7,
158, 100, 106,
39, 157, 156,
157, 28, 158,
156, 158, 31,
157, 158, 156,
9, 146, 83,
146, 41, 159,
83, 159, 23,
146, 159, 83,
41, 143, 160,
143, 8, 110,
160, 110, 30,
143, 110, 160,
23, 161, 78,
161, 30, 107,
78, 107, 1,
161, 107, 78,
41, 160, 159,
160, 30, 161,
159, 161, 23,
160, 161, 159};
//-----------------------------------------------------------------------------
// [SECTION] Duck
//-----------------------------------------------------------------------------
// Rubber Duck by Poly by Google [CC-BY] via Poly Pizza
ImPlot3DPoint duck_vtx[DUCK_VTX_COUNT] = {
{0.263370f, 0.782383f, -0.488235f},
{0.358677f, -0.624396f, -0.546179f},
{0.292714f, 0.782558f, -0.125229f},
{0.349165f, -0.579430f, -0.151545f},
{0.000000f, 0.985995f, 0.055503f},
{0.000000f, -0.771795f, -0.060755f},
{0.000000f, 0.884807f, -0.562217f},
{0.000000f, -0.793724f, -0.609042f},
{0.000000f, -0.299071f, -0.806689f},
{0.416629f, -0.234865f, -0.718575f},
{0.386268f, -0.264259f, -0.087117f},
{0.000000f, -0.154521f, 0.030419f},
{0.170659f, -0.255441f, 0.007066f},
{0.180454f, -0.704124f, -0.061920f},
{0.155948f, 0.918253f, -0.001556f},
{0.155050f, -0.228032f, 0.751753f},
{0.151757f, -0.513087f, 0.744284f},
{0.000000f, -0.182899f, 0.779477f},
{0.000000f, -0.578330f, 0.764610f},
{0.000000f, 0.685169f, -0.739686f},
{0.371476f, 0.629238f, -0.627667f},
{0.331315f, 0.641641f, -0.175468f},
{0.206943f, 0.597766f, -0.089039f},
{0.000000f, 0.614709f, -0.054922f},
{0.000000f, -0.737692f, 0.299441f},
{0.283809f, -0.102660f, 0.299441f},
{0.000000f, 0.014558f, 0.299441f},
{0.000000f, -0.736425f, 0.474106f},
{0.278490f, -0.087547f, 0.474106f},
{0.000000f, 0.025780f, 0.474106f},
{0.164839f, 0.864781f, -0.528560f},
{0.230536f, 0.696343f, -0.704629f},
{0.220279f, -0.294500f, -0.788924f},
{0.216836f, -0.741049f, -0.579700f},
{0.238591f, -0.660227f, 0.299441f},
{0.244763f, -0.660211f, 0.474106f},
{0.000000f, -0.363444f, 0.812572f},
{0.163341f, -0.354552f, 0.773703f},
{0.374463f, -0.372350f, 0.474106f},
{0.379897f, -0.380938f, 0.299441f},
{0.289253f, -0.469584f, -0.048850f},
{0.399568f, -0.463659f, -0.141744f},
{0.416824f, -0.506064f, -0.619739f},
{0.226948f, -0.580280f, -0.719311f},
{0.000000f, -0.596101f, -0.755098f},
{0.199617f, 0.050031f, -0.023613f},
{0.000000f, 0.056331f, -0.812572f},
{0.221169f, 0.056088f, -0.800430f},
{0.414907f, 0.057214f, -0.741319f},
{0.383278f, 0.079881f, -0.106452f},
{0.000000f, 0.066068f, 0.011448f},
{0.485071f, -0.225034f, -0.615697f},
{0.474322f, -0.235931f, -0.130497f},
{0.451926f, -0.378909f, -0.182230f},
{0.464485f, -0.423127f, -0.533935f},
{0.376105f, 0.621725f, -0.201967f},
{0.458732f, 0.078611f, -0.144688f},
{0.414064f, 0.587520f, -0.543056f},
{0.482586f, 0.065612f, -0.653211f},
{0.000000f, -0.672915f, 0.096026f},
{0.146952f, -0.607627f, 0.096026f},
{0.261607f, -0.401487f, 0.096026f},
{0.193018f, -0.190607f, 0.096026f},
{0.000000f, -0.095407f, 0.096026f},
{0.000000f, -0.044418f, 0.665235f},
{0.241792f, -0.132120f, 0.640095f},
{0.312765f, -0.375473f, 0.640095f},
{0.214627f, -0.620202f, 0.640095f},
{0.000000f, -0.694664f, 0.658020f},
{0.000000f, -0.682358f, 0.030419f},
{0.138512f, -0.610831f, 0.030419f},
{0.234026f, -0.438399f, 0.030419f},
{0.000000f, 0.914951f, 0.077360f},
{0.160964f, 0.841809f, 0.024144f},
{0.193354f, 0.741696f, -0.037907f},
{0.000000f, 0.800313f, 0.001882f},
{0.000000f, 0.405613f, -0.811128f},
{0.229117f, 0.399656f, -0.791482f},
{0.409787f, 0.383452f, -0.704163f},
{0.458770f, 0.376363f, -0.605461f},
{0.385168f, 0.580561f, -0.185704f},
{0.344420f, 0.600331f, -0.166386f},
{0.437609f, 0.339612f, -0.230592f},
{0.386172f, 0.365055f, -0.180691f},
{0.203357f, 0.342793f, -0.082669f},
{0.000000f, 0.367574f, -0.043515f},
{0.368402f, 0.509624f, -0.189577f},
{0.408311f, 0.494489f, -0.224777f},
{0.317982f, -0.276765f, -0.036125f},
{0.000000f, -0.705078f, 0.171934f},
{0.194647f, -0.634647f, 0.171934f},
{0.332827f, -0.390756f, 0.171934f},
{0.252044f, -0.153800f, 0.171934f},
{0.000000f, -0.052325f, 0.171934f},
{0.000000f, -0.845971f, -0.319676f},
{0.204859f, -0.774310f, -0.326206f},
{0.382866f, -0.635409f, -0.351147f},
{0.437191f, -0.532057f, -0.362802f},
{0.277419f, 0.820517f, -0.362410f},
{0.165994f, 0.946464f, -0.306175f},
{0.366520f, 0.694046f, -0.383403f},
{0.000000f, 1.000000f, -0.305615f},
{0.554754f, 0.081200f, -0.400087f},
{0.548457f, -0.240710f, -0.371820f},
{0.496187f, -0.443697f, -0.357878f},
{0.410754f, 0.655281f, -0.382353f},
{0.501407f, 0.340701f, -0.406753f},
{-0.263370f, 0.782383f, -0.488235f},
{-0.358677f, -0.624396f, -0.546179f},
{-0.292714f, 0.782558f, -0.125229f},
{-0.349165f, -0.579430f, -0.151545f},
{-0.416629f, -0.234865f, -0.718575f},
{-0.386268f, -0.264259f, -0.087117f},
{-0.170659f, -0.255441f, 0.007066f},
{-0.180454f, -0.704124f, -0.061920f},
{-0.155948f, 0.918253f, -0.001556f},
{-0.155050f, -0.228032f, 0.751753f},
{-0.151757f, -0.513087f, 0.744284f},
{-0.371476f, 0.629238f, -0.627667f},
{-0.331315f, 0.641641f, -0.175468f},
{-0.206943f, 0.597766f, -0.089039f},
{-0.283809f, -0.102660f, 0.299441f},
{-0.278490f, -0.087547f, 0.474106f},
{-0.164839f, 0.864781f, -0.528560f},
{-0.230536f, 0.696343f, -0.704629f},
{-0.220279f, -0.294500f, -0.788924f},
{-0.216836f, -0.741049f, -0.579700f},
{-0.238591f, -0.660227f, 0.299441f},
{-0.244763f, -0.660211f, 0.474106f},
{-0.163341f, -0.354552f, 0.773703f},
{-0.374463f, -0.372350f, 0.474106f},
{-0.379897f, -0.380938f, 0.299441f},
{-0.289253f, -0.469584f, -0.048850f},
{-0.399568f, -0.463659f, -0.141744f},
{-0.416824f, -0.506064f, -0.619739f},
{-0.226948f, -0.580280f, -0.719311f},
{-0.199617f, 0.050031f, -0.023613f},
{-0.221169f, 0.056088f, -0.800430f},
{-0.414907f, 0.057214f, -0.741319f},
{-0.383278f, 0.079881f, -0.106452f},
{-0.485071f, -0.225034f, -0.615697f},
{-0.474322f, -0.235931f, -0.130497f},
{-0.451926f, -0.378909f, -0.182230f},
{-0.464485f, -0.423127f, -0.533935f},
{-0.376105f, 0.621725f, -0.201967f},
{-0.458732f, 0.078611f, -0.144688f},
{-0.414064f, 0.587520f, -0.543056f},
{-0.482586f, 0.065612f, -0.653211f},
{-0.146952f, -0.607627f, 0.096026f},
{-0.261606f, -0.401487f, 0.096026f},
{-0.193018f, -0.190607f, 0.096026f},
{-0.241792f, -0.132120f, 0.640095f},
{-0.312765f, -0.375473f, 0.640095f},
{-0.214627f, -0.620202f, 0.640095f},
{-0.138512f, -0.610831f, 0.030419f},
{-0.234026f, -0.438399f, 0.030419f},
{-0.160964f, 0.841809f, 0.024144f},
{-0.193354f, 0.741696f, -0.037907f},
{-0.229117f, 0.399656f, -0.791482f},
{-0.409787f, 0.383452f, -0.704163f},
{-0.458770f, 0.376363f, -0.605461f},
{-0.385168f, 0.580561f, -0.185704f},
{-0.344420f, 0.600331f, -0.166386f},
{-0.437609f, 0.339612f, -0.230592f},
{-0.386172f, 0.365055f, -0.180691f},
{-0.203357f, 0.342793f, -0.082669f},
{-0.368402f, 0.509624f, -0.189577f},
{-0.408311f, 0.494489f, -0.224777f},
{-0.317982f, -0.276765f, -0.036125f},
{-0.194647f, -0.634647f, 0.171934f},
{-0.332827f, -0.390756f, 0.171934f},
{-0.252044f, -0.153800f, 0.171934f},
{-0.204859f, -0.774310f, -0.326206f},
{-0.382866f, -0.635409f, -0.351147f},
{-0.437191f, -0.532057f, -0.362802f},
{-0.277419f, 0.820517f, -0.362410f},
{-0.165994f, 0.946464f, -0.306175f},
{-0.366520f, 0.694046f, -0.383403f},
{-0.554754f, 0.081200f, -0.400087f},
{-0.548457f, -0.240710f, -0.371820f},
{-0.496187f, -0.443697f, -0.357878f},
{-0.410754f, 0.655281f, -0.382353f},
{-0.501407f, 0.340701f, -0.406753f},
{-0.147251f, -0.668523f, 0.330326f},
{-0.047291f, -0.930817f, 0.472716f},
{-0.224222f, -0.665336f, 0.415767f},
{-0.075450f, -0.918607f, 0.533818f},
{-0.075797f, -0.674119f, 0.541030f},
{-0.096675f, -0.818748f, 0.395991f},
{-0.159031f, -0.798414f, 0.462927f},
{-0.223648f, -0.656683f, 0.331961f},
{-0.072544f, -0.935279f, 0.500884f},
{0.000000f, -0.961081f, 0.579077f},
{0.000000f, -0.726138f, 0.328549f},
{0.000000f, -0.969221f, 0.509585f},
{-0.176269f, -0.669386f, 0.471817f},
{-0.051675f, -0.862571f, 0.538304f},
{0.000000f, -0.680106f, 0.554423f},
{0.000000f, -0.974061f, 0.546160f},
{-0.152228f, -0.819158f, 0.418117f},
{0.000000f, -0.867770f, 0.561794f},
{0.000000f, -0.827887f, 0.404080f},
{-0.123466f, -0.788030f, 0.489190f},
{0.147251f, -0.668523f, 0.330326f},
{0.047291f, -0.930817f, 0.472716f},
{0.224222f, -0.665336f, 0.415767f},
{0.075450f, -0.918607f, 0.533818f},
{0.075797f, -0.674119f, 0.541030f},
{0.096675f, -0.818748f, 0.395991f},
{0.159031f, -0.798414f, 0.462927f},
{0.223648f, -0.656683f, 0.331961f},
{0.072544f, -0.935279f, 0.500884f},
{0.176269f, -0.669386f, 0.471817f},
{0.051675f, -0.862571f, 0.538304f},
{0.152228f, -0.819158f, 0.418117f},
{0.123466f, -0.788030f, 0.489190f},
{0.000000f, -0.994773f, 0.345730f},
{0.000000f, -0.647443f, 0.199203f},
{0.000000f, -0.986165f, 0.291566f},
{0.000000f, -0.703971f, 0.341994f},
{0.000000f, -1.000000f, 0.315210f},
{0.000000f, -0.787658f, 0.226787f},
{0.000000f, -0.961085f, 0.352303f},
{-0.133409f, -0.653443f, 0.222877f},
{-0.060090f, -0.929363f, 0.267589f},
{-0.224222f, -0.658853f, 0.342353f},
{-0.094843f, -0.932646f, 0.343060f},
{-0.151330f, -0.675024f, 0.346911f},
{0.000000f, -0.932532f, 0.323403f},
{-0.120579f, -0.791706f, 0.239478f},
{-0.187682f, -0.791724f, 0.341367f},
{-0.213355f, -0.651997f, 0.277443f},
{-0.092940f, -0.939719f, 0.301090f},
{-0.176269f, -0.666860f, 0.352303f},
{-0.130777f, -0.793601f, 0.328226f},
{-0.075297f, -0.913539f, 0.352303f},
{-0.182747f, -0.797038f, 0.284545f},
{-0.150873f, -0.786911f, 0.352303f},
{-0.055104f, -0.898766f, 0.325273f},
{0.133409f, -0.653443f, 0.222877f},
{0.060090f, -0.929363f, 0.267589f},
{0.224222f, -0.658853f, 0.342353f},
{0.094843f, -0.932646f, 0.343060f},
{0.151330f, -0.675024f, 0.346911f},
{0.120579f, -0.791706f, 0.239478f},
{0.187682f, -0.791724f, 0.341367f},
{0.213355f, -0.651997f, 0.277443f},
{0.092940f, -0.939719f, 0.301090f},
{0.176269f, -0.666860f, 0.352303f},
{0.130777f, -0.793601f, 0.328226f},
{0.075297f, -0.913539f, 0.352303f},
{0.182747f, -0.797038f, 0.284545f},
{0.150873f, -0.786911f, 0.352303f},
{0.055104f, -0.898766f, 0.325273f}};
unsigned int duck_idx[DUCK_IDX_COUNT] = {
2, 73, 74, 2, 74, 21, 30, 0, 20, 30, 20, 31, 43, 42, 1, 43, 1, 33, 41, 40, 13, 41, 13, 3, 40, 71, 70, 40, 70, 13, 48, 9, 32, 48, 32, 47, 45, 88, 10, 45, 10, 49, 39, 38, 35, 39, 35, 34, 66, 37, 16, 66, 16, 67, 6, 30, 31, 6, 31, 19, 46, 47, 32, 46, 32, 8, 44, 43, 33, 44, 33, 7, 70, 69, 5, 70, 5, 13, 35, 27, 24, 35, 24, 34, 16, 18, 68, 16, 68, 67, 36, 18, 16, 36, 16, 37, 64, 17, 15, 64, 15, 65, 26, 29, 28, 26, 28, 25, 50, 11, 12, 50, 12, 45, 72, 75, 74, 72, 74, 73, 17, 36, 37, 17, 37, 15, 65, 15, 37, 65, 37, 66, 25, 28, 38, 25, 38, 39, 40, 88, 12, 40, 12, 71, 10, 88, 40, 10, 40, 41, 32, 9, 42, 32, 42, 43, 8, 32, 43, 8, 43, 44, 85, 84, 22, 85, 22, 23, 20, 78, 77, 20, 77, 31, 19, 31, 77, 19, 77, 76, 48, 58, 51, 48, 51, 9, 10, 52, 56, 10, 56, 49, 41, 53, 52, 41, 52, 10, 9, 51, 54, 9, 54, 42, 81, 80, 55, 81, 55, 21, 20, 57, 79, 20, 79, 78, 90, 89, 59, 90, 59, 60, 61, 91, 90, 61, 90, 60, 62, 92, 91, 62, 91, 61, 63, 93, 92, 63, 92, 62, 29, 64, 65, 29, 65, 28, 28, 65, 66, 28, 66, 38, 38, 66, 67, 38, 67, 35, 68, 27, 35, 68, 35, 67, 60, 59, 69, 60, 69, 70, 71, 61, 60, 71, 60, 70, 12, 62, 61, 12, 61, 71, 11, 63, 62, 11, 62, 12, 14, 4, 72, 14, 72, 73, 2, 14, 73, 22, 81, 21, 22, 21, 74, 75, 23, 22, 75, 22, 74, 83, 82, 87, 83, 87, 86, 76, 77, 47, 76, 47, 46, 78, 48, 47, 78, 47, 77, 79, 58, 48, 79, 48, 78, 49, 56, 82, 49, 82, 83, 84, 45, 49, 84, 49, 83, 85, 50, 45, 85, 45, 84, 87, 80, 81, 87, 81, 86, 22, 84, 83, 22, 83, 86, 45, 12, 88, 34, 24, 89, 34, 89, 90, 91, 39, 34, 91, 34, 90, 92, 25, 39, 92, 39, 91, 93, 26, 25, 93, 25, 92, 0, 98, 100, 0, 100, 20, 1, 96, 95, 1, 95, 33, 30, 99, 98, 30, 98, 0, 97, 96, 1, 97, 1, 42, 96, 3, 13, 96, 13, 95, 41, 3, 96, 41, 96, 97, 98, 2, 21, 98, 21, 100, 99, 14, 2, 99, 2, 98, 102, 103, 51, 102, 51, 58, 56, 52, 103, 56, 103, 102, 101, 4, 14, 101, 14, 99, 6, 101, 99, 6, 99, 30, 95, 94, 7, 95, 7, 33, 13, 5, 94, 13, 94, 95, 52, 53, 104, 52, 104, 103, 103, 104, 54, 103, 54, 51, 105, 106, 79, 105, 79, 57, 97, 104, 53, 97, 53, 41, 42, 54, 104, 42, 104, 97, 21, 55, 105, 21, 105, 100, 100, 105, 57, 100, 57, 20, 106, 105, 87, 106, 87, 82, 106, 102, 58, 106, 58, 79, 82, 56, 102, 82, 102, 106, 22, 86, 81, 80, 87, 105, 80, 105, 55, 109, 119, 157, 109, 157, 156, 123, 124, 118, 123, 118, 107, 135, 126, 108, 135, 108, 134, 133, 110, 114, 133, 114, 132, 132, 114, 154, 132, 154, 155, 138, 137, 125, 138, 125, 111, 136, 139, 112, 136, 112, 168, 131, 127, 128, 131, 128, 130, 152, 153, 117, 152, 117, 129, 6, 19, 124, 6, 124, 123, 46, 8, 125, 46, 125, 137, 44, 7, 126, 44, 126, 135, 154, 114, 5, 154, 5, 69, 128, 127, 24, 128, 24, 27, 117, 153, 68, 117, 68, 18, 36, 129, 117, 36, 117, 18, 64, 151, 116, 64, 116, 17, 26, 121, 122, 26, 122, 29, 50, 136, 113, 50, 113, 11, 72, 156, 157, 72, 157, 75, 17, 116, 129, 17, 129, 36, 151, 152, 129, 151, 129, 116, 121, 131, 130, 121, 130, 122, 132, 155, 113, 132, 113, 168, 112, 133, 132, 112, 132, 168, 125, 135, 134, 125, 134, 111, 8, 44, 135, 8, 135, 125, 85, 23, 120, 85, 120, 165, 118, 124, 158, 118, 158, 159, 19, 76, 158, 19, 158, 124, 138, 111, 140, 138, 140, 147, 112, 139, 145, 112, 145, 141, 133, 112, 141, 133, 141, 142, 111, 134, 143, 111, 143, 140, 162, 119, 144, 162, 144, 161, 118, 159, 160, 118, 160, 146, 169, 148, 59, 169, 59, 89, 149, 148, 169, 149, 169, 170, 150, 149, 170, 150, 170, 171, 63, 150, 171, 63, 171, 93, 29, 122, 151, 29, 151, 64, 122, 130, 152, 122, 152, 151, 130, 128, 153, 130, 153, 152, 68, 153, 128, 68, 128, 27, 148, 154, 69, 148, 69, 59, 155, 154, 148, 155, 148, 149, 113, 155, 149, 113, 149, 150, 11, 113, 150, 11, 150, 63, 115, 156, 72, 115, 72, 4, 109, 156, 115, 120, 157, 119, 120, 119, 162, 75, 157, 120, 75, 120, 23, 164, 166, 167, 164, 167, 163, 76, 46, 137, 76, 137, 158, 159, 158, 137, 159, 137, 138, 160, 159, 138, 160, 138, 147, 139, 164, 163, 139, 163, 145, 165, 164, 139, 165, 139, 136, 85, 165, 136, 85, 136, 50, 167, 166, 162, 167, 162, 161, 120, 166, 164, 120, 164, 165, 136, 168, 113, 127, 169, 89, 127, 89, 24, 170, 169, 127, 170, 127, 131, 171, 170, 131, 171, 131, 121, 93, 171, 121, 93, 121, 26, 107, 118, 177, 107, 177, 175, 108, 126, 172, 108, 172, 17
} // namespace ImPlot3D