github.com/richardwilkes/toolbox@v1.121.0/xmath/geom/visibility/endpoint.go (about) 1 // Copyright (c) 2016-2024 by Richard A. Wilkes. All rights reserved. 2 // 3 // This Source Code Form is subject to the terms of the Mozilla Public 4 // License, version 2.0. If a copy of the MPL was not distributed with 5 // this file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 // 7 // This Source Code Form is "Incompatible With Secondary Licenses", as 8 // defined by the Mozilla Public License, version 2.0. 9 10 package visibility 11 12 import ( 13 "github.com/richardwilkes/toolbox/xmath/geom" 14 "golang.org/x/exp/constraints" 15 ) 16 17 type endPoint[T constraints.Float] struct { 18 angle T 19 segmentIndex int 20 start bool 21 } 22 23 func (ep *endPoint[T]) pt(segments []Segment[T]) geom.Point[T] { 24 if ep.start { 25 return segments[ep.segmentIndex].Start 26 } 27 return segments[ep.segmentIndex].End 28 }