1use crate::{
2 advancing_front::AdvancingFront, points::Points, triangles::TriangleStore, TriangleId,
3};
4
5pub struct Context<'a> {
6 pub points: &'a Points,
7 pub triangles: &'a mut TriangleStore,
8 pub advancing_front: &'a mut AdvancingFront,
9 pub result: Vec<TriangleId>,
10
11 pub(crate) legalize_task_queue: Vec<TriangleId>,
13 pub(crate) legalize_remap_tids: Vec<TriangleId>,
15 pub(crate) triangle_id_queue: Vec<TriangleId>,
17}
18
19impl<'a> Context<'a> {
20 pub fn new(
21 points: &'a Points,
22 triangles: &'a mut TriangleStore,
23 advancing_front: &'a mut AdvancingFront,
24 ) -> Self {
25 Self {
26 points,
27 triangles,
28 advancing_front,
29 result: Vec::with_capacity(points.len()),
30
31 legalize_task_queue: Vec::with_capacity(32),
32 legalize_remap_tids: Vec::with_capacity(32),
33 triangle_id_queue: Vec::with_capacity(32),
34 }
35 }
36}