E4 · Publication Volume 26
Intersections and Sections
drillhole–surface, mesh–plane and volume-clipping operations
Learning objectives
- Explain the decision and evidence boundary for drillhole-surface, mesh-plane and volume-clipping operations.
- Select and implement the relevant representation or algorithm without hidden coordinate, support or topology assumptions.
- Separate exact predicates, approximation error, source uncertainty and visual delivery.
- Produce an intersection kernel with classified degeneracies and section assembly tests from synthetic evidence.
The lesson is complete only when the learner can defend the representation, transform, predicates, tests and release decision. A visually clean map or 3D scene without executable invariants and provenance remains unverified.
This is a general, institution-neutral tutorial with no relationship to any company or individual. All coordinates, geometries, grids, points, surfaces, volumes, attributes and review events in the lesson are synthetic and must not be used for an operational decision.
Decision context
The decision is what kind of intersection result is required and how boundary cases are represented. Segment-triangle, polyline-surface, mesh-plane and solid-clipping operations can return none, one point, several points, an overlapping segment, a coplanar region or an indeterminate result when input is invalid. Reducing every case to a point list loses topology and can create false crossings. The contract declares operand versions, frames, dimensions, boundary policy, result types, tolerance policy, ordering and attribution to source primitives.
Write the intended use, consequence of error, required evidence, spatial support and release authority before selecting a representation or transformation. Fitness is evaluated against a versioned contract and use, not attached permanently to a file extension.
Core concept
Intersection is a classification problem before it is a coordinate calculation. Broad-phase bounds identify candidate primitive pairs; robust orientation or side predicates classify relative position; coordinate construction then computes points or segments for the classified case. A drillhole path is piecewise parametric and intersections inherit measured-depth position along each segment. A mesh-plane section produces unordered primitive fragments that must be assembled by shared endpoint identity and topology, not merely sorted by one coordinate. Tangent and coplanar cases remain explicit.
Keep received evidence, accepted analytical views and derived representations as distinct objects. This allows corrected evidence, a changed transform or a new level of detail to generate a new result without rewriting history. Every coordinate and primitive therefore answers both a spatial question and a provenance question.
Algorithm and data model
Canonicalise operands into one computation frame, validate them, build conservative candidate bounds and evaluate a typed predicate. Represent results as records with operation identity, source primitive identities, result class, coordinates, local parameters, uncertainty and numerical method. For plane sections, merge endpoints only under a declared identity policy, build a graph, extract open and closed polylines and retain branches or unresolved nodes. For volume clipping, classify each output primitive against the clipping boundary and validate the reconstructed boundary before computing area or volume.
Define parsing, semantic validation, canonicalisation, indexing, exact or approximate calculation, quality evaluation and encoding as separate stages. Each stage emits structured output and does not depend on interface state, file order, graphics-driver behaviour or undocumented defaults.
Constraints and invariants
| Invariant | Executable or review test | | --- | --- | | Operands are validated and expressed in one declared computation frame. | Reject or quarantine the exact affected object and preserve the received representation. | | Intersection output retains typed none, point, segment, region and indeterminate states. | Evaluate this condition before creating a derived geometry, grid, surface or volume. | | Every result links to exact source primitives and local parameters. | Record the predicate, tolerance policy, observed values and coordinate frame. | | Section assembly preserves graph branches and validates closed components. | Make every repair a new version and rerun all dependent golden cases. |
An invariant must survive import, transformation, processing, export and rerun. A failed hard invariant produces no apparently valid substitute. Diagnostics remain visible with predicate, threshold, coordinate frame, scope and evidence, and require a reviewed rule before they can trigger repair.
Quantitative reasoning
A segment is \mathbf{p}(t)=\mathbf{p}_0+t(\mathbf{p}_1-\mathbf{p}_0) for 0\le t\le1. A valid point intersection reports t, barycentric coordinates on the triangle or corresponding surface parameter, world coordinate and residual when substituted back into both operands. Along a drillhole segment from measured depths MD_0 to MD_1, the intersection depth is MD(t)=MD_0+t(MD_1-MD_0). Report candidate pairs, classified cases, duplicate events, section nodes and edges, open and closed components, branch degree, residuals and clipped-volume conservation. Test endpoints, vertices, edges, tangency, parallel non-coplanar, coplanar overlap and duplicate triangles.
Every metric includes units, support, numerator and denominator where applicable, exclusions, comparison policy and evaluation version. Aggregate metrics are stratified when pooling can hide local geometry failure. A performance gain cannot overrule invalid topology, missing reference metadata or broken lineage.
Evidence and uncertainty
Keep acquisition uncertainty, interpretation uncertainty, discretisation error, numeric round-off and delivery error separate. Increasing coordinate digits or triangle count does not improve the original evidence. A sampled surface may be smooth and watertight while remaining poorly constrained between observations. Report uncertainty in the quantity and support to which it belongs.
Build an evidence packet containing immutable received objects, semantic declarations, validation findings, transform inputs and outputs, measured errors, test results, reviewer decisions and fingerprints. Contradictory evidence remains available. When a required reference, topology state or classification cannot be resolved, return unknown, conflict or blocked rather than inventing geometry.
Interfaces and storage
Interfaces transmit identity, coordinate reference, units, axis order, support, topology expectations, attribute association, null state, version and lineage beside coordinates. Structured errors identify the object, primitive, predicate, observed value, expected condition and rule. An interface that carries vertices but drops the transform or face orientation has not preserved the object.
Store authoritative received evidence separately from reproducible analytical derivatives and disposable delivery artefacts. Indexes, caches, pyramids and render meshes improve access but cannot become the only copy of source attributes or coordinate metadata. Round-trip tests verify identity, precision, topology, ordering, missingness and association after encoding changes.
Governance and review
Assign responsibilities to roles rather than named organisations or people: evidence custodian, representation author, algorithm maintainer, independent validator and release reviewer. A role may propose a repair but cannot erase the received geometry. Transform, predicate and tolerance changes are versioned and evaluated against fixed regression fixtures before release.
Exceptions are explicit decisions with scope, rationale, evidence, approving role, affected versions and review trigger. They never turn invalid topology into valid topology by label. The host website has no ownership or scientific-authority role in this workflow; it only delivers the tutorial.
Integration checkpoint
Read the figure as a reasoning map from preserved evidence through declared support and coordinates, controlled transformation, validation and scoped release. Each arrow represents a declared relationship. Integrate an intersection kernel with classified degeneracies and section assembly tests into SYN-SPATIAL, rerun earlier fixtures and record every changed assumption.
Synthetic worked example
Synthetic path SYN-DH01 crosses a horizontal triangle exactly at a shared triangle edge. A naive per-triangle routine returns two nearly identical points and reports two geological crossings. The typed kernel recognises that both events represent one boundary location, retains both contributing face identities, creates one canonical event and records an edge-contact class. A second fixture lies within the plane for part of a segment; it returns a coplanar overlap interval rather than inventing one midpoint.
- Preserve the received object and state the intended decision without repair.
- Resolve identity, reference, units, support, topology and evidence eligibility.
- Run the versioned transform or predicate while retaining intermediate diagnostics.
- Issue accept, reject or quarantine and show how an independent reviewer reproduces it.
Practice task
Implement the chapter artefact against a synthetic fixture containing one normal case, one boundary case, one invalid case and one unresolved-evidence case. Preserve the received fixture. Produce canonical input, validation findings, derivative output, processing manifest, measured error and a short release decision.
Acceptance criteria:
- Every required identity, coordinate reference, unit, support and convention is explicit.
- The implementation is deterministic under stable ordering and the declared numerical policy.
- No repair overwrites received evidence or converts unknown into a guessed value.
- All hard failures block the affected derivative and remain machine-readable.
- A second implementation or reviewer can reproduce the result from the package alone.
Submit an intersection kernel with classified degeneracies and section assembly tests, golden and adversarial fixtures, exact findings, measured error and a limitations note. A screenshot is not sufficient evidence because it does not identify input versions, transforms, algorithms or rule configuration.
Common failure modes
- Returning only point coordinates and losing intersection type.
- Counting shared-edge duplicates as separate crossings.
- Sorting section fragments by one axis instead of assembling topology.
- Choosing an arbitrary midpoint for a coplanar overlap.
These failures share a pattern: implicit convenience is substituted for evidence. Diagnose the earliest boundary where the assumption entered, restore the source statement, make the transform or predicate explicit, rerun all dependent derivatives and supersede rather than overwrite the affected release.
Review questions
- Why is intersection classification required before coordinate construction?
- Which parameters make a drillhole-surface event reproducible?
- How should shared-edge duplicate events be represented?
- Why is a plane section naturally a graph?
For every answer, identify the governing invariant, evidence needed to evaluate it, numerical or semantic policy involved and correct behaviour when the condition fails.
Sources and further reading
- CGAL Polygon Mesh Processing manual, documenting manifold assumptions, self-intersection tests, point-side predicates and mesh repair.
- VTK file-format documentation, describing structured, unstructured, polygonal and image-data encodings.
- Fast robust predicates for computational geometry, the primary implementation note and paper resources for adaptive orientation and in-circle predicates.
- ISO 19107:2019 spatial schema, specifying conceptual geometry, topology and spatial operations for geographic information.
- ISO 19157-1:2023 geographic data quality, providing a framework for describing and evaluating geographic-data quality.