Skip to content

feat: R.1 TOUCH FF2F01212 two-disc kiss - #54

Merged
grootstebozewolf merged 1 commit into
feature/sfa-curve-rgrfrom
cursor/r1-touch-laser-7afc
Aug 16, 2026
Merged

feat: R.1 TOUCH FF2F01212 two-disc kiss#54
grootstebozewolf merged 1 commit into
feature/sfa-curve-rgrfrom
cursor/r1-touch-laser-7afc

Conversation

@grootstebozewolf

@grootstebozewolf grootstebozewolf commented Aug 16, 2026

Copy link
Copy Markdown
Owner

R.1 TOUCH laser cell, drafted off #7 (feature/sfa-curve-rgr @ fa640cfc after #51). Do not merge into #7 unless this cell is certified.

Outcome

Pin DE-9IM Touch FF2F01212 on two externally tangent circular discs in public relate:

  • CurveExact.relate
  • Geometry.touches via the RelateOp predicate (IntersectionMatrix.isTouches)

One kiss, no shared flesh. T-ext. V1 before noding. Stamp: EXACT.

Cite ISO/IEC 13249-3 ST_Touches (DE-9IM FT******* / F**T***** / F***T****). No DOI. No ISO 19125-2.

What changed

Two-disc relate no longer classifies through intersectCircles (hypot + radical-axis nodes). The class is decided in : against (r1+r2)² and (r1-r2)². Public numbers may take sqrt; this matrix does not need the kiss coordinates.

The axis-aligned pair in CurveExactRelateDiscTest still kisses at the shared control (5, 0) — the control diamonds also touch, so that pair does not prove the laser. This cell pins a 3-4-5 pair (centres (0,0) / (8,6), r=5) whose kiss (4, 3) is not a control vertex. RelateOp on the control polygons is the lie (disjoint).

Hard locks kept

Verification

  • CurveExactRelateTouchTest 6/6
  • Existing relate family: Disc 14, Point 8, Line 13, Poly 10, Predicate 22 — all green
  • Overlay kits unchanged: CircularDiscOverlayTest 9, OverlayNGCurvePhase0Test 19
  • PERF-GATE testRelateR1TouchKissNotSlowerThanChord green (15% slack)
  • Naming guard clean. Checkstyle 0.

Cell is certified EXACT on this draft. Still draft; merge into #7 is a maintainer call.

Parent: grootstebozewolf/jts#7. Program: locationtech#1195 / Notion CRV-TOUCH.

Open in Web Open in Cursor 

Classify two circular discs in R² (d² vs (r1±r2)²) so T-ext is
exact ST_Touches, ISO/IEC 13249-3. Public relate and Geometry.touches
(RelateOp isTouches) pin FF2F01212 on a 3-4-5 pair whose kiss is not
a control vertex. No OverlayNGCurve.TOUCH. No noder.

Co-authored-by: Jeroen Bloemscheer <grootstebozewolf@users.noreply.github.com>
@grootstebozewolf
grootstebozewolf marked this pull request as ready for review August 16, 2026 19:49
@grootstebozewolf
grootstebozewolf merged commit 1a1b9f6 into feature/sfa-curve-rgr Aug 16, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants