// Copyright 2018 Joshua J Baker. All rights reserved.
// Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file.
package geometry
// Geometry is a standard geometry
type Geometry interface {
Rect() Rect
Empty() bool
Valid() bool
ContainsPoint(point Point) bool
IntersectsPoint(point Point) bool
ContainsRect(rect Rect) bool
IntersectsRect(rect Rect) bool
ContainsLine(line *Line) bool
IntersectsLine(line *Line) bool
ContainsPoly(poly *Poly) bool
IntersectsPoly(poly *Poly) bool
}
// require conformance
var _ = []Geometry{Point{}, Rect{}, &Line{}, &Poly{}}
// WorldPolygon is the maximum bounds for any GeoPoint
var WorldPolygon = NewPoly([]Point{
{-180, -90}, {-180, 90}, {180, 90}, {180, -90}, {-180, -90},
}, nil, &IndexOptions{})