mirror of
https://github.com/hannobraun/Fornjot
synced 2025-02-12 18:26:00 +00:00
Merge pull request #460 from hannobraun/face
Don't use `mesh::Triangle` in `Face`
This commit is contained in:
commit
875b52660e
@ -1,7 +1,6 @@
|
|||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use fj_interop::mesh::Triangle;
|
use fj_math::{Scalar, Transform, Triangle, Vector};
|
||||||
use fj_math::{Scalar, Transform, Vector};
|
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
geometry::{Surface, SweptCurve},
|
geometry::{Surface, SweptCurve},
|
||||||
@ -150,10 +149,10 @@ pub fn sweep_shape(
|
|||||||
quads.push([v0, v1, v2, v3]);
|
quads.push([v0, v1, v2, v3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut side_face: Vec<Triangle> = Vec::new();
|
let mut side_face: Vec<(Triangle<3>, _)> = Vec::new();
|
||||||
for [v0, v1, v2, v3] in quads {
|
for [v0, v1, v2, v3] in quads {
|
||||||
side_face.push(Triangle::new([v0, v1, v2], color));
|
side_face.push(([v0, v1, v2].into(), color));
|
||||||
side_face.push(Triangle::new([v0, v2, v3], color));
|
side_face.push(([v0, v2, v3].into(), color));
|
||||||
}
|
}
|
||||||
|
|
||||||
target.insert(Face::Triangles(side_face)).unwrap();
|
target.insert(Face::Triangles(side_face)).unwrap();
|
||||||
|
@ -68,8 +68,8 @@ pub fn triangulate(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Face::Triangles(triangles) => {
|
Face::Triangles(triangles) => {
|
||||||
for triangle in triangles {
|
for &(triangle, color) in triangles {
|
||||||
mesh.push_triangle(triangle.inner, triangle.color);
|
mesh.push_triangle(triangle, color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
use fj_interop::mesh::Triangle;
|
|
||||||
use fj_math::{Point, Transform};
|
use fj_math::{Point, Transform};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
@ -45,11 +44,8 @@ impl Geometry<'_> {
|
|||||||
self.faces.update(|mut face| {
|
self.faces.update(|mut face| {
|
||||||
use std::ops::DerefMut as _;
|
use std::ops::DerefMut as _;
|
||||||
if let Face::Triangles(triangles) = face.deref_mut() {
|
if let Face::Triangles(triangles) = face.deref_mut() {
|
||||||
for triangle in triangles {
|
for (triangle, _) in triangles {
|
||||||
*triangle = Triangle {
|
*triangle = transform.transform_triangle(triangle);
|
||||||
inner: transform.transform_triangle(&triangle.inner),
|
|
||||||
..*triangle
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
use std::hash::{Hash, Hasher};
|
use std::hash::{Hash, Hasher};
|
||||||
|
|
||||||
use fj_interop::mesh::Triangle;
|
use fj_interop::mesh::Color;
|
||||||
|
use fj_math::Triangle;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
geometry::Surface,
|
geometry::Surface,
|
||||||
@ -61,7 +62,7 @@ pub enum Face {
|
|||||||
/// The plan is to eventually represent faces as a geometric surface,
|
/// The plan is to eventually represent faces as a geometric surface,
|
||||||
/// bounded by edges. While the transition is being made, this variant is
|
/// bounded by edges. While the transition is being made, this variant is
|
||||||
/// still required.
|
/// still required.
|
||||||
Triangles(Vec<Triangle>),
|
Triangles(Vec<(Triangle<3>, Color)>),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Face {
|
impl Face {
|
||||||
|
Loading…
Reference in New Issue
Block a user