예제 #1
0
        /// <summary>
        /// Amplia el recubrimiento para que contenga al punto indicado.
        /// </summary>
        /// <param name="point">Punto.</param>
        public BoundingBox2i Union(Point2i point)
        {
            int rxMin, rxMax;

            BoundingBox2iUtils.Union(this.XMin, this.XMax, point.X, out rxMin, out rxMax);

            int ryMin, ryMax;

            BoundingBox2iUtils.Union(this.YMin, this.YMax, point.Y, out ryMin, out ryMax);

            return(new BoundingBox2i(rxMin, rxMax, ryMin, ryMax));
        }
예제 #2
0
        /// <summary>
        /// Interseccion entre los recubrimientos.
        /// </summary>
        /// <param name="rec">Rectangulo.</param>
        public BoundingBox2i Intersect(BoundingBox2i rec)
        {
            int rxMin, rxMax;

            BoundingBox2iUtils.Intersect(this.XMin, this.XMax, rec.XMin, rec.XMax, out rxMin, out rxMax);

            int ryMin, ryMax;

            BoundingBox2iUtils.Intersect(this.YMin, this.YMax, rec.YMin, rec.YMax, out ryMin, out ryMax);

            return(new BoundingBox2i(rxMin, rxMax, ryMin, ryMax));
        }
예제 #3
0
 public bool Equals(BoundingBox2i other)
 {
     return(BoundingBox2iUtils.Equals(this.XMin, this.XMax, other.XMin, other.XMax) &&
            BoundingBox2iUtils.Equals(this.YMin, this.YMax, other.YMin, other.YMax));
 }
예제 #4
0
 /// <summary>
 /// Indica si existe intersección con el rectangulo indicado.
 /// </summary>
 /// <param name="rec">Rectangulo.</param>
 /// <returns>Indica si existe intersección.</returns>
 public bool IntersectsWith(BoundingBox2i rec)
 {
     return(BoundingBox2iUtils.IntersectsWith(this.XMin, this.XMax, rec.XMin, rec.XMax) &&
            BoundingBox2iUtils.IntersectsWith(this.YMin, this.YMax, rec.YMin, rec.YMax));
 }
예제 #5
0
 /// <summary>
 /// Indica si contiene completamente al punto indicado.
 /// </summary>
 /// <param name="p">Punto.</param>
 /// <returns>Indica si lo contiene completamente.</returns>
 public bool Contains(Point2i p)
 {
     return(BoundingBox2iUtils.ContainsPoint(this.XMin, this.XMax, p.X) &&
            BoundingBox2iUtils.ContainsPoint(this.YMin, this.YMax, p.Y));
 }
예제 #6
0
 /// <summary>
 /// Indica si contiene completamente al rectangulo indicado.
 /// </summary>
 /// <param name="rec">Rectangulo.</param>
 /// <returns>Indica si lo contiene completamente.</returns>
 public bool Contains(BoundingBox2i rec)
 {
     return(BoundingBox2iUtils.Contains(this.XMin, this.XMax, rec.XMin, rec.XMax) &&
            BoundingBox2iUtils.Contains(this.YMin, this.YMax, rec.YMin, rec.YMax));
 }
예제 #7
0
 /// <summary>
 /// Indica si el rectangulo toca al punto indicado por algun lado.
 /// </summary>
 /// <param name="p">Punto.</param>
 /// <returns>Indica si lo toca.</returns>
 public bool Touch(Point2i p)
 {
     return(BoundingBox2iUtils.TouchPoint(this.XMin, this.XMax, p.X) ||
            BoundingBox2iUtils.TouchPoint(this.YMin, this.YMax, p.Y));
 }
예제 #8
0
 /// <summary>
 /// Indica si el rectangulo toca al rectangulo indicado por algun lado desde el interior.
 /// <c><![CDATA[
 ///  +-+----+---+
 ///  | |    |   |
 ///  | +----+   |
 ///  |          |
 ///  +----------+
 /// ]]></c>
 /// </summary>
 /// <param name="rec">Rectangulo.</param>
 /// <returns>Indica si lo toca.</returns>
 public bool Touch(BoundingBox2i rec)
 {
     return(BoundingBox2iUtils.Touch(this.XMin, this.XMax, rec.XMin, rec.XMax) ||
            BoundingBox2iUtils.Touch(this.YMin, this.YMax, rec.YMin, rec.YMax));
 }