using System;
namespace Science.Mathematics.VectorCalculus
{
///
/// Domain in Three Dimensional Space
///
public class Domain3D
{
private double xf, xt, yf, yt, zf, zt;
public Domain3D()
{
}
private Function.ToLastType cf3;
public Function.ToLastType ConditionFunctionsLessThanZero
{
set{cf3 = value;}
}
public double LowerBoundOfX
{
get{return xf;}
set{xf=value;}
}
public double UpperBoundOfX
{
get{return xt;}
set{xt=value;}
}
public double LowerBoundOfY
{
get{return yf;}
set{yf=value;}
}
public double UpperBoundOfY
{
get{return yt;}
set{yt=value;}
}
public double LowerBoundOfZ
{
get{return zf;}
set{zf=value;}
}
public double UpperBoundOfZ
{
get{return zt;}
set{zt=value;}
}
private bool doneQ = false;
private int n = 0;
public bool Check(double x, double y, double z)
{
if (doneQ)
{
for (int k = 0; k < n; k++)
if (cf3(x, y, z)[k] >= 0.0) return false;
return true;
}
else
{
n = cf3(x, y, z).Length;
doneQ = true;
for (int k = 0; k < n; k++)
if (cf3(x, y, z)[k] >= 0.0) return false;
return true;
}
}
}
}