예제 #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="d0"></param>
 /// <param name="d1"></param>
 /// <returns></returns>
 public static Domain3d Intersect(Domain3d d0, Domain3d d1)
 {
     d0.X = Domain1d.Intersect(d0.X, d1.X);
     d0.Y = Domain1d.Intersect(d0.Y, d1.Y);
     d0.Z = Domain1d.Intersect(d0.Z, d1.Z);
     return(d0);
 }
예제 #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="a"></param>
 /// <param name="b"></param>
 /// <returns></returns>
 public static Domain3d Union(Domain3d a, Domain3d b)
 {
     a.X = Domain1d.Union(a.X, b.X);
     a.Y = Domain1d.Union(a.Y, b.Y);
     a.Z = Domain1d.Union(a.Z, b.Z);
     return(a);
 }
예제 #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="point"></param>
 /// <param name="from"></param>
 /// <param name="to"></param>
 /// <returns></returns>
 public static Vec3d Remap(Vec3d point, Domain3d from, Domain3d to)
 {
     point.X = Domain1d.Remap(point.X, from.X, to.X);
     point.Y = Domain1d.Remap(point.Y, from.Y, to.Y);
     point.Y = Domain1d.Remap(point.Z, from.Z, to.Z);
     return(point);
 }
예제 #4
0
파일: Domain1d.cs 프로젝트: GitZHCODE/zCode
        /// <summary>
        ///
        /// </summary>
        /// <param name="t"></param>
        /// <param name="from"></param>
        /// <param name="to"></param>
        /// <returns></returns>
        public static double Remap(double t, Domain1d from, Domain1d to)
        {
            if (!from.IsValid)
            {
                throw new InvalidOperationException("Can't remap from an invalid domain");
            }

            return(zMath.Remap(t, from.T0, from.T1, to.T0, to.T1));
        }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="points"></param>
        public Domain2d(IEnumerable <Vec2d> points)
            : this()
        {
            var p = points.First();

            X = new Domain1d(p.X);
            Y = new Domain1d(p.Y);

            Include(points.Skip(1));
        }
예제 #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="x0"></param>
 /// <param name="x1"></param>
 /// <param name="y0"></param>
 /// <param name="y1"></param>
 public Domain2d(double x0, double x1, double y0, double y1)
 {
     X = new Domain1d(x0, x1);
     Y = new Domain1d(y0, y1);
 }
예제 #7
0
파일: Domain1d.cs 프로젝트: GitZHCODE/zCode
 /// <summary>
 /// Returns the union of a and b.
 /// </summary>
 /// <param name="a"></param>
 /// <param name="b"></param>
 /// <returns></returns>
 public static Domain1d Union(Domain1d a, Domain1d b)
 {
     a.Include(b.T0);
     a.Include(b.T1);
     return(a);
 }
예제 #8
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="center"></param>
 /// <param name="offsetX"></param>
 /// <param name="offsetY"></param>
 /// <param name="offsetZ"></param>
 public Domain3d(Vec3d center, double offsetX, double offsetY, double offsetZ)
 {
     X = new Domain1d(center.X - offsetX, center.X + offsetX);
     Y = new Domain1d(center.Y - offsetY, center.Y + offsetY);
     Z = new Domain1d(center.Z - offsetZ, center.Z + offsetZ);
 }
예제 #9
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="x"></param>
 /// <param name="y"></param>
 /// <param name="z"></param>
 public Domain3d(Domain1d x, Domain1d y, Domain1d z)
 {
     this.X = x;
     this.Y = y;
     this.Z = z;
 }
예제 #10
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="point"></param>
 public Domain2d(Vec2d point)
 {
     X = new Domain1d(point.X);
     Y = new Domain1d(point.Y);
 }
