diff --git a/GenerateNewVersion.py b/GenerateNewVersion.py index ec0c9e91..57c89194 100644 --- a/GenerateNewVersion.py +++ b/GenerateNewVersion.py @@ -19,7 +19,7 @@ def findReplaceText(directory, findRegex, substituteExpr, filePattern): # ----- Code ----- # -# Read new version number from user +# Read old version number from user oldVersion = raw_input("Enter the old version string: ") # Read new version number from user @@ -32,10 +32,14 @@ file.write(newVersion + "\n") file.close() print("Version number has been updated in VERSION file") -# Update the RP3D version number in the documentation/API/Doxyfile +# Update the RP3D version number in the documentation/API/Doxyfile file findReplaceText("documentation/API/", r'(PROJECT_NUMBER[ \t]+=[ \t]+)"[\d\.]+"', r'\g<1>"' + newVersion + '"', "Doxyfile") print("Version number has been updated in documentation/API/Doxyfile file") +# Update the RP3D version number in the documentation/UserManual/title.tex file +findReplaceText("documentation/UserManual/", r'(Version:[\s]+)[\d\.]+', r'\g<1>' + newVersion, "title.tex") +print("Version number has been updated in documentation/API/Doxyfile file") + # Update the RP3D version number in the src/configuration.h file findReplaceText("src/", r'(RP3D_VERSION[ \t]+=[ \t]+std::string\()"[\d\.]+"', r'\g<1>"' + newVersion + '"', "configuration.h") print("Version number has been updated in src/configuration.h file") @@ -48,4 +52,3 @@ print("Copyright date has been updated in LICENSE file") findReplaceText("src/", '(Copyright ' + re.escape("(c)") + r' 2010-)[\d]+', r'\g<1>' + str(date.today().year), "*.h") findReplaceText("src/", '(Copyright ' + re.escape("(c)") + r' 2010-)[\d]+', r'\g<1>' + str(date.today().year), "*.cpp") print("Copyright date in license has been updated in all source code files") - diff --git a/src/body/RigidBody.cpp b/src/body/RigidBody.cpp index 27fd75d5..6322c237 100644 --- a/src/body/RigidBody.cpp +++ b/src/body/RigidBody.cpp @@ -547,17 +547,21 @@ void RigidBody::updateBroadPhaseState() const { RP3D_PROFILE("RigidBody::updateBroadPhaseState()", mProfiler); DynamicsWorld& world = static_cast(mWorld); - const Vector3 displacement = world.mTimeStep * mLinearVelocity; + const Vector3 displacement = world.mTimeStep * mLinearVelocity; // For all the proxy collision shapes of the body for (ProxyShape* shape = mProxyCollisionShapes; shape != nullptr; shape = shape->mNext) { - // Recompute the world-space AABB of the collision shape - AABB aabb; - shape->getCollisionShape()->computeAABB(aabb, mTransform * shape->getLocalToBodyTransform()); + // If the proxy-shape shape is still part of the broad-phase + if (shape->getBroadPhaseId() != -1) { - // Update the broad-phase state for the proxy collision shape - mWorld.mCollisionDetection.updateProxyCollisionShape(shape, aabb, displacement); + // Recompute the world-space AABB of the collision shape + AABB aabb; + shape->getCollisionShape()->computeAABB(aabb, mTransform * shape->getLocalToBodyTransform()); + + // Update the broad-phase state for the proxy collision shape + mWorld.mCollisionDetection.updateProxyCollisionShape(shape, aabb, displacement); + } } }