geop_core_topology/edge.rs
1use super::ids::VertexId;
2use super::model::Curve3;
3use geop_core_math::scalars::Scalar;
4
5/// A 1-dimensional topological entity: a bounded arc of a 3-D NURBS curve.
6///
7/// The curve is owned directly by its edge, and is always pre-trimmed so its
8/// own domain (`curve.domain()`) is exactly this edge's span — there is no
9/// separate `[start_t, end_t]` window into a possibly-larger curve.
10/// `start_vertex` lies at `curve.domain().0` and `end_vertex` at
11/// `curve.domain().1`.
12#[derive(Clone, Debug)]
13pub struct Edge<S: Scalar> {
14 pub curve: Curve3<S>,
15 pub start_vertex: VertexId,
16 pub end_vertex: VertexId,
17}