Class Envelope

    • Constructor Detail

      • Envelope

        public Envelope​(Point center,
                        double width,
                        double height)
        Creates an envelope by defining its center, width, and height.
        Parameters:
        center - The center point of the envelope.
        width - The width of the envelope.
        height - The height of the envelope.
      • Envelope

        public Envelope()
        Constructs an empty envelope.
      • Envelope

        public Envelope​(Point point)
        Constructs an envelope that covers the given point. The coordinates of the point are used to set the extent of the envelope.
        Parameters:
        point - The point that the envelope covers.
      • Envelope

        public Envelope​(Envelope other)
      • Envelope

        public Envelope​(double xmin,
                        double ymin,
                        double xmax,
                        double ymax)
        Constructs an envelope with the specified X and Y extents.
        Parameters:
        xmin - The minimum x-coordinate of the envelope.
        ymin - The minimum y-coordinate of the envelope.
        xmax - The maximum x-coordinate of the envelope.
        ymax - The maximum y-coordinate of the envelope.
    • Method Detail

      • setCoords

        public void setCoords​(double xmin,
                              double ymin,
                              double xmax,
                              double ymax)
        Sets the 2-dimensional extents of the envelope.
        Parameters:
        xmin - The minimum x-coordinate of the envelope.
        ymin - The minimum y-coordinate of the envelope.
        xmax - The maximum x-coordinate of the envelope.
        ymax - The maximum y-coordinate of the envelope.
      • setCoords

        public void setCoords​(Point[] points)
        Sets the envelope from the array of points. The result envelope is a bounding box of all the points in the array. If the array has zero length, the envelope will be empty.
        Parameters:
        points - The point array.
      • setEmpty

        public void setEmpty()
        Removes all points from this geometry.
        Specified by:
        setEmpty in class Geometry
      • isEmpty

        public boolean isEmpty()
        Indicates whether this envelope contains any points.
        Specified by:
        isEmpty in class Geometry
        Returns:
        boolean Returns true if the envelope is empty.
      • getWidth

        public double getWidth()
        The width of the envelope.
        Returns:
        The width of the envelope.
      • getHeight

        public double getHeight()
        The height of the envelope.
        Returns:
        The height of the envelope.
      • getCenterX

        public double getCenterX()
        The x-coordinate of the center of the envelope.
        Returns:
        The x-coordinate of the center of the envelope.
      • getCenterY

        public double getCenterY()
        The y-coordinate of center of the envelope.
        Returns:
        The y-coordinate of center of the envelope.
      • getCenterXY

        public Point2D getCenterXY()
      • getCenter

        public void getCenter​(Point point_out)
      • merge

        public void merge​(Point2D pt)
      • merge

        public void merge​(Envelope other)
        Merges this envelope with the extent of the given envelope. If this envelope is empty, the coordinates of the given envelope are assigned. If the given envelope is empty, this envelope is unchanged.
        Parameters:
        other - The envelope to merge.
      • merge

        public void merge​(Point point)
        Merges this envelope with the point. The boundary of the envelope is increased to include the point. If the envelope is empty, the coordinates of the point to merge are assigned. If the point is empty, the original envelope is unchanged.
        Parameters:
        point - The point to be merged.
      • setInterval

        public void setInterval​(int semantics,
                                int ordinate,
                                double vmin,
                                double vmax)
      • reaspect

        public void reaspect​(double arWidth,
                             double arHeight)
        Re-aspects this envelope to fit within the specified width and height.
        Parameters:
        arWidth - The width within which to fit the envelope.
        arHeight - The height within which to fit the envelope.
      • inflate

        public void inflate​(double dx,
                            double dy)
        Changes the dimensions of the envelope while preserving the center. New width is Width + 2 * dx, new height is Height + 2 * dy. If the result envelope width or height becomes negative, the envelope is set to be empty.
        Parameters:
        dx - The inflation along the x-axis.
        dy - The inflation along the y-axis.
      • applyTransformation

        public void applyTransformation​(Transformation2D transform)
        Description copied from class: Geometry
        Applies 2D affine transformation in XY plane.
        Specified by:
        applyTransformation in class Geometry
        Parameters:
        transform - The affine transformation to be applied to this geometry.
      • applyTransformation

        public void applyTransformation​(Transformation3D transform)
        Description copied from class: Geometry
        Applies 3D affine transformation. Adds Z attribute if it is missing.
        Specified by:
        applyTransformation in class Geometry
        Parameters:
        transform - The affine transformation to be applied to this geometry.
      • copyTo

        public void copyTo​(Geometry dst)
        Description copied from class: Geometry
        Copies this geometry to another geometry of the same type. The result geometry is an exact copy.
        Specified by:
        copyTo in class Geometry
        Parameters:
        dst - The geometry that this geometry is copied to.
      • createInstance

        public Geometry createInstance()
        Description copied from class: Geometry
        Creates an instance of an empty geometry of the same type.
        Specified by:
        createInstance in class Geometry
        Returns:
        An empty geometry
      • calculateArea2D

        public double calculateArea2D()
        Description copied from class: Geometry
        Calculates the area of the geometry. If the spatial reference is a Geographic Coordinate System (WGS84) then the 2D area calculation is defined in angular units.
        Overrides:
        calculateArea2D in class Geometry
        Returns:
        A double value representing the 2D area of the geometry.
      • calculateLength2D

        public double calculateLength2D()
        Description copied from class: Geometry
        Calculates the length of the geometry. If the spatial reference is a Geographic Coordinate System (a system where coordinates are defined using angular units such as longitude and latitude) then the 2D distance calculation is returned in angular units. In cases where length must be calculated on a Geographic Coordinate System consider the using the geodeticLength method on the GeometryEngine
        Overrides:
        calculateLength2D in class Geometry
        Returns:
        A double value representing the 2D length of the geometry.
      • getType

        public Geometry.Type getType()
        Description copied from class: Geometry
        Returns the geometry type.
        Specified by:
        getType in class Geometry
        Returns:
        Returns the geometry type.
      • getDimension

        public int getDimension()
        Description copied from class: Geometry
        Returns the topological dimension of the geometry object based on the geometry's type.

        Returns 0 for point and multipoint.

        Returns 1 for lines and polylines.

        Returns 2 for polygons and envelopes

        Returns 3 for objects with volume

        Specified by:
        getDimension in class Geometry
        Returns:
        Returns the integer value of the dimension of geometry.
      • estimateMemorySize

        public long estimateMemorySize()
        Description copied from class: Geometry
        Returns an estimate of this object size in bytes.

        This estimate doesn't include the size of the VertexDescription object because instances of VertexDescription are shared among geometry objects.

        Specified by:
        estimateMemorySize in class Geometry
        Returns:
        Returns an estimate of this object size in bytes.
      • queryEnvelope

        public void queryEnvelope​(Envelope env)
        Description copied from class: Geometry
        Returns the axis aligned bounding box of the geometry.
        Specified by:
        queryEnvelope in class Geometry
        Parameters:
        env - The envelope to return the result in.
      • setInterval

        public void setInterval​(int semantics,
                                int ordinate,
                                Envelope1D env)
      • queryCoordinates

        public void queryCoordinates​(Point2D[] dst)
      • queryCornerByVal

        public void queryCornerByVal​(int index,
                                     Point ptDst)
        Sets the point's coordinates to the coordinates of the envelope at the given corner.
        Parameters:
        index - The index of the envelope's corners from 0 to 3.

        0 = lower left corner

        1 = top-left corner

        2 = top right corner

        3 = bottom right corner

        ptDst - The point whose coordinates are used to set the envelope's coordinate at a specified corner.
      • queryCorner

        public void queryCorner​(int index,
                                Point2D ptDst)
      • isIntersecting

        public boolean isIntersecting​(Envelope2D other)
      • intersect

        public boolean intersect​(Envelope other)
        Intersects this envelope with other envelope and stores the result in this envelope. The operation performs intersection independently on all attributes, but the xy coordinates take precedence. That is, if the result envelope xy coordinates do not intersect the result will be empty envelope.
        Parameters:
        other - The envelope to intersect with.
        Returns:
        Returns true if this and other envelopes intersect, and false, if the result is empty envelope. Note, the operation intersects all attributes, but only the position (xy) affects the returned boolean value. The attributes absent in this or other will be added and intersected using default values.
      • isIntersecting

        public boolean isIntersecting​(Envelope other)
        Returns true if the envelope and the other given envelope intersect.
        Parameters:
        other - The envelope to with which to test intersection.
        Returns:
        Returns true if the two envelopes intersect.
      • centerAt

        public void centerAt​(Point c,
                             double w,
                             double h)
        Sets the envelope's corners to be centered around the specified point, using its center, width, and height.
        Parameters:
        c - The point around which to center the envelope.
        w - The width to be set for the envelope.
        h - The height to be set for this envelope.
      • centerAt

        public void centerAt​(double x,
                             double y)
        Moves the Envelope to the new center.
        Parameters:
        x - The X coordinate of new center.
        y - The Y coordinate of new center.
      • offset

        public void offset​(double dx,
                           double dy)
        Offsets the envelope by the specified distances along x and y-coordinates.
        Parameters:
        dx - The X offset to be applied.
        dy - The Y offset to be applied.
      • normalize

        public void normalize()
        Normalizes envelopes if the minimum dimension is larger than the maximum dimension.
      • getCenter2D

        public Point2D getCenter2D()
      • getCenter

        public Point getCenter()
        Returns the center point of the envelope.
        Returns:
        The center point of the envelope.
      • centerAt

        public void centerAt​(Point c)
        Centers the envelope around the specified point preserving the envelope's width and height.
        Parameters:
        c - The new center point.
      • getLowerLeft

        public Point getLowerLeft()
        Returns the envelope's lower left corner point.
        Returns:
        Returns the lower left corner point.
      • getUpperRight

        public Point getUpperRight()
        Returns the envelope's upper right corner point.
        Returns:
        Returns the upper right corner point.
      • getLowerRight

        public Point getLowerRight()
        Returns the envelope's lower right corner point.
        Returns:
        Returns the lower right corner point.
      • getUpperLeft

        public Point getUpperLeft()
        Returns the envelope's upper left corner point.
        Returns:
        Returns the upper left corner point.
      • contains

        public boolean contains​(Point p)
        Checks if this envelope contains the specified point.
        Parameters:
        p - The Point to be tested for coverage.
        Returns:
        Returns true if this envelope contains the specified point.
      • contains

        public boolean contains​(Point2D p)
        Checks if this envelope contains the specified point.
        Parameters:
        p - The Point to be tested for coverage.
        Returns:
        Returns true if this envelope contains the specified point.
      • contains

        public boolean contains​(Envelope env)
        Checks if this envelope contains (covers) other envelope.
        Parameters:
        env - The envelope to be tested for coverage.
        Returns:
        true if this envelope contains (covers) the specified envelope.
      • equals

        public boolean equals​(Object _other)
        Returns true when this geometry has exactly same type, properties, and coordinates as the other geometry.
        Overrides:
        equals in class Object
      • equals

        public boolean equals​(Geometry _other,
                              double tol)
        Returns TRUE when this geometry has exactly same type, properties, and coordinates as the other geometry for the given tolerance.
        Specified by:
        equals in class Geometry
        Parameters:
        _other - The other geometry to compare with.
        tol - The tolerance to compare with. Use zero for exact comparison.
        Returns:
        Returns true if equal and false if not equal.
      • hashCode

        public int hashCode()
        Returns a hash code value for this envelope.
        Overrides:
        hashCode in class Object
        Returns:
        A hash code value for this envelope.
      • getXMin

        public final double getXMin()
        Returns the X coordinate of the left corners of the envelope.
        Returns:
        The X coordinate of the left corners.
      • getYMin

        public final double getYMin()
        Returns the Y coordinate of the bottom corners of the envelope.
        Returns:
        The Y coordinate of the bottom corners.
      • getXMax

        public final double getXMax()
        Returns the X coordinate of the right corners of the envelope.
        Returns:
        The X coordinate of the right corners.
      • getYMax

        public final double getYMax()
        Returns the Y coordinate of the top corners of the envelope.
        Returns:
        The Y coordinate of the top corners.
      • setXMin

        public void setXMin​(double x)
        Sets the left X coordinate.
        Parameters:
        x - The X coordinate of the left corner
      • setXMax

        public void setXMax​(double x)
        Sets the right X coordinate.
        Parameters:
        x - The X coordinate of the right corner.
      • setYMin

        public void setYMin​(double y)
        Sets the bottom Y coordinate.
        Parameters:
        y - the Y coordinate of the bottom corner.
      • setYMax

        public void setYMax​(double y)
        Sets the top Y coordinate.
        Parameters:
        y - The Y coordinate of the top corner.
      • replaceNaNs

        public void replaceNaNs​(int semantics,
                                double value)
        Specified by:
        replaceNaNs in class Geometry
      • hasAttribute

        public boolean hasAttribute​(int semantics)
        Description copied from class: Geometry
        A shortcut for getDescription().hasAttribute()
        Specified by:
        hasAttribute in class Geometry
        Parameters:
        semantics - The type of attribute to check for as specified by VertexDescription.Semantics
        Returns:
        Returns true if the geometry has the specified attribute
      • addAttribute

        public void addAttribute​(int semantics)
        Description copied from class: Geometry
        Adds a new attribute to the Geometry.
        Specified by:
        addAttribute in class Geometry
        Parameters:
        semantics - The type of attribute to add as specified by VertexDescription.Semantics
      • dropAttribute

        public void dropAttribute​(int semantics)
        Description copied from class: Geometry
        Drops an attribute from the Geometry. Dropping the attribute is equivalent to setting the attribute to the default value for each vertex, However, it is faster and the result Geometry has smaller memory footprint and smaller size when persisted.
        Specified by:
        dropAttribute in class Geometry
        Parameters:
        semantics - The type of attribute to drop as specified by VertexDescription.Semantics
      • dropAllAttributes

        public void dropAllAttributes()
        Description copied from class: Geometry
        Drops all attributes from the Geometry with exception of POSITON.
        Specified by:
        dropAllAttributes in class Geometry