Create a triangle mesh from a TriangleVertexArray The data (vertices, faces indices) are copied from the TriangleVertexArray into the created ConvexMesh. * @param triangleVertexArray A reference to the input TriangleVertexArray * @param messages A reference to the array to stored the messages (warnings, erros, ...) * @return A pointer to the created triangle mesh */
| 703 | * @return A pointer to the created triangle mesh |
| 704 | */ |
| 705 | TriangleMesh* PhysicsCommon::createTriangleMesh(const TriangleVertexArray& triangleVertexArray, std::vector<Message>& messages) { |
| 706 | |
| 707 | TriangleMesh* mesh = new (mMemoryManager.allocate(MemoryManager::AllocationType::Pool, sizeof(TriangleMesh))) TriangleMesh(mMemoryManager.getHeapAllocator()); |
| 708 | |
| 709 | bool isValid = mesh->init(triangleVertexArray, messages); |
| 710 | |
| 711 | if (!isValid) { |
| 712 | |
| 713 | mesh->~TriangleMesh(); |
| 714 | mMemoryManager.release(MemoryManager::AllocationType::Pool, mesh, sizeof(TriangleMesh)); |
| 715 | |
| 716 | return nullptr; |
| 717 | } |
| 718 | |
| 719 | mTriangleMeshes.add(mesh); |
| 720 | |
| 721 | return mesh; |
| 722 | } |
| 723 | |
| 724 | // Destroy a triangle mesh |
| 725 | /** |