Moderators: Sascha Willems, Thomas
Wow, you are so far ahead of me, the robot is very cool.
What is the size of the cylinder, I will try to recreate it in the sandbox?
Are the yellow platform, kinematic bodies with velocities to simulate an assembly like?
And the big round cylinder is the one causing the bug.
No sorry the crash with the last dll don't come from the listener auto delete.
It seen to happen too when I only create one box and if I try to reset the scene in runtime.
I need to debug more about it, I surely do something wrong somewhere.
dgInt32 dgCollisionCylinder::CalculatePlaneIntersection (const dgVector& normal, const dgVector& origin, dgVector* const contactsOut) const
if (scene->GetKeyState('C') != false) {
if (abody != NULL) {
NewtonDestroyBody(abody);
abody = NULL;
}
}
if (scene->GetKeyState('C') != false) {
if (abody != NULL) {
NewtonDestroyBody(abody);
abody = NULL;
}
}
void dgBroadPhase::DeleteDeadContact()
{
DG_TRACKTIME();
dgInt32 activeCount = 0;
dgContactList& contactList = *m_world;
dgContact** const contactArray = &contactList[0];
dgArray<dgJointInfo>& constraintArray = m_world->m_jointsMemory;
for (dgInt32 i = contactList.m_contactCount - 1; i >= 0; i--) {
dgContact* const contact = contactArray[i];
if (contact->m_killContact) {
m_contactCache.RemoveContactJoint(contact);
m_world->RemoveContact(contact);
contactList.m_contactCount--;
contactArray[i] = contactList[contactList.m_contactCount];
delete contact;
} else if (contact->m_isActive && contact->m_maxDOF) {
constraintArray[activeCount].m_joint = contact;
activeCount++;
}
}
dgAssert(SanityCheck());
contactList.m_activeContactCount = activeCount;
//dgTrace (("%d %d\n", contactList.m_activeContactCount, contactList.m_contactCount));
}
Users browsing this forum: No registered users and 0 guests