int chopCI(double& tIn, double& tOut, double numer, double denom)
{
	double tHit;
	if (denom < 0) 		   // ray is entering 
	{
		tHit = numer / denom;
		if (tHit > tOut) return 0;  // early out
		else if (tHit > tIn) tIn = tHit; // take larger t
	}
	else if(denom > 0)          // ray is exiting
	{
		tHit = numer / denom;
		if(tHit < tIn) return 0;      // early out
		if(tHit < tout) tOut = tHit; // take smaller t
	}
	else             // denom is 0: ray is parallel 
	if(numer <= 0) return 0;   // missed the line

	return 1;	// CI is still non-empty
}