void Vector3Subtract( DVector3C left, DVector3C right, DVector3 result ) { // result[0] = left[0] - right[0]; // result[1] = left[1] - right[1]; // result[2] = left[2] - right[2]; // result[3] = REAL(0.0); result.eqDiff(left, right); }
static void dVector3Subtract(final DVector3C a,final DVector3C b,DVector3 c) { c.eqDiff(a, b); // c.v[0] = a.v[0] - b.v[0]; // c.v[1] = a.v[1] - b.v[1]; // c.v[2] = a.v[2] - b.v[2]; }
static void dVector3Subtract(final DVector3C a,final DVector3C b,DVector3 c) { c.eqDiff(a, b); // c.v[0] = a.v[0] - b.v[0]; // c.v[1] = a.v[1] - b.v[1]; // c.v[2] = a.v[2] - b.v[2]; }
void Vector3Subtract( DVector3C left, DVector3C right, DVector3 result ) { // result[0] = left[0] - right[0]; // result[1] = left[1] - right[1]; // result[2] = left[2] - right[2]; // result[3] = REAL(0.0); result.eqDiff(left, right); }
private void SUBTRACT(DVector3C a, DVector3C b, DVector3 r) { r.eqDiff(a, b); }
private void SUBTRACT(DVector3C a, DVector3C b, DVector3 r) { r.eqDiff(a, b); }
private void SUBTRACT(DVector3C a, DVector3C b, DVector3 r) { r.eqDiff(a, b); }
private void SUBTRACT(DVector3C a, DVector3C b, DVector3 r) { r.eqDiff(a, b); }
private void addSpringForce (double ks) { DVector3C p1 = body[0].getPosition(); DVector3C p2 = body[1].getPosition(); DVector3 tmp = new DVector3(); //dBodyAddForce (body[0],ks*(p2.v[0]-p1.v[0]),ks*(p2.v[1]-p1.v[1]),ks*(p2.v[2]-p1.v[2])); tmp.eqDiff(p2, p1).scale(ks); body[0].addForce(tmp); //dBodyAddForce (body[1],ks*(p1.v[0]-p2.v[0]),ks*(p1.v[1]-p2.v[1]),ks*(p1.v[2]-p2.v[2])); tmp.eqDiff(p1, p2).scale(ks); body[1].addForce(tmp); }
private void addSpringForce (double ks) { DVector3C p1 = dBodyGetPosition (body[0]); DVector3C p2 = dBodyGetPosition (body[1]); DVector3 tmp = new DVector3(); //dBodyAddForce (body[0],ks*(p2.v[0]-p1.v[0]),ks*(p2.v[1]-p1.v[1]),ks*(p2.v[2]-p1.v[2])); tmp.eqDiff(p2, p1).scale(ks); body[0].addForce(tmp); //dBodyAddForce (body[1],ks*(p1.v[0]-p2.v[0]),ks*(p1.v[1]-p2.v[1]),ks*(p1.v[2]-p2.v[2])); tmp.eqDiff(p1, p2).scale(ks); body[1].addForce(tmp); }
private static final void _CalculateAxis(final DVector3C v1, final DVector3C v2, final DVector3C v3, final DVector3 r) { DVector3 t1 = new DVector3(); DVector3 t2 = new DVector3(); t1.eqDiff(v1, v2);//dVector3Subtract(v1,v2,t1); OdeMath.dCalcVectorCross3(t2,t1,v3);//dVector3Cross(t1,v3,t2); OdeMath.dCalcVectorCross3(r,t2,v3);//dVector3Cross(t2,v3,r); }
private static final void _CalculateAxis(final DVector3C v1, final DVector3C v2, final DVector3C v3, final DVector3 r) { DVector3 t1 = new DVector3(); DVector3 t2 = new DVector3(); t1.eqDiff(v1, v2);//dVector3Subtract(v1,v2,t1); OdeMath.dCalcVectorCross3(t2,t1,v3);//dVector3Cross(t1,v3,t2); OdeMath.dCalcVectorCross3(r,t2,v3);//dVector3Cross(t2,v3,r); }
public double dGeomSpherePointDepth (DVector3C xyz) { recomputePosr(); DVector3 pos = new DVector3(); pos.eqDiff(xyz, final_posr().pos()); return _radius - pos.length(); }
public double dGeomSpherePointDepth (DVector3C xyz) { recomputePosr(); DVector3 pos = new DVector3(); pos.eqDiff(xyz, final_posr().pos()); return _radius - pos.length(); }
void getWorldOffsetPosr(final DxPosRC body_posr, final DxPosRC world_posr, DxPosR offset_posr) { DMatrix3 inv_body = new DMatrix3(); matrixInvert(body_posr.R(), inv_body); dMultiply0_333(offset_posr.Rw(), inv_body, world_posr.R()); DVector3 world_offset = new DVector3(); // world_offset.v[0] = world_posr.pos.v[0] - body_posr.pos.v[0]; // world_offset.v[1] = world_posr.pos.v[1] - body_posr.pos.v[1]; // world_offset.v[2] = world_posr.pos.v[2] - body_posr.pos.v[2]; world_offset.eqDiff( world_posr.pos(), body_posr.pos() ); dMultiply0_331(offset_posr.pos, inv_body, world_offset); }
void getWorldOffsetPosr(final DxPosRC body_posr, final DxPosRC world_posr, DxPosR offset_posr) { DMatrix3 inv_body = new DMatrix3(); matrixInvert(body_posr.R(), inv_body); dMultiply0_333(offset_posr.Rw(), inv_body, world_posr.R()); DVector3 world_offset = new DVector3(); // world_offset.v[0] = world_posr.pos.v[0] - body_posr.pos.v[0]; // world_offset.v[1] = world_posr.pos.v[1] - body_posr.pos.v[1]; // world_offset.v[2] = world_posr.pos.v[2] - body_posr.pos.v[2]; world_offset.eqDiff( world_posr.pos(), body_posr.pos() ); dMultiply0_331(offset_posr.pos, inv_body, world_offset); }
void getBodyPosr(final DxPosR offset_posr, final DxPosR final_posr, DxPosR body_posr) { DMatrix3 inv_offset = new DMatrix3(); matrixInvert(offset_posr.Rw(), inv_offset); dMultiply0_333(body_posr.Rw(), final_posr.R(), inv_offset); DVector3 world_offset = new DVector3(); //TZ dMultiply0_331(world_offset, body_posr.R(), offset_posr.pos()); // body_posr.pos.v[0] = final_posr.pos.v[0] - world_offset.v[0]; // body_posr.pos.v[1] = final_posr.pos.v[1] - world_offset.v[1]; // body_posr.pos.v[2] = final_posr.pos.v[2] - world_offset.v[2]; body_posr.pos.eqDiff( final_posr.pos(), world_offset ); }
void getBodyPosr(final DxPosR offset_posr, final DxPosR final_posr, DxPosR body_posr) { DMatrix3 inv_offset = new DMatrix3(); matrixInvert(offset_posr.Rw(), inv_offset); dMultiply0_333(body_posr.Rw(), final_posr.R(), inv_offset); DVector3 world_offset = new DVector3(); //TZ dMultiply0_331(world_offset, body_posr.R(), offset_posr.pos()); // body_posr.pos.v[0] = final_posr.pos.v[0] - world_offset.v[0]; // body_posr.pos.v[1] = final_posr.pos.v[1] - world_offset.v[1]; // body_posr.pos.v[2] = final_posr.pos.v[2] - world_offset.v[2]; body_posr.pos.eqDiff( final_posr.pos(), world_offset ); }
private void computeOffset() { if ( node[1].body != null ) { DVector3 c = new DVector3(); // c[0] = node[0].body->posr.pos[0] - node[1].body->posr.pos[0]; // c[1] = node[0].body->posr.pos[1] - node[1].body->posr.pos[1]; // c[2] = node[0].body->posr.pos[2] - node[1].body->posr.pos[2]; c.eqDiff( node[0].body.posr().pos(), node[1].body.posr().pos() ); dMultiply1_331 ( offset, node[1].body.posr().R(), c ); } else if ( node[0].body != null ) { // offset[0] = node[0].body->posr.pos[0]; // offset[1] = node[0].body->posr.pos[1]; // offset[2] = node[0].body->posr.pos[2]; offset.set( node[0].body.posr().pos() ); } }
private void computeOffset() { if ( node[1].body != null ) { DVector3 c = new DVector3(); // c[0] = node[0].body->posr.pos[0] - node[1].body->posr.pos[0]; // c[1] = node[0].body->posr.pos[1] - node[1].body->posr.pos[1]; // c[2] = node[0].body->posr.pos[2] - node[1].body->posr.pos[2]; c.eqDiff( node[0].body.posr().pos(), node[1].body.posr().pos() ); dMultiply1_331 ( offset, node[1].body.posr().R(), c ); } else if ( node[0].body != null ) { // offset[0] = node[0].body->posr.pos[0]; // offset[1] = node[0].body->posr.pos[1]; // offset[2] = node[0].body->posr.pos[2]; offset.set( node[0].body.posr().pos() ); } }