Added support for separating axis test for polyhedral shapes
Added initial support for polyhedral contact clipping. This clipping takes a separating normal, that can be computed using either SAT or GJK/EPA. To enable clipping, use btPolyhedralConvexShape::initializePolyhedralFeatures(); (needs to be enabled for both convex shapes) No concave trimesh support for SAT/clipping yet. To enable SAT, see the toggle in btConvexConvexAlgorithm. Fixes in contact normal in btGjkPairDetector. Hopefully this doesn't cause any regression (we need unit tests!)
This commit is contained in:
@@ -18,18 +18,32 @@ subject to the following restrictions:
|
||||
|
||||
#include "LinearMath/btMatrix3x3.h"
|
||||
#include "btConvexInternalShape.h"
|
||||
class btConvexPolyhedron;
|
||||
|
||||
|
||||
///The btPolyhedralConvexShape is an internal interface class for polyhedral convex shapes.
|
||||
class btPolyhedralConvexShape : public btConvexInternalShape
|
||||
{
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
btConvexPolyhedron* m_polyhedron;
|
||||
|
||||
public:
|
||||
|
||||
btPolyhedralConvexShape();
|
||||
|
||||
virtual ~btPolyhedralConvexShape();
|
||||
|
||||
///optional method mainly used to generate multiple contact points by clipping polyhedral features (faces/edges)
|
||||
virtual bool initializePolyhedralFeatures();
|
||||
|
||||
const btConvexPolyhedron* getConvexPolyhedron() const
|
||||
{
|
||||
return m_polyhedron;
|
||||
}
|
||||
|
||||
//brute force implementations
|
||||
|
||||
virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const;
|
||||
|
||||
Reference in New Issue
Block a user