// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // C++ Mesh File for 3ds Max, created by SaveMeshToCpp Macroscript // Built from the object Text_SIMEmber #include "stdafx.h" #include #if MAX_VERSION_MAJOR >= 25 #include #endif #pragma warning( disable : 4305 ) // Anonymous namespace, to avoid name collisions namespace { // 250 vertices float verts[] = { -0.361113, -0.406677, 0.0, -0.365532, -0.398632, 0.0, -0.373042, -0.392365, 0.0, -0.383785, -0.387566, 0.0, -0.389866, -0.385753, 0.0, -0.395532, -0.384375, 0.0, -0.406918, -0.381981, 0.0, -0.414509, -0.379994, 0.0, -0.419207, -0.377808, 0.0, -0.421647, -0.375024, 0.0, -0.42246, -0.371242, 0.0, -0.421955, -0.368546, 0.0, -0.420438, -0.36616, 0.0, -0.418217, -0.364213, 0.0, -0.415598, -0.362833, 0.0, -0.412358, -0.361727, 0.0, -0.408991, -0.361042, 0.0, -0.405551, -0.360685, 0.0, -0.402095, -0.360566, 0.0, -0.392371, -0.361444, 0.0, -0.382846, -0.364079, 0.0, -0.374153, -0.368017, 0.0, -0.366922, -0.372806, 0.0, -0.36396, -0.372806, 0.0, -0.36396, -0.348, 0.0, -0.372247, -0.345152, 0.0, -0.381926, -0.342828, 0.0, -0.392365, -0.341282, 0.0, -0.40293, -0.340766, 0.0, -0.422189, -0.343152, 0.0, -0.437597, -0.350308, 0.0, -0.447709, -0.361237, 0.0, -0.45108, -0.374941, 0.0, -0.449589, -0.385272, 0.0, -0.445116, -0.393771, 0.0, -0.437246, -0.400564, 0.0, -0.425562, -0.40578, 0.0, -0.419426, -0.407568, 0.0, -0.412875, -0.40901, 0.0, -0.400044, -0.411731, 0.0, -0.394956, -0.413409, 0.0, -0.39126, -0.415686, 0.0, -0.38901, -0.418507, 0.0, -0.38826, -0.421817, 0.0, -0.388776, -0.425183, 0.0, -0.390323, -0.427608, 0.0, -0.392666, -0.429399, 0.0, -0.39557, -0.430865, 0.0, -0.398555, -0.431733, 0.0, -0.4023, -0.432312, 0.0, -0.406027, -0.432638, 0.0, -0.408957, -0.432746, 0.0, -0.419008, -0.431826, 0.0, -0.429474, -0.429065, 0.0, -0.439632, -0.424589, 0.0, -0.44876, -0.418526, 0.0, -0.4518, -0.418526, 0.0, -0.4518, -0.444393, 0.0, -0.442796, -0.447699, 0.0, -0.433157, -0.450371, 0.0, -0.422343, -0.452137, 0.0, -0.409809, -0.452726, 0.0, -0.389059, -0.450232, 0.0, -0.373141, -0.442749, 0.0, -0.363015, -0.431275, 0.0, -0.35964, -0.416808, 0.0, -0.2826, -0.431486, 0.0, -0.30024, -0.431486, 0.0, -0.30024, -0.362006, 0.0, -0.2826, -0.362006, 0.0, -0.2826, -0.342926, 0.0, -0.3456, -0.342926, 0.0, -0.3456, -0.362006, 0.0, -0.32796, -0.362006, 0.0, -0.32796, -0.431486, 0.0, -0.3456, -0.431486, 0.0, -0.3456, -0.450566, 0.0, -0.2826, -0.450566, 0.0, -0.14688, -0.342926, 0.0, -0.17921, -0.342926, 0.0, -0.203273, -0.396876, 0.0, -0.227408, -0.342926, 0.0, -0.25992, -0.342926, 0.0, -0.25992, -0.450566, 0.0, -0.23346, -0.450566, 0.0, -0.23346, -0.378459, 0.0, -0.213576, -0.425186, 0.0, -0.194484, -0.425186, 0.0, -0.1746, -0.378459, 0.0, -0.1746, -0.450566, 0.0, -0.14688, -0.450566, 0.0, 0.01242, -0.429686, 0.0, -0.0378, -0.429686, 0.0, -0.0378, -0.403226, 0.0, 0.00882, -0.403226, 0.0, 0.00882, -0.382346, 0.0, -0.0378, -0.382346, 0.0, -0.0378, -0.363806, 0.0, 0.01242, -0.363806, 0.0, 0.01242, -0.342926, 0.0, -0.06552, -0.342926, 0.0, -0.06552, -0.450566, 0.0, 0.01242, -0.450566, 0.0, 0.117719, -0.390721, 0.0, 0.121171, -0.389228, 0.0, 0.124315, -0.388387, 0.0, 0.127533, -0.388106, 0.0, 0.131834, -0.388405, 0.0, 0.135051, -0.3893, 0.0, 0.137363, -0.390847, 0.0, 0.138952, -0.393101, 0.0, 0.139991, -0.396086, 0.0, 0.140507, -0.399832, 0.0, 0.14076, -0.409965, 0.0, 0.14076, -0.450566, 0.0, 0.16686, -0.450566, 0.0, 0.16686, -0.39766, 0.0, 0.165155, -0.384561, 0.0, 0.160038, -0.374935, 0.0, 0.151638, -0.369018, 0.0, 0.140079, -0.367046, 0.0, 0.132931, -0.367987, 0.0, 0.12564, -0.370809, 0.0, 0.118169, -0.375278, 0.0, 0.110481, -0.381159, 0.0, 0.106348, -0.375053, 0.0, 0.100879, -0.370629, 0.0, 0.0942722, -0.367942, 0.0, 0.0867262, -0.367046, 0.0, 0.0796145, -0.367788, 0.0, 0.0731517, -0.370013, 0.0, 0.0668697, -0.37356, 0.0, 0.0603, -0.378265, 0.0, 0.0603, -0.369386, 0.0, 0.0342, -0.369386, 0.0, 0.0342, -0.450566, 0.0, 0.0603, -0.450566, 0.0, 0.0603, -0.392955, 0.0, 0.063372, -0.391264, 0.0, 0.0668053, -0.389663, 0.0, 0.0704742, -0.388495, 0.0, 0.0742528, -0.388106, 0.0, 0.0784898, -0.388405, 0.0, 0.0816609, -0.3893, 0.0, 0.0839651, -0.390847, 0.0, 0.0856013, -0.393101, 0.0, 0.0866482, -0.396095, 0.0, 0.0871903, -0.399867, 0.0, 0.0874076, -0.404472, 0.0, 0.08748, -0.409965, 0.0, 0.08748, -0.450566, 0.0, 0.11358, -0.450566, 0.0, 0.11358, -0.392955, 0.0, 0.273856, -0.391382, 0.0, 0.267604, -0.37816, 0.0, 0.257491, -0.369825, 0.0, 0.243827, -0.367046, 0.0, 0.236117, -0.367787, 0.0, 0.229366, -0.370011, 0.0, 0.22316, -0.373428, 0.0, 0.21708, -0.377751, 0.0, 0.21708, -0.338066, 0.0, 0.19098, -0.338066, 0.0, 0.19098, -0.450566, 0.0, 0.215992, -0.450566, 0.0, 0.21708, -0.446516, 0.0, 0.221845, -0.448942, 0.0, 0.226865, -0.450725, 0.0, 0.232429, -0.451821, 0.0, 0.238826, -0.452186, 0.0, 0.253387, -0.449163, 0.0, 0.26532, -0.440095, 0.0, 0.273285, -0.426231, 0.0, 0.27594, -0.40882, 0.0, 0.247676, -0.419996, 0.0, 0.243883, -0.42758, 0.0, 0.237508, -0.43213, 0.0, 0.228496, -0.433646, 0.0, 0.225208, -0.433556, 0.0, 0.222427, -0.433285, 0.0, 0.219826, -0.432761, 0.0, 0.21708, -0.431914, 0.0, 0.21708, -0.39118, 0.0, 0.220711, -0.389329, 0.0, 0.224522, -0.387966, 0.0, 0.228369, -0.387126, 0.0, 0.232107, -0.386846, 0.0, 0.240126, -0.388309, 0.0, 0.245256, -0.392696, 0.0, 0.248019, -0.399792, 0.0, 0.24894, -0.40938, 0.0, 0.37458, -0.405648, 0.0, 0.372081, -0.389065, 0.0, 0.364586, -0.376869, 0.0, 0.352129, -0.369367, 0.0, 0.334747, -0.366866, 0.0, 0.315527, -0.369802, 0.0, 0.300888, -0.378611, 0.0, 0.291627, -0.392442, 0.0, 0.28854, -0.410446, 0.0, 0.291802, -0.428424, 0.0, 0.301589, -0.441741, 0.0, 0.317501, -0.44998, 0.0, 0.33914, -0.452726, 0.0, 0.34822, -0.452327, 0.0, 0.356466, -0.45113, 0.0, 0.364549, -0.449044, 0.0, 0.37314, -0.445979, 0.0, 0.37314, -0.425006, 0.0, 0.370226, -0.425006, 0.0, 0.36489, -0.428371, 0.0, 0.357915, -0.431514, 0.0, 0.349992, -0.433788, 0.0, 0.341814, -0.434546, 0.0, 0.330294, -0.433272, 0.0, 0.321961, -0.42945, 0.0, 0.316761, -0.423226, 0.0, 0.31464, -0.414746, 0.0, 0.37458, -0.414746, 0.0, 0.314567, -0.399446, 0.0, 0.31622, -0.392032, 0.0, 0.320013, -0.386963, 0.0, 0.32555, -0.38404, 0.0, 0.332432, -0.383066, 0.0, 0.339494, -0.384095, 0.0, 0.344415, -0.387179, 0.0, 0.347355, -0.392303, 0.0, 0.34848, -0.399446, 0.0, 0.4518, -0.369316, 0.0, 0.450393, -0.369188, 0.0, 0.44877, -0.369098, 0.0, 0.445666, -0.369026, 0.0, 0.440075, -0.369641, 0.0, 0.433977, -0.371484, 0.0, 0.427068, -0.375172, 0.0, 0.41904, -0.38132, 0.0, 0.41904, -0.369386, 0.0, 0.39294, -0.369386, 0.0, 0.39294, -0.450566, 0.0, 0.41904, -0.450566, 0.0, 0.41904, -0.39615, 0.0, 0.423785, -0.394667, 0.0, 0.428205, -0.39369, 0.0, 0.432786, -0.393147, 0.0, 0.438019, -0.392966, 0.0, 0.440778, -0.393034, 0.0, 0.444151, -0.393236, 0.0, 0.447326, -0.393574, 0.0, 0.449491, -0.394046, 0.0, 0.4518, -0.394046, 0.0 }; // 238 faces int faces[] = { 55, 56, 57, 1, 3, 54, 55, 57, 1, 1, 54, 57, 58, 1, 2, 53, 54, 58, 1, 1, 53, 58, 59, 1, 2, 52, 53, 59, 1, 1, 52, 59, 60, 1, 2, 52, 60, 61, 1, 2, 51, 52, 61, 1, 1, 51, 61, 62, 1, 2, 50, 51, 62, 1, 1, 49, 50, 62, 1, 1, 48, 49, 62, 1, 1, 47, 48, 62, 1, 1, 47, 62, 63, 1, 2, 46, 47, 63, 1, 1, 45, 46, 63, 1, 1, 22, 23, 24, 1, 3, 21, 22, 24, 1, 1, 21, 24, 25, 1, 2, 20, 21, 25, 1, 1, 20, 25, 26, 1, 2, 19, 20, 26, 1, 1, 19, 26, 27, 1, 2, 18, 19, 27, 1, 1, 18, 27, 28, 1, 2, 18, 28, 29, 1, 2, 17, 18, 29, 1, 1, 16, 17, 29, 1, 1, 15, 16, 29, 1, 1, 14, 15, 29, 1, 1, 14, 29, 30, 1, 2, 13, 14, 30, 1, 1, 12, 13, 30, 1, 1, 45, 63, 64, 1, 2, 44, 45, 64, 1, 1, 44, 64, 65, 1, 2, 43, 44, 65, 1, 1, 12, 30, 31, 1, 2, 11, 12, 31, 1, 1, 11, 31, 32, 1, 2, 10, 11, 32, 1, 1, 10, 32, 33, 1, 2, 9, 10, 33, 1, 1, 9, 33, 34, 1, 2, 9, 34, 35, 1, 2, 8, 9, 35, 1, 1, 8, 35, 36, 1, 2, 7, 8, 36, 1, 1, 7, 36, 37, 1, 2, 6, 7, 37, 1, 1, 6, 37, 38, 1, 2, 6, 38, 39, 1, 2, 5, 6, 39, 1, 1, 4, 5, 39, 1, 1, 4, 39, 40, 1, 2, 3, 4, 40, 1, 1, 2, 3, 40, 1, 1, 2, 40, 41, 1, 2, 1, 2, 41, 1, 1, 1, 41, 42, 1, 2, 0, 1, 42, 1, 1, 65, 0, 42, 1, 1, 43, 65, 42, 1, 4, 76, 77, 66, 1, 3, 76, 66, 67, 1, 2, 74, 75, 76, 1, 3, 74, 76, 67, 1, 0, 73, 74, 67, 1, 1, 73, 67, 68, 1, 2, 71, 72, 73, 1, 3, 70, 71, 73, 1, 1, 70, 73, 68, 1, 0, 69, 70, 68, 1, 5, 89, 90, 78, 1, 3, 88, 89, 78, 1, 1, 88, 78, 79, 1, 2, 88, 79, 80, 1, 2, 87, 88, 80, 1, 1, 86, 87, 80, 1, 1, 85, 86, 80, 1, 1, 85, 80, 81, 1, 2, 85, 81, 82, 1, 2, 85, 82, 83, 1, 2, 84, 85, 83, 1, 5, 101, 102, 91, 1, 3, 101, 91, 92, 1, 2, 100, 101, 92, 1, 1, 100, 92, 93, 1, 2, 98, 99, 100, 1, 3, 97, 98, 100, 1, 1, 94, 95, 96, 1, 3, 93, 94, 96, 1, 1, 100, 93, 96, 1, 0, 97, 100, 96, 1, 4, 150, 151, 152, 1, 3, 149, 150, 152, 1, 1, 148, 149, 152, 1, 1, 147, 148, 152, 1, 1, 146, 147, 152, 1, 1, 135, 136, 137, 1, 3, 134, 135, 137, 1, 1, 132, 133, 134, 1, 3, 132, 134, 137, 1, 0, 132, 137, 138, 1, 2, 132, 138, 139, 1, 2, 114, 115, 116, 1, 3, 113, 114, 116, 1, 1, 112, 113, 116, 1, 1, 112, 116, 117, 1, 2, 111, 112, 117, 1, 1, 110, 111, 117, 1, 1, 110, 117, 118, 1, 2, 110, 118, 119, 1, 2, 109, 110, 119, 1, 1, 109, 119, 120, 1, 2, 108, 109, 120, 1, 1, 108, 120, 121, 1, 2, 107, 108, 121, 1, 1, 107, 121, 122, 1, 2, 106, 107, 122, 1, 1, 106, 122, 123, 1, 2, 105, 106, 123, 1, 1, 105, 123, 124, 1, 2, 104, 105, 124, 1, 1, 103, 104, 124, 1, 1, 152, 103, 124, 1, 1, 146, 152, 124, 1, 0, 145, 146, 124, 1, 1, 145, 124, 125, 1, 2, 145, 125, 126, 1, 2, 144, 145, 126, 1, 1, 144, 126, 127, 1, 2, 144, 127, 128, 1, 2, 143, 144, 128, 1, 1, 143, 128, 129, 1, 2, 142, 143, 129, 1, 1, 142, 129, 130, 1, 2, 141, 142, 130, 1, 1, 141, 130, 131, 1, 2, 140, 141, 131, 1, 1, 140, 131, 132, 1, 2, 140, 132, 139, 1, 4, 154, 184, 185, 1, 2, 154, 185, 186, 1, 2, 154, 186, 187, 1, 2, 184, 154, 155, 1, 2, 184, 155, 156, 1, 2, 184, 156, 157, 1, 2, 184, 157, 158, 1, 2, 184, 158, 159, 1, 2, 184, 159, 160, 1, 2, 154, 187, 188, 1, 2, 183, 184, 160, 1, 1, 153, 154, 188, 1, 1, 153, 188, 189, 1, 2, 173, 153, 189, 1, 1, 173, 189, 190, 1, 2, 172, 173, 190, 1, 1, 172, 190, 174, 1, 2, 171, 172, 174, 1, 1, 171, 174, 175, 1, 2, 170, 171, 175, 1, 1, 169, 170, 175, 1, 1, 169, 175, 176, 1, 2, 168, 169, 176, 1, 1, 168, 176, 177, 1, 2, 167, 168, 177, 1, 1, 166, 167, 177, 1, 1, 166, 177, 178, 1, 2, 165, 166, 178, 1, 1, 165, 178, 179, 1, 2, 165, 179, 180, 1, 2, 162, 163, 164, 1, 3, 162, 164, 165, 1, 2, 160, 161, 162, 1, 3, 165, 180, 181, 1, 2, 162, 165, 181, 1, 0, 162, 181, 182, 1, 2, 160, 162, 182, 1, 0, 183, 160, 182, 1, 4, 227, 219, 191, 1, 1, 227, 191, 192, 1, 2, 226, 227, 192, 1, 1, 226, 192, 193, 1, 2, 226, 193, 194, 1, 2, 225, 226, 194, 1, 1, 225, 194, 195, 1, 2, 224, 225, 195, 1, 1, 223, 224, 195, 1, 1, 223, 195, 196, 1, 2, 222, 223, 196, 1, 1, 221, 222, 196, 1, 1, 221, 196, 197, 1, 2, 220, 221, 197, 1, 1, 220, 197, 198, 1, 2, 219, 220, 198, 1, 1, 219, 198, 199, 1, 2, 217, 218, 191, 1, 3, 217, 191, 219, 1, 0, 217, 219, 199, 1, 0, 217, 199, 200, 1, 2, 216, 217, 200, 1, 1, 216, 200, 201, 1, 2, 216, 201, 202, 1, 2, 215, 216, 202, 1, 1, 214, 215, 202, 1, 1, 214, 202, 203, 1, 2, 213, 214, 203, 1, 1, 213, 203, 204, 1, 2, 212, 213, 204, 1, 1, 212, 204, 205, 1, 2, 211, 212, 205, 1, 1, 211, 205, 206, 1, 2, 207, 208, 209, 1, 3, 207, 209, 210, 1, 2, 206, 207, 210, 1, 1, 211, 206, 210, 1, 4, 248, 249, 228, 1, 3, 247, 248, 228, 1, 1, 247, 228, 229, 1, 2, 247, 229, 230, 1, 2, 246, 247, 230, 1, 1, 246, 230, 231, 1, 2, 246, 231, 232, 1, 2, 245, 246, 232, 1, 1, 245, 232, 233, 1, 2, 244, 245, 233, 1, 1, 244, 233, 234, 1, 2, 243, 244, 234, 1, 1, 243, 234, 235, 1, 2, 242, 243, 235, 1, 1, 241, 242, 235, 1, 1, 240, 241, 235, 1, 1, 238, 239, 240, 1, 3, 237, 238, 240, 1, 1, 237, 240, 235, 1, 0, 236, 237, 235, 1, 5 }; #if MAX_VERSION_MAJOR >= 25 MaxSDK::SharedMeshPtr g_simEmberMesh; #else Mesh g_simEmberMesh; #endif } // anonymous namespace namespace ember { namespace max3d { void InitEmberLogoMesh( Mesh& outMesh ); #if MAX_VERSION_MAJOR >= 25 static void InitializeIconMesh() { if( !g_simEmberMesh ) { g_simEmberMesh = new MaxSDK::SharedMesh(); InitEmberLogoMesh( g_simEmberMesh->GetMesh() ); int vertOffset = g_simEmberMesh->GetMesh().getNumVerts(); int vertCount = sizeof( verts ) / sizeof( verts[0] ) / 3; int faceOffset = g_simEmberMesh->GetMesh().getNumFaces(); int faceCount = sizeof( faces ) / sizeof( faces[0] ) / 5; g_simEmberMesh->GetMesh().setNumVerts( vertCount + vertOffset, TRUE ); g_simEmberMesh->GetMesh().setNumFaces( faceCount + faceOffset, TRUE ); float* v = verts; for( int i = 0; i < vertCount; ++i, v += 3 ) g_simEmberMesh->GetMesh().setVert( i + vertOffset, v[0], v[1], v[2] ); int* f = faces; for( int i = 0; i < faceCount; ++i, f += 5 ) { f[0] += vertOffset; f[1] += vertOffset; f[2] += vertOffset; // Tweak the indices to compensate for the logo. memcpy( &g_simEmberMesh->GetMesh().faces[i + faceOffset], f, sizeof( Face ) ); } g_simEmberMesh->GetMesh().InvalidateGeomCache(); g_simEmberMesh->GetMesh().InvalidateTopologyCache(); g_simEmberMesh->GetMesh().buildBoundingBox(); } } const Mesh* GetSimEmberMesh() { InitializeIconMesh(); return g_simEmberMesh->GetMeshPtr(); } MaxSDK::SharedMeshPtr GetSimEmberMeshShared() { InitializeIconMesh(); return g_simEmberMesh; } #else const Mesh* GetSimEmberMesh() { if( g_simEmberMesh.getNumVerts() == 0 ) { InitEmberLogoMesh( g_simEmberMesh ); int vertOffset = g_simEmberMesh.getNumVerts(); int vertCount = sizeof( verts ) / sizeof( verts[0] ) / 3; int faceOffset = g_simEmberMesh.getNumFaces(); int faceCount = sizeof( faces ) / sizeof( faces[0] ) / 5; g_simEmberMesh.setNumVerts( vertCount + vertOffset, TRUE ); g_simEmberMesh.setNumFaces( faceCount + faceOffset, TRUE ); float* v = verts; for( int i = 0; i < vertCount; ++i, v += 3 ) g_simEmberMesh.setVert( i + vertOffset, v[0], v[1], v[2] ); int* f = faces; for( int i = 0; i < faceCount; ++i, f += 5 ) { f[0] += vertOffset; f[1] += vertOffset; f[2] += vertOffset; // Tweak the indices to compensate for the logo. memcpy( &g_simEmberMesh.faces[i + faceOffset], f, sizeof( Face ) ); } g_simEmberMesh.InvalidateGeomCache(); g_simEmberMesh.InvalidateTopologyCache(); g_simEmberMesh.buildBoundingBox(); } return &g_simEmberMesh; } #endif } // namespace max3d } // namespace ember