import rhinoscriptsyntax as rs
from itertools import combinations as cb
from scriptcontext import doc
points = rs.GetObjects("Select points", 1)
set = list(cb(points,3))
for tuple in set:
	c1 = rs.PointCoordinates(tuple[0])
	c2 = rs.PointCoordinates(tuple[1])
	c3 = rs.PointCoordinates(tuple[2])
	if (c1[0]-c2[0])*(c3[1]-c2[1])-(c1[1]-c2[1])*(c3[0]-c2[0]) != 0:
		circle = rs.AddCircle3Pt(tuple[0],tuple[1],tuple[2])
		triangle = rs.AddPolyline([tuple[0],tuple[1],tuple[2],tuple[0]])
		rs.Redraw()
		delaunay = 0
		for point in points:
			if rs.PointInPlanarClosedCurve(point,circle) == 1: 
				delaunay = 1
				rs.DeleteObject(triangle)
				continue
		rs.ObjectColor(circle,(220,220,220))
		obj = doc.Objects.Find(circle)
		obj.Attributes.DisplayOrder = -1
		obj.CommitChanges()
		if delaunay == 0: 
			della = rs.AddPolyline([tuple[0],tuple[1],tuple[2],tuple[0]])
			rs.ObjectColor(della,(255,0,0))
			obj = doc.Objects.Find(della)
			obj.Attributes.DisplayOrder = 1
			obj.Attributes.PlotWeight = 20
			obj.CommitChanges()
		doc.Views.Redraw()
