openworld_radio_twin.simulation.native_geometry#

Native building-shell placement and vertical-column sampling.

These operations consume source triangles, not footprint extrusions. Z remains in its declared source datum until an explicit common building offset is applied.

Functions

column_intervals(vertices, triangles, ...)

Sample solid occupancy, including compound shells and enclosed cavities.

geographic_vertices(geometry)

Return WGS84 XY with untouched source-datum Z (not ellipsoidal altitude).

ground_projection(vertices, geometry)

Return the source ground contact used for anchoring.

has_ground_faces(geometry)

Whether the source shell carries GroundSurface faces to anchor on.

horizontal_enu_vertices(geometry, frame)

projected_triangles(vertices, triangles)

Vertical projections of triangles with non-negligible area, as one geometry array.

openworld_radio_twin.simulation.native_geometry.geographic_vertices(geometry)[source]#

Return WGS84 XY with untouched source-datum Z (not ellipsoidal altitude).

Return type:

ndarray

openworld_radio_twin.simulation.native_geometry.horizontal_enu_vertices(geometry, frame)[source]#
Return type:

ndarray

openworld_radio_twin.simulation.native_geometry.has_ground_faces(geometry)[source]#

Whether the source shell carries GroundSurface faces to anchor on.

Return type:

bool

openworld_radio_twin.simulation.native_geometry.ground_projection(vertices, geometry)[source]#

Return the source ground contact used for anchoring.

GroundSurface faces exclude roof overhangs. A shell without them, which 3DBAG emits for some parts, falls back to the projection of its whole shell so the building is still placed; the caller records that rule instead of dropping the building.

openworld_radio_twin.simulation.native_geometry.projected_triangles(vertices, triangles)[source]#

Vertical projections of triangles with non-negligible area, as one geometry array.

Return type:

ndarray

openworld_radio_twin.simulation.native_geometry.column_intervals(vertices, triangles, east_axis, north_axis)[source]#

Sample solid occupancy, including compound shells and enclosed cavities.

Independent closed components can overlap or share a ground elevation. Pair intersections within each component before combining signed interior intervals; globally deduplicating elevations loses the multiplicity at shared surfaces. Outward-oriented components add solid volume; inward-oriented ones bound voids.

Return type:

tuple[ndarray, ndarray, ndarray, ndarray]