public static final Vec3 mul(Mat33 A, Vec3 v) { return new Vec3(v.x * A.ex.x + v.y * A.ey.x + v.z + A.ez.x, v.x * A.ex.y + v.y * A.ey.y + v.z * A.ez.y, v.x * A.ex.z + v.y * A.ey.z + v.z * A.ez.z); }
public Vec3 add(Vec3 argVec) { return new Vec3(x + argVec.x, y + argVec.y, z + argVec.z); }
public Vec3 clone() { return new Vec3(this); }
public Vec3 mul(float argScalar) { return new Vec3(x * argScalar, y * argScalar, z * argScalar); }
public Vec3 negate() { return new Vec3(-x, -y, -z); }
public final static Vec3 cross(Vec3 a, Vec3 b) { return new Vec3(a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x); }
public Vec3 sub(Vec3 argVec) { return new Vec3(x - argVec.x, y - argVec.y, z - argVec.z); }
protected Vec3 newInstance() { return new Vec3(); } };
/** * 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 Vec3 solve33(Vec3 b) { Vec3 x = new Vec3(); solve33ToOut(b, x); return x; }
protected WeldJoint(IWorldPool argWorld, WeldJointDef def) { super(argWorld, def); m_localAnchorA = new Vec2(def.localAnchorA); m_localAnchorB = new Vec2(def.localAnchorB); m_referenceAngle = def.referenceAngle; m_frequencyHz = def.frequencyHz; m_dampingRatio = def.dampingRatio; m_impulse = new Vec3(); m_impulse.setZero(); }
protected PrismaticJoint(IWorldPool argWorld, PrismaticJointDef def) { super(argWorld, def); m_localAnchorA = new Vec2(def.localAnchorA); m_localAnchorB = new Vec2(def.localAnchorB); m_localXAxisA = new Vec2(def.localAxisA); m_localXAxisA.normalize(); m_localYAxisA = new Vec2(); Vec2.crossToOutUnsafe(1f, m_localXAxisA, m_localYAxisA); m_referenceAngle = def.referenceAngle; m_impulse = new Vec3(); m_motorMass = 0.0f; m_motorImpulse = 0.0f; m_lowerTranslation = def.lowerTranslation; m_upperTranslation = def.upperTranslation; m_maxMotorForce = def.maxMotorForce; m_motorSpeed = def.motorSpeed; m_enableLimit = def.enableLimit; m_enableMotor = def.enableMotor; m_limitState = LimitState.INACTIVE; m_K = new Mat33(); m_axis = new Vec2(); m_perp = new Vec2(); }
public static final Vec3 mul(Mat33 A, Vec3 v) { return new Vec3(v.x * A.ex.x + v.y * A.ey.x + v.z + A.ez.x, v.x * A.ex.y + v.y * A.ey.y + v.z * A.ez.y, v.x * A.ex.z + v.y * A.ey.z + v.z * A.ez.z); }
public Vec3 sub(Vec3 argVec) { return new Vec3(x - argVec.x, y - argVec.y, z - argVec.z); }
public Vec3 clone() { return new Vec3(this); }
/** * 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 Vec3 solve33(Vec3 b) { Vec3 x = new Vec3(); solve33ToOut(b, x); return x; }
protected WeldJoint(IWorldPool argWorld, WeldJointDef def) { super(argWorld, def); m_localAnchorA = new Vec2(def.localAnchorA); m_localAnchorB = new Vec2(def.localAnchorB); m_referenceAngle = def.referenceAngle; m_frequencyHz = def.frequencyHz; m_dampingRatio = def.dampingRatio; m_impulse = new Vec3(); m_impulse.setZero(); }