public void applyImpulse(Vector3d impulse, Vector3d point, double timeStep) {
		linearVelocity.scaleAdd(1 / mass, impulse, linearVelocity);

		Vector3d row0 = new Vector3d();
		Vector3d row1 = new Vector3d();
		Vector3d row2 = new Vector3d();
		inertiaLocalInverse.getRow(0, row0);
		inertiaLocalInverse.getRow(1, row1);
		inertiaLocalInverse.getRow(2, row2);

		Vector3d cross = new Vector3d();

		cross.cross(point, impulse);
		angularVelocity.add(new Vector3d(row0.dot(cross), row1.dot(cross), row2
				.dot(cross)));
	}