// 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 Circle001 #include "stdafx.h" #include #if MAX_VERSION_MAJOR >= 25 #include #endif #pragma warning( disable : 4305 ) // Anonymous namespace, to avoid name collisions namespace { // 176 vertices float verts[] = { -0.22621f, -0.29556f, -1.3299e-007f, -0.214149f, -0.0177047f, 0.0f, -0.258514f, 0.114523f, -1.28095e-007f, -0.381346f, 0.18667f, -1.84263e-007f, -0.320505f, 0.355433f, -1.49892e-007f, -0.399844f, 0.400691f, -1.86708e-007f, -0.425734f, 0.358853f, -2.00419e-007f, -0.444788f, 0.372095f, -2.08604e-007f, -0.433887f, 0.408181f, -2.01878e-007f, -0.391243f, 0.482338f, -1.7873e-007f, -0.361897f, 0.465401f, -1.65747e-007f, -0.384271f, 0.42666f, -1.77647e-007f, -0.255789f, 0.35272f, 0.0f, -0.270601f, 0.327063f, -1.2743e-007f, -0.278886f, 0.331846f, -1.313e-007f, -0.31019f, 0.214401f, -1.4892e-007f, -0.189176f, 0.178766f, 0.0f, -0.179409f, 0.26215f, 0.0f, -0.175425f, 0.284662f, 0.0f, -0.169444f, 0.301842f, 0.0f, -0.161483f, 0.314262f, 0.0f, -0.151555f, 0.322492f, 0.0f, -0.139676f, 0.327104f, 0.0f, -0.12586f, 0.328668f, 0.0f, -0.110124f, 0.327755f, 0.0f, -0.0962906f, 0.323345f, 0.0f, -0.0840204f, 0.317081f, 0.0f, -0.0735371f, 0.308993f, 0.0f, -0.0650645f, 0.299111f, 0.0f, -0.0588263f, 0.287465f, 0.0f, -0.0550461f, 0.274085f, 0.0f, -0.0539477f, 0.259002f, 0.0f, -0.0588854f, 0.20117f, 0.0f, -0.0806113f, 0.206573f, 0.0f, -0.0849084f, 0.174411f, 0.0f, -0.114889f, 0.182065f, 0.0f, -0.114468f, 0.158121f, 0.0f, -0.0506443f, 0.132365f, 0.0f, 0.0931777f, -0.0137513f, 0.0f, 0.0875297f, -0.0193105f, 0.0f, -0.0551371f, 0.125632f, 0.0f, -0.1223f, 0.152735f, 0.0f, -0.122995f, 0.192314f, 0.0f, -0.0915834f, 0.184294f, 0.0f, -0.0872935f, 0.216401f, 0.0f, -0.0659912f, 0.211103f, 0.0f, -0.061868f, 0.259393f, 0.0f, -0.0628158f, 0.272691f, 0.0f, -0.0661024f, 0.284466f, 0.0f, -0.0715535f, 0.294701f, 0.0f, -0.078995f, 0.303382f, 0.0f, -0.0882524f, 0.310492f, 0.0f, -0.0991515f, 0.316016f, 0.0f, -0.111518f, 0.319937f, 0.0f, -0.125162f, 0.320748f, 0.0f, -0.137108f, 0.319407f, 0.0f, -0.147359f, 0.31537f, 0.0f, -0.155921f, 0.308087f, 0.0f, -0.1628f, 0.297011f, 0.0f, -0.168001f, 0.281595f, 0.0f, -0.17153f, 0.261292f, 0.0f, -0.182502f, 0.16854f, 0.0f, -0.319836f, 0.20898f, -1.54338e-007f, -0.28388f, 0.34388f, -1.31864e-007f, -0.273502f, 0.337889f, -1.27178e-007f, -0.26662f, 0.349809f, -1.24336e-007f, -0.395102f, 0.42375f, -1.83251e-007f, -0.372724f, 0.4625f, -1.71348e-007f, -0.38833f, 0.471507f, -1.78976e-007f, -0.426564f, 0.405019f, -1.98864e-007f, -0.435537f, 0.375315f, -2.03706e-007f, -0.428075f, 0.370131f, -1.99833e-007f, -0.402559f, 0.411364f, -1.86391e-007f, -0.310789f, 0.359015f, -1.44718e-007f, -0.37166f, 0.190171f, -1.79115e-007f, -0.251944f, 0.119855f, -1.24157e-007f, -0.206168f, -0.0165785f, 0.0f, -0.218293f, -0.295903f, -1.29267e-007f, -0.00870124f, -0.296724f, 0.0f, -0.064842f, -0.0797863f, 0.0f, -0.0846006f, 0.0826737f, 0.0f, 0.0403291f, -0.0133897f, 0.0f, 0.0354984f, -0.0196721f, 0.0f, -0.0744524f, 0.0648732f, 0.0f, -0.0570384f, -0.0783088f, 0.0f, -0.00102906f, -0.294739f, 0.0f, 0.23234f, -0.295624f, 0.0f, 0.23234f, -0.221779f, 0.0f, 0.168941f, -0.190079f, 0.0f, 0.168941f, -0.105356f, 0.0f, 0.308921f, -0.0385634f, 1.50513e-007f, 0.00205227f, -0.0385634f, 0.0f, 0.00205228f, -0.103894f, 0.0f, 0.0817669f, -0.103894f, 0.0f, 0.081767f, -0.190079f, 0.0f, 0.0183676f, -0.221779f, 0.0f, 0.0183676f, -0.295624f, 0.0f, 0.0104427f, -0.295624f, 0.0f, 0.0104427f, -0.216881f, 0.0f, 0.073842f, -0.185181f, 0.0f, 0.0738421f, -0.111819f, 0.0f, -0.00587264f, -0.111819f, 0.0f, -0.00587264f, -0.0306385f, 0.0f, 0.343931f, -0.0306385f, 1.68404e-007f, 0.176866f, -0.110356f, 0.0f, 0.176866f, -0.185181f, 0.0f, 0.240265f, -0.216881f, 0.0f, 0.240265f, -0.295624f, 0.0f, 0.183076f, -0.0167422f, 0.0f, 0.26544f, -0.000124961f, 1.19762e-007f, 0.267007f, -0.00789335f, 1.19336e-007f, 0.184643f, -0.0245107f, 0.0f, 0.16968f, -0.00264677f, 0.0f, 0.328405f, 0.0949673f, 1.58411e-007f, 0.332556f, 0.0882168f, 1.59371e-007f, 0.173831f, -0.00939739f, 0.0f, 0.151903f, 0.0075593f, 0.0f, 0.267659f, 0.191631f, 1.30863e-007f, 0.274368f, 0.187412f, 1.33425e-007f, 0.158611f, 0.00334045f, 0.0f, 0.133292f, 0.00967541f, 0.0f, 0.198419f, 0.320035f, 0.0f, 0.206175f, 0.318408f, 0.0f, 0.141048f, 0.00804788f, 0.0f, 0.119922f, 0.00820942f, 0.0f, 0.0781238f, 0.207393f, 0.0f, 0.0858856f, 0.208992f, 0.0f, 0.127645f, 0.00998648f, 0.0f, 0.102598f, -0.000599384f, 0.0f, 0.0326521f, 0.108802f, 0.0f, 0.039329f, 0.113071f, 0.0f, 0.109275f, 0.0036695f, 0.0f, 0.301761f, -0.0165529f, 1.38063e-007f, 0.318062f, 0.00287378f, 1.45605e-007f, 0.298635f, 0.0191747f, 1.32015e-007f, 0.282334f, -0.000251979f, 1.24474e-007f, 0.398589f, 0.128404f, 1.88507e-007f, 0.361846f, 0.13825f, 1.70869e-007f, 0.352f, 0.101506f, 1.60415e-007f, 0.388744f, 0.0916609f, 1.78053e-007f, 0.273049f, 0.0835723f, 1.27078e-007f, 0.276902f, 0.105425f, 1.28655e-007f, 0.25505f, 0.109278f, 0.0f, 0.251197f, 0.0874256f, 0.0f, 0.309372f, 0.212028f, 1.49184e-007f, 0.301168f, 0.242647f, 1.44907e-007f, 0.270548f, 0.234443f, 1.2524e-007f, 0.278753f, 0.203823f, 1.29517e-007f, 0.144352f, 0.183742f, 0.0f, 0.127353f, 0.198006f, 0.0f, 0.11309f, 0.181007f, 0.0f, 0.130088f, 0.166744f, 0.0f, 0.246171f, 0.36729f, 1.25039e-007f, 0.218898f, 0.406241f, 0.0f, 0.179947f, 0.378967f, 0.0f, 0.207221f, 0.340017f, 0.0f, 0.0972705f, 0.257034f, 0.0f, 0.0643273f, 0.276054f, 0.0f, 0.0453075f, 0.24311f, 0.0f, 0.0782507f, 0.224091f, 0.0f, 0.0400531f, 0.151682f, 0.0f, 0.0102652f, 0.162524f, 0.0f, -0.000576754f, 0.132736f, 0.0f, 0.0292112f, 0.121894f, 0.0f, 0.48f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.5f, -0.48f, 0.0f, 0.5f, 0.48f, 0.0f, 0.5f, 0.5f, 0.0f, 0.48f, 0.5f, 0.0f, -0.48f, 0.5f, 0.0f, -0.5f, 0.5f, 0.0f, -0.5f, 0.48f, 0.0f, -0.5f, -0.48f, 0.0f, -0.5f, -0.5f, 0.0f, -0.48f, -0.5f, 0.0f }; // 134 faces int faces[] = { 12, 13, 14, 1, 3, 77, 0, 1, 1, 3, 76, 77, 1, 1, 1, 75, 76, 1, 1, 1, 75, 1, 2, 1, 2, 74, 75, 2, 1, 1, 74, 2, 3, 1, 2, 74, 3, 4, 1, 2, 73, 74, 4, 1, 1, 72, 73, 4, 1, 1, 72, 4, 5, 1, 2, 71, 72, 5, 1, 1, 71, 5, 6, 1, 2, 71, 6, 7, 1, 2, 70, 71, 7, 1, 1, 70, 7, 8, 1, 2, 69, 70, 8, 1, 1, 69, 8, 9, 1, 2, 68, 69, 9, 1, 1, 68, 9, 10, 1, 2, 67, 68, 10, 1, 1, 67, 10, 11, 1, 2, 66, 67, 11, 1, 1, 65, 66, 11, 1, 1, 65, 11, 12, 1, 2, 37, 38, 39, 1, 3, 37, 39, 40, 1, 2, 36, 37, 40, 1, 1, 36, 40, 41, 1, 2, 36, 41, 42, 1, 2, 35, 36, 42, 1, 1, 35, 42, 43, 1, 2, 34, 35, 43, 1, 1, 33, 34, 43, 1, 1, 33, 43, 44, 1, 2, 33, 44, 45, 1, 2, 32, 33, 45, 1, 1, 31, 32, 45, 1, 1, 31, 45, 46, 1, 2, 30, 31, 46, 1, 1, 30, 46, 47, 1, 2, 29, 30, 47, 1, 1, 29, 47, 48, 1, 2, 28, 29, 48, 1, 1, 28, 48, 49, 1, 2, 27, 28, 49, 1, 1, 27, 49, 50, 1, 2, 26, 27, 50, 1, 1, 26, 50, 51, 1, 2, 25, 26, 51, 1, 1, 25, 51, 52, 1, 2, 24, 25, 52, 1, 1, 24, 52, 53, 1, 2, 23, 24, 53, 1, 1, 23, 53, 54, 1, 2, 22, 23, 54, 1, 1, 22, 54, 55, 1, 2, 21, 22, 55, 1, 1, 21, 55, 56, 1, 2, 20, 21, 56, 1, 1, 20, 56, 57, 1, 2, 19, 20, 57, 1, 1, 19, 57, 58, 1, 2, 18, 19, 58, 1, 1, 18, 58, 59, 1, 2, 17, 18, 59, 1, 1, 17, 59, 60, 1, 2, 17, 60, 61, 1, 2, 16, 17, 61, 1, 1, 16, 61, 62, 1, 2, 15, 16, 62, 1, 1, 15, 62, 63, 1, 2, 14, 15, 63, 1, 1, 14, 63, 64, 1, 2, 12, 14, 64, 1, 0, 12, 64, 65, 1, 2, 85, 78, 79, 1, 3, 84, 85, 79, 1, 1, 84, 79, 80, 1, 2, 83, 84, 80, 1, 1, 83, 80, 81, 1, 2, 82, 83, 81, 1, 5, 106, 107, 86, 1, 3, 106, 86, 87, 1, 2, 105, 106, 87, 1, 1, 105, 87, 88, 1, 2, 105, 88, 89, 1, 2, 104, 105, 89, 1, 1, 104, 89, 90, 1, 2, 103, 104, 90, 1, 1, 102, 103, 90, 1, 1, 102, 90, 91, 1, 2, 101, 102, 91, 1, 1, 101, 91, 92, 1, 2, 100, 101, 92, 1, 1, 100, 92, 93, 1, 2, 100, 93, 94, 1, 2, 99, 100, 94, 1, 1, 99, 94, 95, 1, 2, 98, 99, 95, 1, 1, 97, 98, 95, 1, 1, 97, 95, 96, 1, 6, 110, 111, 108, 1, 3, 110, 108, 109, 1, 6, 114, 115, 112, 1, 3, 114, 112, 113, 1, 6, 117, 118, 119, 1, 3, 116, 117, 119, 1, 5, 121, 122, 123, 1, 3, 120, 121, 123, 1, 5, 127, 124, 125, 1, 3, 126, 127, 125, 1, 5, 131, 128, 129, 1, 3, 130, 131, 129, 1, 5, 134, 132, 135, 1, 6, 133, 132, 134, 1, 5, 138, 136, 139, 1, 6, 137, 136, 138, 1, 5, 142, 140, 143, 1, 6, 141, 140, 142, 1, 5, 146, 144, 147, 1, 6, 145, 144, 146, 1, 5, 150, 148, 151, 1, 6, 149, 148, 150, 1, 5, 154, 152, 155, 1, 6, 153, 152, 154, 1, 5, 158, 156, 159, 1, 6, 157, 156, 158, 1, 5, 162, 160, 163, 1, 6, 161, 160, 162, 1, 5, 165, 164, 166, 1, 7, 168, 167, 169, 1, 7, 171, 170, 172, 1, 7, 174, 173, 175, 1, 7 }; #if MAX_VERSION_MAJOR >= 25 MaxSDK::SharedMeshPtr g_emberMesh; #else Mesh g_emberMesh; #endif } // anonymous namespace namespace ember { namespace max3d { #if MAX_VERSION_MAJOR >= 25 static void InitializeIconMesh() { if( !g_emberMesh ) { g_emberMesh = new MaxSDK::SharedMesh(); int vertCount = sizeof( verts ) / sizeof( verts[0] ) / 3; int faceCount = sizeof( faces ) / sizeof( faces[0] ) / 5; g_emberMesh->GetMesh().freeAllVData(); g_emberMesh->GetMesh().FreeAll(); g_emberMesh->GetMesh().setNumVerts( vertCount ); g_emberMesh->GetMesh().setNumFaces( faceCount ); for( int i = 0; i < vertCount; ++i ) g_emberMesh->GetMesh().setVert( i, &verts[i * 3] ); for( int i = 0; i < faceCount; ++i ) memcpy( &g_emberMesh->GetMesh().faces[i], &faces[i * 5], sizeof( Face ) ); g_emberMesh->GetMesh().InvalidateGeomCache(); g_emberMesh->GetMesh().InvalidateTopologyCache(); g_emberMesh->GetMesh().buildBoundingBox(); } } Mesh* GetEmberMesh() { InitializeIconMesh(); return g_emberMesh->GetMeshPtr(); } MaxSDK::SharedMeshPtr GetEmberMeshShared() { InitializeIconMesh(); return g_emberMesh; } #else Mesh* GetEmberMesh() { if( g_emberMesh.getNumVerts() == 0 ) { int vertCount = sizeof( verts ) / sizeof( verts[0] ) / 3; int faceCount = sizeof( faces ) / sizeof( faces[0] ) / 5; g_emberMesh.freeAllVData(); g_emberMesh.FreeAll(); g_emberMesh.setNumVerts( vertCount ); g_emberMesh.setNumFaces( faceCount ); for( int i = 0; i < vertCount; ++i ) g_emberMesh.setVert( i, &verts[i * 3] ); for( int i = 0; i < faceCount; ++i ) memcpy( &g_emberMesh.faces[i], &faces[i * 5], sizeof( Face ) ); g_emberMesh.InvalidateGeomCache(); g_emberMesh.InvalidateTopologyCache(); g_emberMesh.buildBoundingBox(); } return &g_emberMesh; } #endif void InitEmberLogoMesh( Mesh& outMesh ) { int vertCount = sizeof( verts ) / sizeof( verts[0] ) / 3; int faceCount = sizeof( faces ) / sizeof( faces[0] ) / 5; outMesh.freeAllVData(); outMesh.FreeAll(); outMesh.setNumVerts( vertCount ); outMesh.setNumFaces( faceCount ); for( int i = 0; i < vertCount; ++i ) outMesh.setVert( i, &verts[i * 3] ); for( int i = 0; i < faceCount; ++i ) memcpy( &outMesh.faces[i], &faces[i * 5], sizeof( Face ) ); } } // namespace max3d } // namespace ember