예제 #11
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="a"></param>
 /// <param name="b"></param>
 /// <returns></returns>
 public static Domain2d Union(Domain2d a, Domain2d b)
 {
     a.X = Domain1d.Union(a.X, b.X);
     a.Y = Domain1d.Union(a.Y, b.Y);
     return(a);
 }
예제 #12
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="point"></param>
 /// <param name="from"></param>
 /// <param name="to"></param>
 /// <returns></returns>
 public static Vec2d Remap(Vec2d point, Domain2d from, Domain2d to)
 {
     point.X = Domain1d.Remap(point.X, from.X, to.X);
     point.Y = Domain1d.Remap(point.Y, from.Y, to.Y);
     return(point);
 }
예제 #13
0
파일: Domain1d.cs 프로젝트: GitZHCODE/zCode
 /// <summary>
 /// Expands this domain to include another
 /// </summary>
 /// <param name="other"></param>
 public void Include(Domain1d other)
 {
     Include(other.T0);
     Include(other.T1);
 }
예제 #14
0
파일: Domain1d.cs 프로젝트: GitZHCODE/zCode
 /// <summary>
 ///
 /// </summary>
 /// <param name="other"></param>
 /// <param name="tolerance"></param>
 /// <returns></returns>
 public bool ApproxEquals(Domain1d other, double tolerance = zMath.ZeroTolerance)
 {
     return(Math.Abs(other.T0 - T0) < tolerance && Math.Abs(other.T1 - T1) < tolerance);
 }
예제 #15
0
파일: Domain1d.cs 프로젝트: GitZHCODE/zCode
 /// <summary>
 /// Returns the region of a that is not in b.
 /// </summary>
 /// <param name="d0"></param>
 /// <param name="d1"></param>
 /// <returns></returns>
 public static Domain1d Difference(Domain1d d0, Domain1d d1)
 {
     throw new NotImplementedException();
 }
예제 #16
0
파일: Domain1d.cs 프로젝트: GitZHCODE/zCode
 /// <summary>
 /// Returns the region of a that is also in b.
 /// </summary>
 /// <param name="a"></param>
 /// <param name="b"></param>
 /// <returns></returns>
 public static Domain1d Intersect(Domain1d a, Domain1d b)
 {
     throw new NotImplementedException();
 }
예제 #17
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="point"></param>
 public Domain3d(Vec3d point)
 {
     X = new Domain1d(point.X);
     Y = new Domain1d(point.Y);
     Z = new Domain1d(point.Z);
 }
예제 #18
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="x"></param>
 /// <param name="y"></param>
 public Domain2d(Domain1d x, Domain1d y)
 {
     this.X = x;
     this.Y = y;
 }
예제 #19
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="from"></param>
 /// <param name="to"></param>
 public Domain3d(Vec3d from, Vec3d to)
 {
     X = new Domain1d(from.X, to.X);
     Y = new Domain1d(from.Y, to.Y);
     Z = new Domain1d(from.Z, to.Z);
 }
예제 #20
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="from"></param>
 /// <param name="to"></param>
 public Domain2d(Vec2d from, Vec2d to)
 {
     X = new Domain1d(from.X, to.X);
     Y = new Domain1d(from.Y, to.Y);
 }
예제 #21
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="x0"></param>
 /// <param name="x1"></param>
 /// <param name="y0"></param>
 /// <param name="y1"></param>
 /// <param name="z0"></param>
 /// <param name="z1"></param>
 public Domain3d(double x0, double x1, double y0, double y1, double z0, double z1)
 {
     X = new Domain1d(x0, x1);
     Y = new Domain1d(y0, y1);
     Z = new Domain1d(z0, z1);
 }
예제 #22
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="center"></param>
 /// <param name="offsetX"></param>
 /// <param name="offsetY"></param>
 public Domain2d(Vec2d center, double offsetX, double offsetY)
 {
     X = new Domain1d(center.X - offsetX, center.X + offsetX);
     Y = new Domain1d(center.Y - offsetY, center.Y + offsetY);
 }