/** * Solve A * x = b, where b is a column vector. This is more efficient than computing the inverse * in one-shot cases. * * @param b * @return */ public final Vec2 solve22(Vec2 b) { Vec2 x = new Vec2(); solve22ToOut(b, x); return x; }
final Vec2 rhs = pool.popVec2(); rhs.set(m_mass.ez.x, m_mass.ez.y).mulLocal(m_impulse.z).subLocal(Cdot1); m_mass.solve22ToOut(rhs, temp); impulse.x = temp.x; impulse.y = temp.y; final Vec2 rhs = pool.popVec2(); rhs.set(m_mass.ez.x, m_mass.ez.y).mulLocal(m_impulse.z).subLocal(Cdot1); m_mass.solve22ToOut(rhs, temp); impulse.x = temp.x; impulse.y = temp.y; Vec2.crossToOutUnsafe(wB, m_rB, Cdot); Cdot.addLocal(vB).subLocal(vA).subLocal(temp); m_mass.solve22ToOut(Cdot.negateLocal(), impulse); // just leave negated
/** * Solve A * x = b, where b is a column vector. This is more efficient than computing the inverse * in one-shot cases. * * @param b * @return */ public final Vec2 solve22(Vec2 b) { Vec2 x = new Vec2(); solve22ToOut(b, x); return x; }
b.set(Cdot1).negateLocal().subLocal(temp); m_K.solve22ToOut(b, f2r); f2r.addLocal(f1.x, f1.y); m_impulse.x = f2r.x; m_K.solve22ToOut(Cdot1.negateLocal(), df); Cdot1.negateLocal();
angularError = 0.0f; K.solve22ToOut(C1, P); P.negateLocal();
/** * Solve A * x = b, where b is a column vector. This is more efficient than computing the inverse * in one-shot cases. * * @param b * @return */ public final Vec2 solve22(Vec2 b) { Vec2 x = new Vec2(); solve22ToOut(b, x); return x; }
/** * Solve A * x = b, where b is a column vector. This is more efficient than computing the inverse * in one-shot cases. * * @param b * @return */ public final Vec2 solve22(Vec2 b) { Vec2 x = new Vec2(); solve22ToOut(b, x); return x; }
/** * Solve A * x = b, where b is a column vector. This is more efficient than computing the inverse * in one-shot cases. * * @param b * @return */ public final Vec2 solve22(Vec2 b) { Vec2 x = new Vec2(); solve22ToOut(b, x); return x; }
final Vec2 rhs = pool.popVec2(); rhs.set(m_mass.ez.x, m_mass.ez.y).mulLocal(m_impulse.z).subLocal(Cdot1); m_mass.solve22ToOut(rhs, temp); impulse.x = temp.x; impulse.y = temp.y; final Vec2 rhs = pool.popVec2(); rhs.set(m_mass.ez.x, m_mass.ez.y).mulLocal(m_impulse.z).subLocal(Cdot1); m_mass.solve22ToOut(rhs, temp); impulse.x = temp.x; impulse.y = temp.y; Vec2.crossToOutUnsafe(wB, m_rB, Cdot); Cdot.addLocal(vB).subLocal(vA).subLocal(temp); m_mass.solve22ToOut(Cdot.negateLocal(), impulse); // just leave negated
b.set(Cdot1).negateLocal().subLocal(temp); m_K.solve22ToOut(b, f2r); f2r.addLocal(f1.x, f1.y); m_impulse.x = f2r.x; m_K.solve22ToOut(Cdot1.negateLocal(), df); Cdot1.negateLocal();
angularError = 0.0f; K.solve22ToOut(C1, P); P.negateLocal();
final Vec2 rhs = pool.popVec2(); rhs.set(m_mass.ez.x, m_mass.ez.y).mulLocal(m_impulse.z).subLocal(Cdot1); m_mass.solve22ToOut(rhs, temp); impulse.x = temp.x; impulse.y = temp.y; final Vec2 rhs = pool.popVec2(); rhs.set(m_mass.ez.x, m_mass.ez.y).mulLocal(m_impulse.z).subLocal(Cdot1); m_mass.solve22ToOut(rhs, temp); impulse.x = temp.x; impulse.y = temp.y; Vec2.crossToOutUnsafe(wB, m_rB, Cdot); Cdot.addLocal(vB).subLocal(vA).subLocal(temp); m_mass.solve22ToOut(Cdot.negateLocal(), impulse); // just leave negated
final Vec2 rhs = pool.popVec2(); rhs.set(m_mass.ez.x, m_mass.ez.y).mulLocal(m_impulse.z).subLocal(Cdot1); m_mass.solve22ToOut(rhs, temp); impulse.x = temp.x; impulse.y = temp.y; final Vec2 rhs = pool.popVec2(); rhs.set(m_mass.ez.x, m_mass.ez.y).mulLocal(m_impulse.z).subLocal(Cdot1); m_mass.solve22ToOut(rhs, temp); impulse.x = temp.x; impulse.y = temp.y; Vec2.crossToOutUnsafe(wB, m_rB, Cdot); Cdot.addLocal(vB).subLocal(vA).subLocal(temp); m_mass.solve22ToOut(Cdot.negateLocal(), impulse); // just leave negated
final Vec2 rhs = pool.popVec2(); rhs.set(m_mass.ez.x, m_mass.ez.y).mulLocal(m_impulse.z).subLocal(Cdot1); m_mass.solve22ToOut(rhs, temp); impulse.x = temp.x; impulse.y = temp.y; final Vec2 rhs = pool.popVec2(); rhs.set(m_mass.ez.x, m_mass.ez.y).mulLocal(m_impulse.z).subLocal(Cdot1); m_mass.solve22ToOut(rhs, temp); impulse.x = temp.x; impulse.y = temp.y; Vec2.crossToOutUnsafe(wB, m_rB, Cdot); Cdot.addLocal(vB).subLocal(vA).subLocal(temp); m_mass.solve22ToOut(Cdot.negateLocal(), impulse); // just leave negated
b.set(Cdot1).negateLocal().subLocal(temp); m_K.solve22ToOut(b, f2r); f2r.addLocal(f1.x, f1.y); m_impulse.x = f2r.x; m_K.solve22ToOut(Cdot1.negateLocal(), df); Cdot1.negateLocal();
b.set(Cdot1).negateLocal().subLocal(temp); m_K.solve22ToOut(b, f2r); f2r.addLocal(f1.x, f1.y); m_impulse.x = f2r.x; m_K.solve22ToOut(Cdot1.negateLocal(), df); Cdot1.negateLocal();
b.set(Cdot1).negateLocal().subLocal(temp); m_K.solve22ToOut(b, f2r); f2r.addLocal(f1.x, f1.y); m_impulse.x = f2r.x; m_K.solve22ToOut(Cdot1.negateLocal(), df); Cdot1.negateLocal();
angularError = 0.0f; K.solve22ToOut(C1, P); P.negateLocal();
angularError = 0.0f; K.solve22ToOut(C1, P); P.negateLocal();
angularError = 0.0f; K.solve22ToOut(C1, P); P.negateLocal();