solve method
Solve the constraint. This is usually called iteratively.
Implementation
@override
void solve(){
Float32List d = dd!.storage;
double rvx = l2!.x-l1!.x+a2!.y*r2z!-a2!.z*r2y!-a1!.y*r1z!+a1!.z*r1y!-velx!;
double rvy = l2!.y-l1!.y+a2!.z*r2x!-a2!.x*r2z!-a1!.z*r1x!+a1!.x*r1z!-vely!;
double rvz = l2!.z-l1!.z+a2!.x*r2y!-a2!.y*r2x!-a1!.x*r1y!+a1!.y*r1x!-velz!;
double nimpx = rvx*d[0]+rvy*d[1]+rvz*d[2];
double nimpy = rvx*d[3]+rvy*d[4]+rvz*d[5];
double nimpz = rvx*d[6]+rvy*d[7]+rvz*d[8];
impx += nimpx;
impy += nimpy;
impz += nimpz;
l1!.x += nimpx*m1!;
l1!.y += nimpy*m1!;
l1!.z += nimpz*m1!;
a1!.x += nimpx*ax1x!+nimpy*ay1x!+nimpz*az1x!;
a1!.y += nimpx*ax1y!+nimpy*ay1y!+nimpz*az1y!;
a1!.z += nimpx*ax1z!+nimpy*ay1z!+nimpz*az1z!;
l2!.x -= nimpx*m2!;
l2!.y -= nimpy*m2!;
l2!.z -= nimpz*m2!;
a2!.x -= nimpx*ax2x!+nimpy*ay2x!+nimpz*az2x!;
a2!.y -= nimpx*ax2y!+nimpy*ay2y!+nimpz*az2y!;
a2!.z -= nimpx*ax2z!+nimpy*ay2z!+nimpz*az2z!;
}