Skip to content

ludus::foundation::geometry::SurfaceEdge

Ludus Wiki · API overview · Browse API

Struct

One prepared edge with its canonical boundary curve.
Incidence[0] is the owner named by Id. The canonical curve runs in the owner's along-edge parameter t; Incidence[1], when present, has s = t, or s = 1 - t when IsReversed. Continuity values are threshold decisions on Rounded values; a boundary edge leaves them at their defaults.

Declared in modules/foundation/geometry/include/ludus/foundation/geometry/surface.hpp

#include <ludus/foundation/geometry/surface.hpp>
struct ludus::foundation::geometry::SurfaceEdge final

Fields

Id

SurfaceEdgeId ludus::foundation::geometry::SurfaceEdge::Id {}
Stable identity.

Related types: SurfaceEdgeId

Declared in modules/foundation/geometry/include/ludus/foundation/geometry/surface.hpp

Incidence

core::StaticArray<SurfaceEdgeIncidence, MAX_EDGE_INCIDENCES> ludus::foundation::geometry::SurfaceEdge::Incidence {}
Owner first.

Related types: MAX_EDGE_INCIDENCES · core::StaticArray · SurfaceEdgeIncidence

Declared in modules/foundation/geometry/include/ludus/foundation/geometry/surface.hpp

IncidenceCount

usize ludus::foundation::geometry::SurfaceEdge::IncidenceCount = 1
1 for a boundary edge, 2 if shared.

Related types: usize

Declared in modules/foundation/geometry/include/ludus/foundation/geometry/surface.hpp

IsReversed

bool ludus::foundation::geometry::SurfaceEdge::IsReversed = false
Incidence[1] runs opposite to the canonical curve.

Declared in modules/foundation/geometry/include/ludus/foundation/geometry/surface.hpp

Control

core::StaticArray<math::Vector3, PATCH_CONTROL_ORDER> ludus::foundation::geometry::SurfaceEdge::Control {}
Canonical chunk-relative control curve in the owner's orientation (Exact stored values).

Related types: PATCH_CONTROL_ORDER · core::StaticArray · math::Vector3

Declared in modules/foundation/geometry/include/ludus/foundation/geometry/surface.hpp

Corner

core::StaticArray<usize, EDGE_CORNER_COUNT> ludus::foundation::geometry::SurfaceEdge::Corner {}
Corner records at t = 0 and t = 1.

Related types: usize · EDGE_CORNER_COUNT · core::StaticArray

Declared in modules/foundation/geometry/include/ludus/foundation/geometry/surface.hpp

IsOrientationConsistent

bool ludus::foundation::geometry::SurfaceEdge::IsOrientationConsistent = false
Shared edges only: each patch traverses the edge in the opposite direction along its counterclockwise (u, v) boundary, so the two geometric normals Cross(DU, DV) agree in orientation.

Declared in modules/foundation/geometry/include/ludus/foundation/geometry/surface.hpp

CrossDerivativeDifference

float64 ludus::foundation::geometry::SurfaceEdge::CrossDerivativeDifference = 0.0
Shared edges only: largest relative difference between the two outward cross-boundary derivative controls, compared as O_first(t) = -O_second(t) after the parameter mapping.

Related types: float64

Declared in modules/foundation/geometry/include/ludus/foundation/geometry/surface.hpp

IsC1

bool ludus::foundation::geometry::SurfaceEdge::IsC1 = false
Shared edges only: CrossDerivativeDifference <= ContinuityDerivative.

Declared in modules/foundation/geometry/include/ludus/foundation/geometry/surface.hpp