[SOLVED] gContactAddedCallback and btCollisionObjectWrapper

Erasme Beck
Posts: 3
Joined: Wed Feb 05, 2014 7:43 pm

[SOLVED] gContactAddedCallback and btCollisionObjectWrapper

Post by Erasme Beck »

Hi everyone,
I'm having an issue with a tutorial using an older version of Bullet than mine (Bullet-2.82):
http://www.youtube.com/watch?v=YweNArzAHs4

Code: Select all

bool callbackFunc(btManifoldPoint& cp, const btCollisionObject* obj1, int id1, int index1, const btCollisionObject* obj2, int id2, int index2)
{
	std::cout << "First object: " << ((bulletObject*)obj1->getUserPointer())->id << std::endl;
	std::cout << "Second objetc: " << ((bulletObject*)obj2->getUserPointer())->id << std::endl;
	return false;
}
And in the main(), line 327:

Code: Select all

gContactAddedCallback = callbackFunc;
The error:

Code: Select all

invalid conversion from ‘bool (*)(btManifoldPoint&, const btCollisionObject*, int, int, const btCollisionObject*, int, int)’ to ‘ContactAddedCallback {aka bool (*)(btManifoldPoint&, const btCollisionObjectWrapper*, int, int, const btCollisionObjectWrapper*, int, int)}’ [-fpermissive]	opengl.cpp	/TestBullet	line 327

EDIT:

I changed

Code: Select all

bool callbackFunc(btManifoldPoint& cp, const btCollisionObject* obj1, int id1, int index1, const btCollisionObject* obj2, int id2, int index2)
to

Code: Select all

bool callbackFunc(btManifoldPoint& cp, const btCollisionObjectWrapper* obj1, int id1, int index1, const btCollisionObjectWrapper* obj2, int id2, int index2)
but getUserPointer is not a member of btCollisionObjectWrapper:

Code: Select all

‘const struct btCollisionObjectWrapper’ has no member named ‘getUserPointer’	opengl.cpp	/TestBullet	line 297
How can I fix this problem?
Thank you for your answer.
Last edited by Erasme Beck on Wed Feb 05, 2014 9:47 pm, edited 2 times in total.
bwelch
Posts: 48
Joined: Thu Dec 12, 2013 4:04 pm

Re: gContactAddedCallback and btCollisionObjectWrapper: erro

Post by bwelch »

I followed the same tutorial and ran into that problem. You have to change

Code: Select all

bool callbackFunc(btManifoldPoint& cp, const btCollisionObject* obj1, int id1, int index1, const btCollisionObject* obj2, int id2, int index2)
to

Code: Select all

bool callbackFunc(btManifoldPoint& cp, const btCollisionObjectWrapper* obj1, int id1, int index1, const btCollisionObjectWrapper* obj2, int id2, int index2)
I think that's the only change needed.
Erasme Beck
Posts: 3
Joined: Wed Feb 05, 2014 7:43 pm

Re: gContactAddedCallback and btCollisionObjectWrapper: erro

Post by Erasme Beck »

Thank you for your answer.
I did that change too.
But btCollisionObjectWrapper has no member called "getUserPointer"

Code: Select all

‘const struct btCollisionObjectWrapper’ has no member named ‘getUserPointer’	opengl.cpp	/TestBullet	line 296
btCollisionObjectWrapper is maybe not fully implemented.
But I'm too new to Bullet to be sure of this assumption.
bwelch
Posts: 48
Joined: Thu Dec 12, 2013 4:04 pm

Re: gContactAddedCallback and btCollisionObjectWrapper: erro

Post by bwelch »

You have do do something like this:

Code: Select all

(bulletObject*)obj1->getCollisionObject()->getUserPointer()
Erasme Beck
Posts: 3
Joined: Wed Feb 05, 2014 7:43 pm

Re: gContactAddedCallback and btCollisionObjectWrapper: erro

Post by Erasme Beck »

bwelch wrote:You have do do something like this:

Code: Select all

(bulletObject*)obj1->getCollisionObject()->getUserPointer()
This worked!

Thank you bwelch!