Skip to content

Commit 06c8e93

Browse files
committed
Update to "Fix compilation error on Mac OS X and errors in SliderJoint and HingeJoint"
DanielChappuis/reactphysics3d@3173b368c7e67271 c2eb925902eff519aa1e029c
1 parent 1a59ce8 commit 06c8e93

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

src/main/java/org/spout/physics/constraint/HingeJoint.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ public void initBeforeSolve(ConstraintSolverData constraintSolverData) {
204204
mImpulseUpperLimit = 0;
205205
mImpulseMotor = 0;
206206
}
207-
if (mIsLimitEnabled && (mIsLowerLimitViolated || mIsUpperLimitViolated)) {
207+
if (mIsMotorEnabled || (mIsLimitEnabled && (mIsLowerLimitViolated || mIsUpperLimitViolated))) {
208208
mInverseMassMatrixLimitMotor = 0;
209209
if (mBody1.isMotionEnabled()) {
210210
mInverseMassMatrixLimitMotor += mA1.dot(Matrix3x3.multiply(mI1, mA1));
@@ -213,13 +213,15 @@ public void initBeforeSolve(ConstraintSolverData constraintSolverData) {
213213
mInverseMassMatrixLimitMotor += mA1.dot(Matrix3x3.multiply(mI2, mA1));
214214
}
215215
mInverseMassMatrixLimitMotor = mInverseMassMatrixLimitMotor > 0 ? 1 / mInverseMassMatrixLimitMotor : 0;
216-
mBLowerLimit = 0;
217-
if (mPositionCorrectionTechnique == JointsPositionCorrectionTechnique.BAUMGARTE_JOINTS) {
218-
mBLowerLimit = biasFactor * lowerLimitError;
219-
}
220-
mBUpperLimit = 0;
221-
if (mPositionCorrectionTechnique == JointsPositionCorrectionTechnique.BAUMGARTE_JOINTS) {
222-
mBUpperLimit = biasFactor * upperLimitError;
216+
if (mIsLimitEnabled) {
217+
mBLowerLimit = 0;
218+
if (mPositionCorrectionTechnique == JointsPositionCorrectionTechnique.BAUMGARTE_JOINTS) {
219+
mBLowerLimit = biasFactor * lowerLimitError;
220+
}
221+
mBUpperLimit = 0;
222+
if (mPositionCorrectionTechnique == JointsPositionCorrectionTechnique.BAUMGARTE_JOINTS) {
223+
mBUpperLimit = biasFactor * upperLimitError;
224+
}
223225
}
224226
}
225227
}

src/main/java/org/spout/physics/constraint/SliderJoint.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -224,14 +224,16 @@ public void initBeforeSolve(ConstraintSolverData constraintSolverData) {
224224
mBUpperLimit = biasFactor * upperLimitError;
225225
}
226226
}
227-
mInverseMassMatrixMotor = 0;
228-
if (mBody1.isMotionEnabled()) {
229-
mInverseMassMatrixMotor += mBody1.getMassInverse();
230-
}
231-
if (mBody2.isMotionEnabled()) {
232-
mInverseMassMatrixMotor += mBody2.getMassInverse();
227+
if (mIsMotorEnabled) {
228+
mInverseMassMatrixMotor = 0;
229+
if (mBody1.isMotionEnabled()) {
230+
mInverseMassMatrixMotor += mBody1.getMassInverse();
231+
}
232+
if (mBody2.isMotionEnabled()) {
233+
mInverseMassMatrixMotor += mBody2.getMassInverse();
234+
}
235+
mInverseMassMatrixMotor = mInverseMassMatrixMotor > 0 ? 1 / mInverseMassMatrixMotor : 0;
233236
}
234-
mInverseMassMatrixMotor = mInverseMassMatrixMotor > 0 ? 1 / mInverseMassMatrixMotor : 0;
235237
if (!constraintSolverData.isWarmStartingActive()) {
236238
mImpulseTranslation.setToZero();
237239
mImpulseRotation.setToZero();

0 commit comments

Comments
 (0)