Engine²
Open-source game engine written in C++.
Loading...
Searching...
No Matches
Physics::Component::MeshCollider Struct Reference

Triangle mesh collider (concave mesh support). More...

#include <MeshCollider.hpp>

Public Member Functions

 MeshCollider ()=default
 Default constructor.
 MeshCollider (float edgeThreshold)
 Construct with custom active edge threshold.

Public Attributes

float activeEdgeCosThresholdAngle = 0.996195f
std::optional< Object::Component::Meshmesh
 Optional embedded mesh data for collision (avoids needing entity Mesh component).

Detailed Description

Triangle mesh collider (concave mesh support).

This component creates a triangle mesh collision shape from mesh data. The mesh can either be embedded in this component or retrieved from the entity's Object::Mesh component. This supports concave meshes, making it ideal for static terrain, floors, and complex geometry.

If this component is present on an entity with RigidBody, it uses the mesh geometry for collision instead of requiring an explicit collider.

Note
If mesh is not embedded, the entity MUST have an Object::Mesh component.
Triangle mesh colliders should ONLY be used for STATIC objects. For dynamic objects, use primitive colliders or convex hulls.
The mesh scale from the Transform component is automatically applied.

Constructor & Destructor Documentation

◆ MeshCollider() [1/2]

Physics::Component::MeshCollider::MeshCollider ( )
default

Default constructor.

◆ MeshCollider() [2/2]

Physics::Component::MeshCollider::MeshCollider ( float edgeThreshold)
inlineexplicit

Construct with custom active edge threshold.

Parameters
edgeThresholdCosine of the angle threshold for active edges

Member Data Documentation

◆ activeEdgeCosThresholdAngle

float Physics::Component::MeshCollider::activeEdgeCosThresholdAngle = 0.996195f

Cosine of the angle threshold for active edges (default: cos(5°) ≈ 0.996) Active edges prevent objects from getting stuck on internal edges when sliding across triangles Lower values = more edges marked as active = smoother sliding

◆ mesh

std::optional<Object::Component::Mesh> Physics::Component::MeshCollider::mesh

Optional embedded mesh data for collision (avoids needing entity Mesh component).


The documentation for this struct was generated from the following file: