mirror of
https://github.com/hannobraun/Fornjot
synced 2025-05-04 01:48:28 +00:00
Prepare to track internal triangles
This commit is contained in:
parent
4b8c25c89d
commit
ab8b2b9b9c
@ -11,7 +11,7 @@ pub fn export(op: &dyn Object) -> anyhow::Result<()> {
|
||||
let mut triangles = Vec::new();
|
||||
|
||||
for triangle in tri_mesh.triangles {
|
||||
let triangle = triangle.points.map(|point| {
|
||||
let triangle = triangle.inner.points.map(|point| {
|
||||
*indices_by_vertex.entry(point).or_insert_with(|| {
|
||||
let index = points.len();
|
||||
points.push(point);
|
||||
|
@ -7,7 +7,7 @@ use geo::{Contains, Coord, LineString, Polygon};
|
||||
use spade::Triangulation;
|
||||
|
||||
use crate::{
|
||||
geometry::{TriMesh, Triangle},
|
||||
geometry::{MeshTriangle, TriMesh, Triangle},
|
||||
math::{Plane, Point},
|
||||
object::Handle,
|
||||
topology::half_edge::HalfEdge,
|
||||
@ -32,7 +32,9 @@ pub fn triangulate(
|
||||
})
|
||||
.map(|triangle| {
|
||||
let points = triangle.map(|point| point.point_vertex);
|
||||
Triangle { points }
|
||||
MeshTriangle {
|
||||
inner: Triangle { points },
|
||||
}
|
||||
});
|
||||
|
||||
let mut mesh = TriMesh::new();
|
||||
|
@ -2,4 +2,8 @@ mod sketch;
|
||||
mod tri_mesh;
|
||||
mod triangle;
|
||||
|
||||
pub use self::{sketch::Sketch, tri_mesh::TriMesh, triangle::Triangle};
|
||||
pub use self::{
|
||||
sketch::Sketch,
|
||||
tri_mesh::{MeshTriangle, TriMesh},
|
||||
triangle::Triangle,
|
||||
};
|
||||
|
@ -2,7 +2,7 @@ use super::Triangle;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct TriMesh {
|
||||
pub triangles: Vec<Triangle<3>>,
|
||||
pub triangles: Vec<MeshTriangle>,
|
||||
}
|
||||
|
||||
impl TriMesh {
|
||||
@ -17,3 +17,8 @@ impl TriMesh {
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct MeshTriangle {
|
||||
pub inner: Triangle<3>,
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ use crate::{
|
||||
object::{HandleAny, Object},
|
||||
};
|
||||
|
||||
use super::TriMesh;
|
||||
use super::{MeshTriangle, TriMesh};
|
||||
|
||||
#[derive(Clone, Debug, Eq, Ord, PartialEq, PartialOrd)]
|
||||
pub struct Triangle<const D: usize> {
|
||||
@ -38,7 +38,9 @@ impl Object for Triangle<3> {
|
||||
|
||||
fn tri_mesh(&self) -> TriMesh {
|
||||
TriMesh {
|
||||
triangles: vec![self.clone()],
|
||||
triangles: vec![MeshTriangle {
|
||||
inner: self.clone(),
|
||||
}],
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ impl Geometry {
|
||||
let mut vertices = Vec::new();
|
||||
|
||||
for triangle in &tri_mesh.triangles {
|
||||
let triangle = triangle.points.each_ref().map(|point| {
|
||||
let triangle = triangle.inner.points.each_ref().map(|point| {
|
||||
Vec3::from(
|
||||
point.coords.components.map(|coord| coord.value() as f32),
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user