#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct TriangleSets {
pub triangle_sets: Vec<TriangleSet>,
}
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct TriangleSet {
pub name: String,
pub identifier: String,
pub r#ref: Vec<TriangleRef>,
pub refrange: Vec<TriangleRefRange>,
}
impl TriangleSet {
pub fn new(name: impl Into<String>, identifier: impl Into<String>) -> Self {
Self {
name: name.into(),
identifier: identifier.into(),
r#ref: Vec::new(),
refrange: Vec::new(),
}
}
pub fn add_index(&mut self, index: usize) {
self.r#ref.push(TriangleRef { index });
}
pub fn add_range(&mut self, start: usize, end: usize) {
for i in start..=end {
self.r#ref.push(TriangleRef { index: i });
}
self.refrange.push(TriangleRefRange {
start_index: start,
end_index: end,
});
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct TriangleRef {
pub index: usize,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct TriangleRefRange {
pub start_index: usize,
pub end_index: usize,
}