3

I know it's possible to apply a symbolic perturbation scheme like 'Simulation of Simplicity'(SoS) to geometric predicates like the 4-point orient, to avoid handling degenerate cases. I'm assuming it's also valid to do the same with plane-based geometry, where points are implicitly defined by the intersection of 3 planes, so I can have a similar orient predicate that tells me on which side of a 4th plane the point defined by the first 3 lies. I'd perturb the coefficients of the plane equation instead of the cartesian coordinates of a point.

The problem is that a point could be defined by many different planes. Each vertex in a cube is defined by 3 planes, but the apex of a pyramid has 4. Consistency seems to be everything with schemes like SoS, and I can't figure if it matters which 3 planes I select to define a point. Perhaps it doesn't, as long as every time I refer to that point I use the same 3 planes.

So, the question: Can I choose any 3 planes to represent a point?

Thanks in advance.

Pranav
  • 475
  • 4
  • 25
mr grumpy
  • 1,513
  • 1
  • 10
  • 17

1 Answers1

0

For a very similar problem, I represented the planes as perturbed bisectors between couples of points pi and pj: Pij = {p | d2(pi,p) - ei = d2(p_j,p) - ej)} where d2 denotes the squared Euclidean distance and where ei = epsilon^(2^i) denotes the symbolic perturbation.

Then it is possible to write the equation of the intersection between three planes, inject it into the predicate, separate the nominator from the denominator to avoid divisions, order the ei terms and deduce the symbolic perturbation.

In your case, it would represent the degeneracy with a point on four planes as two points, each of them being on three of the four planes (exactly like order-4 vertices in Voronoi diagrams when using perturbed incircle predicate).

The advantage of this representation is that the symbolic perturbation is reasonably simple to write (only two terms per plane).

The implementation and documentation is available in my GEOGRAM library:

http://alice.loria.fr/software/geogram/doc/html/namespaceGEO_1_1PCK.html

BrunoLevy
  • 2,495
  • 17
  • 30