@Override public DVector3C getDirection() { return final_posr().R().columnAsNewVector(2); }
@Override public DVector3C getDirection() { return final_posr().R().columnAsNewVector(2); }
public double dGeomCapsulePointDepth (double x, double y, double z) { // dUASSERT (g && g.type == dCapsuleClass,"argument not a ccylinder"); recomputePosr(); // dxCapsule *c = (dxCapsule*) g; final DMatrix3C R = final_posr().R(); final DVector3C pos = final_posr().pos(); DVector3 a = new DVector3(x, y, z); // a[0] = x - pos[0]; // a[1] = y - pos[1]; // a[2] = z - pos[2]; a.sub(pos); double beta = dCalcVectorDot3_14(a,R,2); double lz2 = _lz*(0.5); if (beta < -lz2) beta = -lz2; else if (beta > lz2) beta = lz2; // a.v[0] = _final_posr.pos.v[0] + beta*R.v[0*4+2]; // a.v[1] = _final_posr.pos.v[1] + beta*R.v[1*4+2]; // a.v[2] = _final_posr.pos.v[2] + beta*R.v[2*4+2]; a.eqSum(final_posr().pos(), R.columnAsNewVector(2), beta); return _radius - dSqrt ((x-a.get0())*(x-a.get0()) + (y-a.get1())*(y-a.get1()) + (z-a.get2())*(z-a.get2())); }
public double dGeomCapsulePointDepth (double x, double y, double z) { // dUASSERT (g && g.type == dCapsuleClass,"argument not a ccylinder"); recomputePosr(); // dxCapsule *c = (dxCapsule*) g; final DMatrix3C R = final_posr().R(); final DVector3C pos = final_posr().pos(); DVector3 a = new DVector3(x, y, z); // a[0] = x - pos[0]; // a[1] = y - pos[1]; // a[2] = z - pos[2]; a.sub(pos); double beta = dCalcVectorDot3_14(a,R,2); double lz2 = _lz*(0.5); if (beta < -lz2) beta = -lz2; else if (beta > lz2) beta = lz2; // a.v[0] = _final_posr.pos.v[0] + beta*R.v[0*4+2]; // a.v[1] = _final_posr.pos.v[1] + beta*R.v[1*4+2]; // a.v[2] = _final_posr.pos.v[2] + beta*R.v[2*4+2]; a.eqSum(final_posr().pos(), R.columnAsNewVector(2), beta); return _radius - dSqrt ((x-a.get0())*(x-a.get0()) + (y-a.get1())*(y-a.get1()) + (z-a.get2())*(z-a.get2())); }
DVector3 p = o1.final_posr().R().columnAsNewVector(2); p = o1.final_posr().R().columnAsNewVector(2); p.scale(-ccyl._lz * 0.5 * sign).add(o1.final_posr().pos());
DVector3 p = o1.final_posr().R().columnAsNewVector(2); p = o1.final_posr().R().columnAsNewVector(2); p.scale(-ccyl._lz * 0.5 * sign).add(o1.final_posr().pos());
p1.eqSum( o1.final_posr().pos(), o1.final_posr().R().columnAsNewVector(2), clen); p2.eqSum( o1.final_posr().pos(), o1.final_posr().R().columnAsNewVector(2), -clen); double radius = cyl._radius;
p1.eqSum( o1.final_posr().pos(), o1.final_posr().R().columnAsNewVector(2), clen); p2.eqSum( o1.final_posr().pos(), o1.final_posr().R().columnAsNewVector(2), -clen); double radius = cyl._radius;
if (A[i] > 0) p.eqSum(p, R.columnAsNewVector(i), -0.5*box.side.get(i)); else p.eqSum(p, R.columnAsNewVector(i), +0.5*box.side.get(i));
vCapsuleAxis = mCapsuleRotation.columnAsNewVector(nCAPSULE_AXIS);
vCapsuleAxis = mCapsuleRotation.columnAsNewVector(nCAPSULE_AXIS);
if (A[i] > 0) p.eqSum(p, R.columnAsNewVector(i), -0.5*box.side.get(i)); else p.eqSum(p, R.columnAsNewVector(i), +0.5*box.side.get(i));
p.eqSum( o1.final_posr().pos(), o1.final_posr().R().columnAsNewVector(2), alpha); return DxCollisionUtil.dCollideSpheres (p,ccyl._radius,o2.final_posr().pos(),sphere.getRadius(),contacts);
p.eqSum( o1.final_posr().pos(), o1.final_posr().R().columnAsNewVector(2), alpha); return DxCollisionUtil.dCollideSpheres (p,ccyl._radius,o2.final_posr().pos(),sphere.getRadius(),contacts);
DVector3C axis1 = cyl1.final_posr().R().columnAsNewVector(2); DVector3 axis2 = cyl2.final_posr().R().columnAsNewVector(2);
DVector3C axis1 = cyl1.final_posr().R().columnAsNewVector(2); DVector3 axis2 = cyl2.final_posr().R().columnAsNewVector(2);
dMultiply1_331(ray_dir, convex.final_posr().R(), ray.final_posr().R().columnAsNewVector(2)); boolean flag = false; for ( int i = 0; i < convex.planecount; ++i )
dMultiply1_331(ray_dir, convex.final_posr().R(), ray.final_posr().R().columnAsNewVector(2)); boolean flag = false; for ( int i = 0; i < convex.planecount; ++i )
vDir1 = Cylinder.final_posr().R().columnAsNewVector(2);
vDir1 = cylinder.final_posr().R().columnAsNewVector(2);