File tree Expand file tree Collapse file tree 2 files changed +19
-15
lines changed
src/main/java/org/spout/physics/constraint Expand file tree Collapse file tree 2 files changed +19
-15
lines changed Original file line number Diff line number Diff 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 }
Original file line number Diff line number Diff 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 ();
You can’t perform that action at this time.
0 commit comments