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; } } } }