Unnecessary assert in dgSkeletonContainer

Report any bugs here and we'll post fixes

Moderators: Sascha Willems, Thomas

Unnecessary assert in dgSkeletonContainer

Postby Lax » Mon Aug 26, 2019 12:48 pm

Hi julio,

in debug mode, I always get an assert in Finalize method of dgSkeletonConainer:
Code: Select all
dgAssert (((rootBody->GetInvMass().m_w == dgFloat32 (0.0f)) && (m_skeleton->m_child->m_sibling == NULL)) || (m_skeleton->m_body->GetInvMass().m_w != dgFloat32 (0.0f)));

because the m_skeleton->m_child is null. But it is correct, since I'm creating empty joints in order to be able to call:
Code: Select all
this->joint->setCollisionState(this->jointRecursiveCollision->getBool() == true ? 1 : 0);

So that when e.g. a door is moved via JointSlider, it does not collide with parent joints.
I tested in release mode and the physics behave correctly.
The problem is, that I cannot debug correctly since this assert always throws.
Would it be possible only to check against m_skeleton->m_child->m_sibling == NULL, if m_skeleton->m_child is not null?

Best Regards
Lax
Please support SecondEarthTechnicBase built of Lego bricks for Lego ideas: https://ideas.lego.com/projects/81b9bd17-5ff5-40a0-ac6f-44b97b79be62
Image
Lax
 
Posts: 165
Joined: Sat Jan 08, 2011 8:24 am

Re: Unnecessary assert in dgSkeletonContainer

Postby Julio Jerez » Wed Sep 04, 2019 2:34 pm

you are connecting two static bodies with a joint
Julio Jerez
Moderator
Moderator
 
Posts: 12249
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Unnecessary assert in dgSkeletonContainer

Postby Lax » Sun Sep 08, 2019 5:32 am

Yes, I have the following scenario:
  • I have a gate, that uses a slider joint in order to open
  • The gate is within a tower
  • I set the tower as parent joint and set joint recursive collision to 0, so that the gate does not collide with the tower.
  • Issue: The gate moves higher as the tower and collides with the next tower pease, so that it cannot be opened fully.
  • I thought I could set the second tower above the gate tower as joint parent of the first tower in the and set recursive collision to zero. In the hope that the gate does also not collide with the second tower. That worked, but assert occurs.

But now I found out, that no body does collide with the second tower anymore. So this approach does not work I think.
Please support SecondEarthTechnicBase built of Lego bricks for Lego ideas: https://ideas.lego.com/projects/81b9bd17-5ff5-40a0-ac6f-44b97b79be62
Image
Lax
 
Posts: 165
Joined: Sat Jan 08, 2011 8:24 am

Re: Unnecessary assert in dgSkeletonContainer

Postby Julio Jerez » Tue Sep 10, 2019 11:39 am

There can't be a joint between two static bodies.
There should be an assert to advice against that.
I see if it is still there.
Julio Jerez
Moderator
Moderator
 
Posts: 12249
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Unnecessary assert in dgSkeletonContainer

Postby Lax » Wed Sep 11, 2019 10:35 am

Yeah you are right.
Please support SecondEarthTechnicBase built of Lego bricks for Lego ideas: https://ideas.lego.com/projects/81b9bd17-5ff5-40a0-ac6f-44b97b79be62
Image
Lax
 
Posts: 165
Joined: Sat Jan 08, 2011 8:24 am


Return to Bugs and Fixes

Who is online

Users browsing this forum: No registered users and 2 guests