Is self convex ?

var p1 = new Point[Float](0.0, 0.0)
var p2 = new Point[Float](5.0, 0.0)
var p3 = new Point[Float](0.0, 5.0)
var p4 = new Point[Float](5.0, 5.0)
var arr = new Array[Point[Float]].with_items(p1, p2, p3, p4)
var poly = new ConvexPolygon(arr)
poly.sort_ccw
assert poly.is_convex

Property definitions

geometry $ APolygon :: is_convex
	# Is `self` convex ?
	#
	# ~~~
	# var p1 = new Point[Float](0.0, 0.0)
	# var p2 = new Point[Float](5.0, 0.0)
	# var p3 = new Point[Float](0.0, 5.0)
	# var p4 = new Point[Float](5.0, 5.0)
	# var arr = new Array[Point[Float]].with_items(p1, p2, p3, p4)
	# var poly = new ConvexPolygon(arr)
	# poly.sort_ccw
	# assert poly.is_convex
	# ~~~
	fun is_convex: Bool do
		var prev = points[points.length - 2]
		var curr = points[points.length - 1]
		var next = points[0]
		var is_ccw = turn_left(prev, curr, next)
		for i in [1..points.length[ do
			prev = curr
			curr= next
			next = points[i]
			if turn_left(prev ,curr, next) != is_ccw then return false
		end
		return true
	end
lib/geometry/polygon.nit:98,2--122,4