public double normalDistance(final double x,final double y,final double z,final Membership... bounds){
  final double dist=evaluate(x,y,z);
  final double perpX=x - dist * this.x;
  final double perpY=y - dist * this.y;
  final double perpZ=z - dist * this.z;
  if (!meetsAllBounds(perpX,perpY,perpZ,bounds)) {
    return Double.POSITIVE_INFINITY;
  }
  return Math.abs(dist);
}

public double normalDistance ( final double x , final double y , final double z , final Membership ... bounds ) { final double dist = evaluate ( x , y , z ) ; final double perpX = x - dist * this . x ; final double perpY = y - dist * this . y ; final double perpZ = z - dist * this . z ; if ( ! meetsAllBounds ( perpX , perpY , perpZ , bounds ) ) { return Double . POSITIVE_INFINITY ; } return Math . abs ( dist ) ; }
compute normal distance from plane to a vector .
