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