COLNEO Pro 1.2
Loading...
Searching...
No Matches
IntersectionOptions

Description

Configures triangle-surface intersection checks and optional near-contact reporting.

Any intersection between usable triangles is a clash, including coplanar overlaps and shared edges/points, within scale-dependent numerical tolerance. Closed topology, consistent winding and positive volume are unnecessary. Degenerate triangles are ignored; malformed triangles are reported and skipped while other triangles and objects continue. An object wholly inside another without intersecting surfaces is detected by the separate inclusion check, not this surface test. touchingCountsAsClash (default false) additionally reports separated surfaces within distanceTolerance (default 0.002 metres). This uses intersection options independently of contact options. minimumPenetrationDepth, minimumIntersectionVolume and minimumIntersectionRatio are legacy fields; they are echoed and validated but do not filter surface intersections. No penetration or overlap volume is calculated by this check. Their units remain metres, cubic metres and a ratio in [0, 1], respectively.

includeClashAabb (map key include_clash_aabb, default false) adds an aabb field to each intersection result. Its min/max arrays contain world coordinates in metres, bounding the calculated triangle intersection segments, coplanar overlap polygons and edge/point contacts across the entire object pair. It does not return the bounds of whole objects or whole intersecting triangles. Bounds may have zero extent on one or more axes. Numerical contacts use the clipping tolerance and, when necessary, closest witness points. Near-contact-only results beyond numerical tolerance have aabb null because there is no triangle intersection. With the flag disabled, the field is omitted. Collecting the complete bounds disables the first-intersection early exit and consumes the shared work budget. Unresolved bounds or budget exhaustion report a pair error rather than an incomplete bounding box.

Example options for cnToolsAPI.checkClashes():

return cnToolsAPI.checkClashes(["object_a_id"], ["object_b_id"], {
"intersection_enabled": true,
"intersection": { "include_clash_aabb": true }
});

Example aabb field in data.results:

{ "aabb": { "min": [10.0, 20.0, 3.0], "max": [10.4, 20.2, 3.0] } }

setFromMap() preserves omitted values. Numeric values must be finite and non-negative and satisfy the ranges above; map conversion does not validate these caller preconditions. Geometry is not evaluated here.

Since
1.1, 09/2026