@Pure
	public static boolean intersectsSegmentOrientedBox(
			double sx1, double sy1, double sz1, double sx2, double sy2, double sz2,
			double centerx,double  centery,double  centerz,
			double axis1x, double axis1y, double axis1z,
			double axis2x, double axis2y, double axis2z,
			double axis3x, double axis3y, double axis3z,
			double extentAxis1, double extentAxis2, double extentAxis3) {
		// project the segment in the OBB axis base.
		double px1 = sx1 - centerx;
		double py1 = sy1 - centery;
		double pz1 = sz1 - centerz;
		double px2 = sx2 - centerx;
		double py2 = sy2 - centery;
		double pz2 = sz2 - centerz;

		double x1 = FunctionalVector3D.dotProduct(px1, py1, pz1, axis1x, axis1y, axis1z);
		double y1 = FunctionalVector3D.dotProduct(px1, py1, pz1, axis2x, axis2y, axis2z);
		double z1 = FunctionalVector3D.dotProduct(px1, py1, pz1, axis3x, axis3y, axis3z);

		double x2 = FunctionalVector3D.dotProduct(px2, py2, pz2, axis1x, axis1y, axis1z);
		double y2 = FunctionalVector3D.dotProduct(px2, py2, pz2, axis2x, axis2y, axis2z);
		double z2 = FunctionalVector3D.dotProduct(px2, py2, pz2, axis3x, axis3y, axis3z);

		return intersectsSegmentAlignedBox(
				x1, y1, z1, x2, y2, z2,
				-extentAxis1, -extentAxis2, -extentAxis3,
				extentAxis1, extentAxis2, extentAxis3);
	}
@ Pure public static boolean intersectsSegmentOrientedBox ( double sx1 , double sy1 , double sz1 , double sx2 , double sy2 , double sz2 , double centerx , double centery , double centerz , double axis1x , double axis1y , double axis1z , double axis2x , double axis2y , double axis2z , double axis3x , double axis3y , double axis3z , double extentAxis1 , double extentAxis2 , double extentAxis3 ) { double px1 = sx1 - centerx ; double py1 = sy1 - centery ; double pz1 = sz1 - centerz ; double px2 = sx2 - centerx ; double py2 = sy2 - centery ; double pz2 = sz2 - centerz ; double x1 = FunctionalVector3D . dotProduct ( px1 , py1 , pz1 , axis1x , axis1y , axis1z ) ; double y1 = FunctionalVector3D . dotProduct ( px1 , py1 , pz1 , axis2x , axis2y , axis2z ) ; double z1 = FunctionalVector3D . dotProduct ( px1 , py1 , pz1 , axis3x , axis3y , axis3z ) ; double x2 = FunctionalVector3D . dotProduct ( px2 , py2 , pz2 , axis1x , axis1y , axis1z ) ; double y2 = FunctionalVector3D . dotProduct ( px2 , py2 , pz2 , axis2x , axis2y , axis2z ) ; double z2 = FunctionalVector3D . dotProduct ( px2 , py2 , pz2 , axis3x , axis3y , axis3z ) ; return intersectsSegmentAlignedBox ( x1 , y1 , z1 , x2 , y2 , z2 , - extentAxis1 , - extentAxis2 , - extentAxis3 , extentAxis1 , extentAxis2 , extentAxis3 ) ; }
Tests if the axis-aligned box is intersecting a segment.

@param sx1 x coordinate of the first point of the segment.
@param sy1 y coordinate of the first point of the segment.
@param sz1 z coordinate of the first point of the segment.
@param sx2 x coordinate of the second point of the segment.
@param sy2 y coordinate of the second point of the segment.
@param sz2 z coordinate of the second point of the segment.
@param centerx is the center point of the oriented box.
@param centery is the center point of the oriented box.
@param centerz is the center point of the oriented box.
@param axis1x are the unit vectors of the oriented box axis.
@param axis1y are the unit vectors of the oriented box axis.
@param axis1z are the unit vectors of the oriented box axis.
@param axis2x are the unit vectors of the oriented box axis.
@param axis2y are the unit vectors of the oriented box axis.
@param axis2z are the unit vectors of the oriented box axis.
@param axis3x are the unit vectors of the oriented box axis.
@param axis3y are the unit vectors of the oriented box axis.
@param axis3z are the unit vectors of the oriented box axis.
@param extentAxis1 are the sizes of the oriented box.
@param extentAxis2 are the sizes of the oriented box.
@param extentAxis3 are the sizes of the oriented box.
@return <code>true</code> if the two shapes intersect each
other; <code>false</code> otherwise.