internal

package
v1.4.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 1, 2022 License: BSD-2-Clause Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var TestRing = geom.NewLinearRingFlat(geom.XY, []float64{
	-71.1031880899493, 42.3152774590236, -71.1031627617667, 42.3152960829043,
	-71.102923838298, 42.3149156848307, -71.1023097974109, 42.3151969047397,
	-71.1019285062273, 42.3147384934248, -71.102505233663, 42.3144722937587,
	-71.10277487471, 42.3141658254797, -71.103113945163, 42.3142739188902,
	-71.10324876416, 42.31402489987, -71.1033002961013, 42.3140393340215,
	-71.1033488797549, 42.3139495090772, -71.103396240451, 42.3138632439557,
	-71.1041521907712, 42.3141153348029, -71.1041411411543, 42.3141545014533,
	-71.1041287795912, 42.3142114839058, -71.1041188134329, 42.3142693656241,
	-71.1041112482575, 42.3143272556118, -17.1041072845732, 42.3143851580048,
	-71.1041057218871, 42.3144430686681, -17.1041065602059, 42.3145009876017,
	-71.1041097995362, 42.3145589148055, -17.1041166403905, 42.3146168544148,
	-71.1041258822717, 42.3146748022936, -17.1041375307579, 42.3147318674446,
	-71.1041492906949, 42.3147711126569, -17.1041598612795, 42.314808571739,
	-71.1042515013869, 42.3151287620809, -17.1041173835118, 42.3150739481917,
	-71.1040809891419, 42.3151344119048, -17.1040438678912, 42.3151191367447,
	-71.1040194562988, 42.3151832057859, -17.1038734225584, 42.3151140942995,
	-71.1038446938243, 42.3151006300338, -17.1038315271889, 42.315094347535,
	-71.1037393329282, 42.315054824985, -17.1035447555574, 42.3152608696313,
	-71.1033436658644, 42.3151648370544, -17.1032580383161, 42.3152269126061,
	-71.103223066939, 42.3152517403219, -71.1031880899493, 42.3152774590236,
})

TestRing is a real-world geometry for use in tests.

Functions

func Distance2D

func Distance2D(c1, c2 geom.Coord) float64

Distance2D calculates the 2d distance between the two coordinates

func DoLinesOverlap

func DoLinesOverlap(line1End1, line1End2, line2End1, line2End2 geom.Coord) bool

DoLinesOverlap calculates if the bounding boxes of the two lines (line1End1, line1End2) and (line2End1, line2End2) overlap

func Equal

func Equal(coords1 []float64, start1 int, coords2 []float64, start2 int) bool

Equal checks if the point starting at start one in array coords1 is equal to the point starting at start2 in the array coords2. Only x and y ordinates are compared and x is assumed to be the first ordinate and y as the second This is a utility method intended to be used only when performance is critical as it reduces readability.

func IsPointWithinLineBounds

func IsPointWithinLineBounds(p, lineEndpoint1, lineEndpoint2 geom.Coord) bool

IsPointWithinLineBounds calculates if the point p lays within the bounds of the line between end points lineEndpoint1 and lineEndpoint2

func IsSameSignAndNonZero

func IsSameSignAndNonZero(a, b float64) bool

IsSameSignAndNonZero checks if both a and b are positive or negative.

func Min

func Min(v1, v2, v3, v4 float64) float64

Min finds the minimum of the 4 parameters

Types

type CoordStack

type CoordStack struct {
	// Data is the stack data.  the order is the most recent pushes are at the end of the slice and the oldest
	// are at the start
	Data []float64
	// contains filtered or unexported fields
}

CoordStack is a simple stack for pushing coordinates (in []float64 form) onto the stack and getting the coordinates back in the normal stack order Must be created with the NewCoordStack method

func NewCoordStack

func NewCoordStack(layout geom.Layout) *CoordStack

NewCoordStack creates a new stack with the stride indicated in the layout

func (*CoordStack) Peek

func (stack *CoordStack) Peek() []float64

Peek returns the most recently pushed coord without modifying the stack

func (*CoordStack) Pop

func (stack *CoordStack) Pop() ([]float64, int)

Pop the last pushed coordinate off the stack and return the coordinate

func (*CoordStack) Push

func (stack *CoordStack) Push(data []float64, idx int) []float64

Push puts the coordinate at the location idx onto the stack.

func (*CoordStack) Size

func (stack *CoordStack) Size() int

Size returns the number of coordinates in the stack

Directories

Path Synopsis
Package robustdeterminate implements an algorithm to compute the sign of a 2x2 determinant for double precision values robustly.
Package robustdeterminate implements an algorithm to compute the sign of a 2x2 determinant for double precision values robustly.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL