There is a reason why there are almost no usable free implementations out there: Because it's harder than one would think at first sight. Maybe start which Shewchuk's papers to get a first idea of the problem.