EDIT: Having spent a little time understanding the code I wrote, I still don't know what is wrong with it. This is the base class from which I got my class:
///ContactResultCallback is used to report contact points struct ContactResultCallback { short int m_collisionFilterGroup; short int m_collisionFilterMask; ContactResultCallback() :m_collisionFilterGroup(btBroadphaseProxy::DefaultFilter), m_collisionFilterMask(btBroadphaseProxy::AllFilter) { } virtual ~ContactResultCallback() { } virtual bool needsCollision(btBroadphaseProxy* proxy0) const { bool collides = (proxy0->m_collisionFilterGroup & m_collisionFilterMask) != 0; collides = collides && (m_collisionFilterGroup & proxy0->m_collisionFilterMask); return collides; } virtual btScalar addSingleResult(btManifoldPoint& cp, const btCollisionObjectWrapper* colObj0Wrap,int partId0,int index0,const btCollisionObjectWrapper* colObj1Wrap,int partId1,int index1) = 0; };
Now here is my derived class:
class DisablePairCollision : public btCollisionWorld::ContactResultCallback { public: virtual btScalar addSingleResult(btManifoldPoint& cp, const btCollisionObject* colObj0, int32_t partId0, int32_t index0, const btCollisionObject* colObj1, int32_t partId1, int32_t index1); btDiscreteDynamicsWorld* DynamicsWorld; };
And below I implement the main function. Still not sure why I am getting this error.
I used the code below for windows with vc2010 and code blocks without problems:
btScalar DisablePairCollision::addSingleResult(btManifoldPoint& cp, const btCollisionObject* colObj0, int32_t partId0, int32_t index0, const btCollisionObject* colObj1, int32_t partId1, int32_t index1) {
Now I'm trying to compile my project on Ubuntu, but I get this error when I try to use this class:
/home/steven/Desktop/ovgl/src/OvglScene.cpp:211: error: cannot declare variable 'Callback' to be of abstract type 'Ovgl::DisablePairCollision'