void CCollider::updateParentRigidbody() { if (mIsTrigger) { setRigidbody(HRigidbody()); return; } HSceneObject currentSO = SO(); while (currentSO != nullptr) { HRigidbody parent = currentSO->getComponent<CRigidbody>(); if (parent != nullptr) { if(currentSO->getActive() && isValidParent(parent)) setRigidbody(parent); else setRigidbody(HRigidbody()); return; } currentSO = currentSO->getParent(); } // Not found setRigidbody(HRigidbody()); }
void CRigidbody::clearColliders() { for (auto& collider : mChildren) collider->setRigidbody(HRigidbody(), true); mChildren.clear(); if (mInternal != nullptr) mInternal->removeColliders(); }