Comments (3)
Updated version:
std::optional<Trade::MeshData3D> meshData = ...;
if(!meshData || meshData->primitive() != MeshPrimitive::Triangles) {
Error() << "Cannot load collision mesh, skipping";
return;
}
/* this is a collision mesh, convert to bullet mesh */
btIndexedMesh bulletMesh;
bulletMesh.m_numTriangles = meshData->indices().size()/3;
bulletMesh.m_triangleIndexBase = reinterpret_cast<const unsigned char *>(meshData->indices().data());
bulletMesh.m_triangleIndexStride = 3 * sizeof(UnsignedInt);
bulletMesh.m_numVertices = meshData->positions(0).size();
bulletMesh.m_vertexBase = reinterpret_cast<const unsigned char *>(meshData->positions(0).data());
bulletMesh.m_vertexStride = sizeof(Vector3);
bulletMesh.m_indexType = PHY_INTEGER;
bulletMesh.m_vertexType = PHY_FLOAT;
The btIndexedMesh
can then further be used as follows:
btCollisionShape* shape = nullptr;
auto tivArray = new btTriangleIndexVertexArray());
tivArray->addIndexedMesh(bulletMesh, PHY_INTEGER);
if(shapeType == "TriangleMeshShape") {
/* exact shape, but worse performance */
shape = new btBvhTriangleMeshShape(tivArray, true);
} else {
/* convex hull, but better performance */
shape = new btConvexTriangleMeshShape(tivArray, true);
} /* btConvexHullShape can be even more performant */
PS: also CC0, in case anybody cares.
from magnum-integration.
Will a free function in BulletIntegration
namespace suffice?
from magnum-integration.
Yup, why not? :)
from magnum-integration.
Related Issues (20)
- Add Support for Dear ImGui extensions HOT 1
- i get an error when i am trying running a robotic simulation with robot_dart and magnum HOT 1
- Crash in magnum-imgui Example Program HOT 1
- ImGui Integration with vcpkg HOT 15
- Could NOT find MagnumIntegration (missing: Dart) HOT 1
- [arch] build fails - lwop_ivec3 not defined HOT 2
- Magnum::ImGuiIntegration missing from debian package HOT 5
- How to use ImGui integration as subdirectory HOT 6
- Custom flags for Dear ImGui integration HOT 4
- Fail to build target iOS HOT 5
- ArchLinux PKGBUILD needs fixes HOT 1
- Linking failure with ImGui HEAD HOT 2
- ImGui integration does not support drawing lots of elements (ImGuiBackendFlags_RendererHasVtxOffset) HOT 7
- ImGui integration does not support adding UserCallback to DrawList HOT 1
- ImGui IdxOffset not honored correctly during frame drawing HOT 4
- Key Events have changed in ImGui HOT 10
- ImGUI IO assertion failure HOT 3
- Imgui_internal.h IMGUI_API inclusion HOT 16
- MSYS .gitattributes typo: Wrong line ending normalization under Windows HOT 2
- ImGuiIO modifier key states incorrect under Linux/X11 (glfw) HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from magnum-integration.