1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use crate::{
objects::{Cycle, Objects},
storage::Handle,
validate::ValidationError,
};
use super::Reverse;
impl Reverse for Handle<Cycle> {
fn reverse(self, objects: &Objects) -> Result<Self, ValidationError> {
let mut edges = self
.half_edges()
.cloned()
.map(|edge| edge.reverse(objects))
.collect::<Result<Vec<_>, _>>()?;
edges.reverse();
Ok(objects.cycles.insert(Cycle::new(edges))?)
}
}