Skip to main content

geop_core_topology/argument_validation/
different_loop.rs

1use crate::{CoedgeId, Model, argument_validation::same_loop::validate_same_loop};
2use geop_core_math::{
3    geop_error::{GeopError, GeopResult},
4    scalars::Scalar,
5};
6
7/// Validates that `coedge1` and `coedge2` lie on different boundary loops
8/// (the inverse precondition of [`validate_same_loop`]).
9pub fn validate_different_loop<S: Scalar>(
10    model: &Model<S>,
11    coedge1: CoedgeId,
12    coedge2: CoedgeId,
13) -> GeopResult<()> {
14    if validate_same_loop(model, coedge1, coedge2).is_ok() {
15        return Err(GeopError::new(
16            "coedge1 and coedge2 must belong to different loops",
17        ));
18    }
19    Ok(())
20}