Boundary representation 2026-10-31
A boundary representation specifies a solid through its oriented bounding faces and their edge and vertex of a polyhedron incidence. Supporting planes and coordinates supply geometry; face loops and adjacency supply topology. A valid closed manifold model requires compatible orientation, two incident faces per edge and a single local fan at each vertex of a polyhedron, together with an embedded boundary.
Doubly connected edge list 2026-10-31
A mesh representation with two oppositely directed records per ordinary edge. Each record stores its origin vertex of a polyhedron, incident face, next face-boundary record and opposite record; previous records are often cached. The opposite record's origin gives the destination. This usage differs from a dangling half-edge of a graph.
For an ordinary closed manifold boundary representation, three requirements are:
- Valid embedded faces. Each face is planar and bounded by simple closed edge loops with nonzero area; distinct face interiors do not cross, and faces meet only in their declared common edges or vertices of a polyhedron. A quadrilateral with four noncoplanar vertices of a polyhedron is not one planar face; a bow-tie loop does not bound a simple face. Holes, when allowed, need separate correctly oriented loops.
- Closed manifold incidence. Exactly two faces meet at each edge, and the incident faces around each vertex of a polyhedron form one cyclic fan. A single missing face leaves edges incident with only one face. Three faces sharing an edge, or two closed shells touching only at one vertex of a polyhedron, violate the local surface condition. The second example shows why the edge count alone is insufficient.
- Consistent orientation. Adjacent oriented faces traverse their common edge in opposite directions, giving compatible outward normal vectors. Reversing just one face of a tetrahedron breaks this condition. For a cavity, the material's outward normal vector points into the cavity, so shell orientation must also respect which region is solid.
Together these support the answerFor a connected orientable closed boundary of genus , the Euler characteristic provides an additional check, , when faces are disk-like. The familiar value applies to a sphere-like shell; it must not be imposed blindly on every polyhedron. Correct counts alone do not exclude intersections or invalid local incidence.
A boundary representation separates geometry, which supplies locations and supporting planes, from topology, which specifies incidence and orientation. A practical winged-edge data structure uses three related record types:
- A vertex of a polyhedron record holds its three coordinates and a reference to one incident edge, sufficient to begin traversing the local fan.
- A face record holds its supporting plane, an outward normal vector or equivalent orientation, and a reference to a boundary edge. Faces with holes need one entry per boundary loop.
- An edge record holds its two endpoint vertices of a polyhedron, its left and right incident faces, and predecessor and successor edges around each of those faces: four “wing” references. “Left” and “right” refer to a chosen orientation of the edge and compatible face traversal conventions.
This explicitly stores adjacency rather than recovering it by searching all faces. A half-edge data structure expresses much the same information with two oppositely directed records per undirected edge: each has an origin vertex of a polyhedron, an incident face, its next boundary record and its opposite record; a previous record is often stored as well. The destination can be obtained from the opposite record's origin. This mesh record is distinct from a dangling half-edge of a graph.
The compact implementation answer isThere is deliberate redundancy: the same adjacency can be reached from both an edge and a face, a stored previous edge is recoverable by walking the loop, and a face normal vector can be computed from its ordered noncollinear vertices of a polyhedron. These copies make neighbourhood queries and local edits cheap, and cached plane equations speed geometric tests. They impose consistency obligations: an edit must update reciprocal references, loops, orientations and affected geometric caches together. A half-edge data structure should share the undirected edge's geometry or keep its paired records synchronized.
Use the straightforward incremental three-dimensional convex hull algorithm. Assume distinct input points, at least four noncoplanar points, and general position with no four coplanar. Use exact orientation decisions, or robust predicates that certify the same signs. These assumptions avoid the separate bookkeeping for flat faces, points on the boundary and lower-dimensional initial data.
- Select four points forming a nondegenerate tetrahedron. Store its four triangular faces with outward normal vectors and consistent adjacency.
- For the next point , evaluate every current oriented face usingThe current hull lies in . Thus a face is visible from exactly when .
- If no face is visible, discard : it lies in the current convex hull. Otherwise identify the horizon of a convex polyhedron seen from , namely the edges incident with exactly one visible and one retained face.
- Delete the visible faces and cone the ordered horizon of a convex polyhedron to , adding one triangle per horizon edge. Orient each new face consistently outward and continue with the next point.
The determinant is six times the oriented volume of the tetrahedron ; only its sign matters. A zero value needs a declared degeneracy policy if the general-position assumption is relaxed.
The data structure update is a separate local operation. Mark visible faces and walk their adjacency to collect the horizon cycle before deleting anything. Remove edges with two visible incident faces; retain horizon edges and their retained-face links. Insert a vertex of a polyhedron record for and a new edge from to each horizon vertex of a polyhedron. Add one face per horizon edge, connect its other two edges to its neighbours in the cone, and replace the deleted face reference on each horizon edge. Restore the cyclic boundary references and each retained vertex of a polyhedron's incident-edge reference; remove any old vertices of a polyhedron left without incident faces.
For an outward visible face with boundary edge on the horizon, the new outward face can be ordered . Its retained neighbour already traverses that edge as . As an independent orientation check, an interior point of the old hull must evaluate negatively against the new face.
The correctness step is geometric: the nonvisible part of a convex polyhedron remains supporting, while sight lines from to the horizon create precisely the new supporting faces. Replacing the visible cap by its cone therefore givesInduction from the initial tetrahedron yields the convex hull of all input points.
With processed points, a triangulated three-dimensional convex hull has faces and edges. For a sphere-like triangular boundary, the Euler characteristic and give and , with . The complete face scan, horizon construction and adjacency update in the implementation of part (e) therefore cost per insertion. Consequently,The quadratic worst case really occurs for this implementation. Choose all input points in strictly convex position, for example distinct points on the three-dimensional moment curve. Each processed point remains a hull vertex of a polyhedron, so the hull has triangular faces after insertions. Scanning every face at every next insertion takes sign tests. This argument does not require every insertion to delete most faces: the repeated global scans already force the bound. More elaborate convex hull algorithms with different search machinery are not the implementation being analysed here.
Insert the points in their given order, starting from . Use outward face orientation and regard as the interior side. The initial tetrahedron is nondegenerate becauseThus its volume is . The following table gives consistently oriented faces, conveniently scaled plane equations, and the omitted old vertex of a polyhedron test:
| Face order | Interior inequality | Value at the opposite vertex |
|---|
Every opposite vertex of a polyhedron is strictly on the interior side, so these orientations are correct. The intersection of these four half-spaces is exactly the initial tetrahedron.
Now test . In the same row order the face expressions giveTherefore and are visible and must be removed; and are retained. The common edge lies inside the deleted patch and is removed. The directed horizon isCone this cycle to , giving outward face orders . Their equations and tests of the two old vertices of a polyhedron not belonging to each face are:
| New face | Interior inequality | Tests of the other vertices |
|---|
Each new plane contains its three named vertices of a polyhedron and has all remaining input points strictly on the interior side. Together with the two retained half-spaces, these six supporting inequalities describe the final convex hull:Equivalently assemble the closed oriented boundary from , with adjacent face loops traversing shared edges in opposite directions. It is a triangular bipyramid with base triangle and apices ; is internal, so it is not a boundary face. There are five vertices of a polyhedron, nine edges and six faces, giving the check . The initial tetrahedron similarly has .
Initial tetrahedron, the two faces visible from E and their horizon, and the final six-face convex hull
. Details. If a differentiable function has a constrained local extremum at a point of a smooth surface, its derivative vanishes in every tangent direction; equivalently its gradient is normal to the surface. For a regular equation this means for some real multiplier.
First the box is centred at the origin: holding the other coordinates of a vertex of a polyhedron fixed and comparing the two possible coordinates in the first direction gives , so the distinct extremes are opposites; the other two directions give the same conclusion. Write its positive half-lengths as , with . Its volume is . A degenerate box has zero volume, so a positive maximum is interior in . Lagrange multipliers applied to give , and the analogous equations imply . Alternatively the arithmetic–geometric mean inequality applied to proves global maximality. Thus
Winged edge 2026-10-31
An edge record stores endpoint vertices of a polyhedron, its two incident faces, and predecessor and successor edges for each face. These four boundary-neighbour references are the wings. Face and vertex of a polyhedron records also carry entry references for traversal. Local edits must preserve all reciprocal incidence references and orientations.
