mirror of https://github.com/tidwall/tile38.git
29 lines
798 B
Go
29 lines
798 B
Go
// 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{})
|