vector/internal/math: Reduce calls of adjacentIndices

This commit is contained in:
Hajime Hoshi 2019-12-29 23:00:53 +09:00
parent 7860df37e1
commit 8a42e8d808

View File

@ -114,11 +114,6 @@ func Triangulate(pts []Point) []uint16 {
idx := -1 idx := -1
index: index:
for i := range currentIndices { for i := range currentIndices {
i0, i1, i2 := adjacentIndices(currentIndices, i)
pt0 := pts[i0]
pt1 := pts[i1]
pt2 := pts[i2]
c := cs[i] c := cs[i]
if c == 0 { if c == 0 {
panic("math: cross value must not be 0") panic("math: cross value must not be 0")
@ -127,6 +122,11 @@ func Triangulate(pts []Point) []uint16 {
// The angle is more than 180 degrees. This is not an ear. // The angle is more than 180 degrees. This is not an ear.
continue continue
} }
i0, i1, i2 := adjacentIndices(currentIndices, i)
pt0 := pts[i0]
pt1 := pts[i1]
pt2 := pts[i2]
for j := range currentIndices { for j := range currentIndices {
if l := len(currentIndices); j == (i+l-1)%l || j == i || j == (i+1)%l { if l := len(currentIndices); j == (i+l-1)%l || j == i || j == (i+1)%l {
continue continue