mirror of
https://github.com/hannobraun/Fornjot
synced 2025-05-10 21:08:27 +00:00
Auto-format according to 2024 edition style
This commit is contained in:
parent
7ac23f73df
commit
5a58baaeee
@ -1,6 +1,6 @@
|
|||||||
use fj_math::{Circle, Point};
|
use fj_math::{Circle, Point};
|
||||||
|
|
||||||
use crate::geometry::{traits::GenPolyline, CurveBoundary, Tolerance};
|
use crate::geometry::{CurveBoundary, Tolerance, traits::GenPolyline};
|
||||||
|
|
||||||
/// # Approximate a circle
|
/// # Approximate a circle
|
||||||
///
|
///
|
||||||
|
@ -4,14 +4,14 @@ use fj_math::{Circle, Line, Point};
|
|||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
geometry::{
|
geometry::{
|
||||||
repr::tri_mesh::convert_point_surface_to_global, surfaces::SweptCurve,
|
|
||||||
CurveBoundary, Geometry, Path, Tolerance,
|
CurveBoundary, Geometry, Path, Tolerance,
|
||||||
|
repr::tri_mesh::convert_point_surface_to_global, surfaces::SweptCurve,
|
||||||
},
|
},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Curve, Surface},
|
topology::{Curve, Surface},
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{circle::approx_circle, line::approx_line, ApproxPoint};
|
use super::{ApproxPoint, circle::approx_circle, line::approx_line};
|
||||||
|
|
||||||
/// Approximate the provided curve
|
/// Approximate the provided curve
|
||||||
///
|
///
|
||||||
@ -209,16 +209,17 @@ mod tests {
|
|||||||
use pretty_assertions::assert_eq;
|
use pretty_assertions::assert_eq;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
algorithms::approx::{
|
algorithms::approx::{
|
||||||
circle::approx_circle, curve::approx_curve, ApproxPoint,
|
ApproxPoint, circle::approx_circle, curve::approx_curve,
|
||||||
},
|
},
|
||||||
geometry::{
|
geometry::{
|
||||||
|
CurveBoundary, Path,
|
||||||
repr::tri_mesh::convert_point_surface_to_global,
|
repr::tri_mesh::convert_point_surface_to_global,
|
||||||
surfaces::SweptCurve, CurveBoundary, Path,
|
surfaces::SweptCurve,
|
||||||
},
|
},
|
||||||
operations::build::BuildSurface,
|
operations::build::BuildSurface,
|
||||||
topology::Surface,
|
topology::Surface,
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -11,9 +11,9 @@ use crate::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
half_edge::{approx_half_edge, HalfEdgeApprox},
|
|
||||||
vertex::approx_vertex,
|
|
||||||
ApproxCache, ApproxPoint,
|
ApproxCache, ApproxPoint,
|
||||||
|
half_edge::{HalfEdgeApprox, approx_half_edge},
|
||||||
|
vertex::approx_vertex,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Approximate the provided cycle
|
/// Approximate the provided cycle
|
||||||
|
@ -12,8 +12,8 @@ use crate::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
cycle::{approx_cycle, CycleApprox},
|
|
||||||
Approx, ApproxCache, ApproxPoint,
|
Approx, ApproxCache, ApproxPoint,
|
||||||
|
cycle::{CycleApprox, approx_cycle},
|
||||||
};
|
};
|
||||||
|
|
||||||
impl Approx for &ObjectSet<Face> {
|
impl Approx for &ObjectSet<Face> {
|
||||||
|
@ -13,8 +13,8 @@ use crate::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
curve::{approx_curve_with_cache, CurveApproxCache},
|
|
||||||
ApproxPoint,
|
ApproxPoint,
|
||||||
|
curve::{CurveApproxCache, approx_curve_with_cache},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Approximate the provided half-edge
|
/// Approximate the provided half-edge
|
||||||
|
@ -4,7 +4,7 @@ use std::collections::BTreeSet;
|
|||||||
|
|
||||||
use crate::{geometry::Geometry, topology::Shell};
|
use crate::{geometry::Geometry, topology::Shell};
|
||||||
|
|
||||||
use super::{face::FaceApprox, Approx, ApproxCache, Tolerance};
|
use super::{Approx, ApproxCache, Tolerance, face::FaceApprox};
|
||||||
|
|
||||||
impl Approx for &Shell {
|
impl Approx for &Shell {
|
||||||
type Approximation = BTreeSet<FaceApprox>;
|
type Approximation = BTreeSet<FaceApprox>;
|
||||||
|
@ -4,7 +4,7 @@ use std::collections::BTreeSet;
|
|||||||
|
|
||||||
use crate::{geometry::Geometry, topology::Sketch};
|
use crate::{geometry::Geometry, topology::Sketch};
|
||||||
|
|
||||||
use super::{face::FaceApprox, Approx, ApproxCache, Tolerance};
|
use super::{Approx, ApproxCache, Tolerance, face::FaceApprox};
|
||||||
|
|
||||||
impl Approx for &Sketch {
|
impl Approx for &Sketch {
|
||||||
type Approximation = BTreeSet<FaceApprox>;
|
type Approximation = BTreeSet<FaceApprox>;
|
||||||
|
@ -4,7 +4,7 @@ use std::collections::BTreeSet;
|
|||||||
|
|
||||||
use crate::{geometry::Geometry, topology::Solid};
|
use crate::{geometry::Geometry, topology::Solid};
|
||||||
|
|
||||||
use super::{face::FaceApprox, Approx, ApproxCache, Tolerance};
|
use super::{Approx, ApproxCache, Tolerance, face::FaceApprox};
|
||||||
|
|
||||||
impl Approx for &Solid {
|
impl Approx for &Solid {
|
||||||
type Approximation = BTreeSet<FaceApprox>;
|
type Approximation = BTreeSet<FaceApprox>;
|
||||||
|
@ -3,7 +3,7 @@ use std::collections::BTreeMap;
|
|||||||
use fj_math::Point;
|
use fj_math::Point;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
geometry::{repr::tri_mesh::convert_point_surface_to_global, Geometry},
|
geometry::{Geometry, repr::tri_mesh::convert_point_surface_to_global},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Curve, Surface, Vertex},
|
topology::{Curve, Surface, Vertex},
|
||||||
};
|
};
|
||||||
|
@ -4,8 +4,8 @@ use fj_math::{Aabb, Vector};
|
|||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
geometry::{
|
geometry::{
|
||||||
repr::tri_mesh::convert_point_surface_to_global, traits::GenTriMesh,
|
Geometry, Tolerance, repr::tri_mesh::convert_point_surface_to_global,
|
||||||
Geometry, Tolerance,
|
traits::GenTriMesh,
|
||||||
},
|
},
|
||||||
topology::Face,
|
topology::Face,
|
||||||
};
|
};
|
||||||
|
@ -6,11 +6,11 @@ mod polygon;
|
|||||||
use fj_interop::Mesh;
|
use fj_interop::Mesh;
|
||||||
use fj_math::Point;
|
use fj_math::Point;
|
||||||
|
|
||||||
use crate::{geometry::Tolerance, operations::presentation::GetColor, Core};
|
use crate::{Core, geometry::Tolerance, operations::presentation::GetColor};
|
||||||
|
|
||||||
use self::polygon::Polygon;
|
use self::polygon::Polygon;
|
||||||
|
|
||||||
use super::approx::{face::FaceApprox, Approx};
|
use super::approx::{Approx, face::FaceApprox};
|
||||||
|
|
||||||
/// Triangulate a shape
|
/// Triangulate a shape
|
||||||
pub trait Triangulate: Sized {
|
pub trait Triangulate: Sized {
|
||||||
@ -80,9 +80,10 @@ mod tests {
|
|||||||
use fj_math::{Point, Scalar};
|
use fj_math::{Point, Scalar};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
algorithms::approx::{face::approx_face, ApproxCache},
|
Core,
|
||||||
|
algorithms::approx::{ApproxCache, face::approx_face},
|
||||||
geometry::{
|
geometry::{
|
||||||
repr::tri_mesh::convert_point_surface_to_global, Tolerance,
|
Tolerance, repr::tri_mesh::convert_point_surface_to_global,
|
||||||
},
|
},
|
||||||
operations::{
|
operations::{
|
||||||
build::{BuildCycle, BuildFace},
|
build::{BuildCycle, BuildFace},
|
||||||
@ -91,7 +92,6 @@ mod tests {
|
|||||||
},
|
},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Face},
|
topology::{Cycle, Face},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::Triangulate;
|
use super::Triangulate;
|
||||||
|
@ -2,7 +2,7 @@ use fj_interop::ext::SliceExt;
|
|||||||
use fj_math::{LineSegment, Point, PolyChain, Triangle};
|
use fj_math::{LineSegment, Point, PolyChain, Triangle};
|
||||||
|
|
||||||
use crate::algorithms::intersect::{
|
use crate::algorithms::intersect::{
|
||||||
ray_segment::RaySegmentIntersection, HorizontalRayToTheRight, Intersect,
|
HorizontalRayToTheRight, Intersect, ray_segment::RaySegmentIntersection,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
|
@ -4,7 +4,7 @@ use std::iter;
|
|||||||
|
|
||||||
use fj_math::{Circle, LineSegment, Point, Scalar, Sign};
|
use fj_math::{Circle, LineSegment, Point, Scalar, Sign};
|
||||||
|
|
||||||
use crate::geometry::{traits::GenPolyline, CurveBoundary, Tolerance};
|
use crate::geometry::{CurveBoundary, Tolerance, traits::GenPolyline};
|
||||||
|
|
||||||
impl<const D: usize> GenPolyline<D> for Circle<D> {
|
impl<const D: usize> GenPolyline<D> for Circle<D> {
|
||||||
fn origin(&self) -> Point<D> {
|
fn origin(&self) -> Point<D> {
|
||||||
@ -137,7 +137,7 @@ mod tests {
|
|||||||
use fj_math::{Point, Scalar};
|
use fj_math::{Point, Scalar};
|
||||||
|
|
||||||
use crate::geometry::{
|
use crate::geometry::{
|
||||||
curves::circle::Circle, traits::GenPolyline, CurveBoundary, Tolerance,
|
CurveBoundary, Tolerance, curves::circle::Circle, traits::GenPolyline,
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::CircleApproxParams;
|
use super::CircleApproxParams;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
use fj_math::{Line, LineSegment, Point};
|
use fj_math::{Line, LineSegment, Point};
|
||||||
|
|
||||||
use crate::geometry::{traits::GenPolyline, CurveBoundary, Tolerance};
|
use crate::geometry::{CurveBoundary, Tolerance, traits::GenPolyline};
|
||||||
|
|
||||||
impl<const D: usize> GenPolyline<D> for Line<D> {
|
impl<const D: usize> GenPolyline<D> for Line<D> {
|
||||||
fn origin(&self) -> Point<D> {
|
fn origin(&self) -> Point<D> {
|
||||||
|
@ -8,11 +8,11 @@ use crate::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
|
Path, VertexGeom,
|
||||||
repr::{polyline::Polyline, tri_mesh::TriMesh},
|
repr::{polyline::Polyline, tri_mesh::TriMesh},
|
||||||
surfaces::SweptCurve,
|
surfaces::SweptCurve,
|
||||||
traits::{GenPolyline, GenTriMesh},
|
traits::{GenPolyline, GenTriMesh},
|
||||||
vertex::LocalVertexGeom,
|
vertex::LocalVertexGeom,
|
||||||
Path, VertexGeom,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Geometric data that is associated with topological objects
|
/// Geometric data that is associated with topological objects
|
||||||
|
@ -4,7 +4,7 @@ use std::iter;
|
|||||||
|
|
||||||
use fj_math::{Aabb, LineSegment, Point};
|
use fj_math::{Aabb, LineSegment, Point};
|
||||||
|
|
||||||
use crate::geometry::{traits::GenPolyline, CurveBoundary, Tolerance};
|
use crate::geometry::{CurveBoundary, Tolerance, traits::GenPolyline};
|
||||||
|
|
||||||
/// # A polyline, the uniform representation of curve geometry
|
/// # A polyline, the uniform representation of curve geometry
|
||||||
///
|
///
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
use fj_math::{Point, Vector};
|
use fj_math::{Point, Vector};
|
||||||
|
|
||||||
use crate::geometry::{traits::GenTriMesh, Geometry, Tolerance};
|
use crate::geometry::{Geometry, Tolerance, traits::GenTriMesh};
|
||||||
|
|
||||||
/// # A triangle mesh, the uniform intermediate representation of a surface
|
/// # A triangle mesh, the uniform intermediate representation of a surface
|
||||||
///
|
///
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use fj_math::{Aabb, Point, Scalar, Triangle, Vector};
|
use fj_math::{Aabb, Point, Scalar, Triangle, Vector};
|
||||||
|
|
||||||
use crate::geometry::{
|
use crate::geometry::{
|
||||||
traits::{GenPolyline, GenTriMesh},
|
|
||||||
Geometry, Path, Tolerance,
|
Geometry, Path, Tolerance,
|
||||||
|
traits::{GenPolyline, GenTriMesh},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// # A surface that is a curve, swept along a path
|
/// # A surface that is a curve, swept along a path
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use fj_math::{Aabb, Point, Scalar, Transform, Triangle};
|
use fj_math::{Aabb, Point, Scalar, Transform, Triangle};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
geometry::{traits::GenTriMesh, Geometry, Tolerance},
|
geometry::{Geometry, Tolerance, traits::GenTriMesh},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::Surface,
|
topology::Surface,
|
||||||
};
|
};
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
geometry::{
|
geometry::{
|
||||||
surfaces::SweptCurve, CurveGeom2, Geometry, LocalCurveGeom,
|
CurveGeom2, Geometry, LocalCurveGeom, LocalVertexGeom, SurfaceGeom,
|
||||||
LocalVertexGeom, SurfaceGeom,
|
surfaces::SweptCurve,
|
||||||
},
|
},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Curve, Surface, Vertex},
|
topology::{Curve, Surface, Vertex},
|
||||||
|
@ -6,7 +6,7 @@ use crate::{
|
|||||||
validation::Validation,
|
validation::Validation,
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{validation::ValidateObject, Command, Event, Layer};
|
use super::{Command, Event, Layer, validation::ValidateObject};
|
||||||
|
|
||||||
impl Layer<Topology> {
|
impl Layer<Topology> {
|
||||||
/// Insert an object into the stores
|
/// Insert an object into the stores
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::Path,
|
geometry::Path,
|
||||||
operations::{geometry::UpdateCurveGeometry, insert::Insert},
|
operations::{geometry::UpdateCurveGeometry, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Curve, Surface},
|
topology::{Curve, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Build a [`Curve`]
|
/// Build a [`Curve`]
|
||||||
|
@ -2,11 +2,11 @@ use fj_math::{Point, Scalar, Vector};
|
|||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::{CurveBoundary, LocalVertexGeom},
|
geometry::{CurveBoundary, LocalVertexGeom},
|
||||||
operations::build::BuildHalfEdge,
|
operations::build::BuildHalfEdge,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, HalfEdge, Surface},
|
topology::{Cycle, HalfEdge, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Build a [`Cycle`]
|
/// Build a [`Cycle`]
|
||||||
|
@ -4,13 +4,13 @@ use fj_interop::ext::ArrayExt;
|
|||||||
use fj_math::{Point, Scalar};
|
use fj_math::{Point, Scalar};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{
|
operations::{
|
||||||
build::{BuildCycle, BuildRegion, BuildSurface},
|
build::{BuildCycle, BuildRegion, BuildSurface},
|
||||||
insert::{Insert, IsInserted, IsInsertedNo},
|
insert::{Insert, IsInserted, IsInsertedNo},
|
||||||
},
|
},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Face, HalfEdge, Region, Surface, Vertex},
|
topology::{Cycle, Face, HalfEdge, Region, Surface, Vertex},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Build a [`Face`]
|
/// Build a [`Face`]
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
use fj_math::{Arc, Point, Scalar};
|
use fj_math::{Arc, Point, Scalar};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::{CurveBoundary, LocalCurveGeom, Path},
|
geometry::{CurveBoundary, LocalCurveGeom, Path},
|
||||||
operations::{geometry::UpdateCurveGeometry, insert::Insert},
|
operations::{geometry::UpdateCurveGeometry, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Curve, HalfEdge, Surface, Vertex},
|
topology::{Curve, HalfEdge, Surface, Vertex},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Build a [`HalfEdge`]
|
/// Build a [`HalfEdge`]
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
use fj_math::{Point, Scalar};
|
use fj_math::{Point, Scalar};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{build::BuildCycle, insert::Insert},
|
operations::{build::BuildCycle, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Region, Surface},
|
topology::{Cycle, Region, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Build a [`Region`]
|
/// Build a [`Region`]
|
||||||
|
@ -4,6 +4,7 @@ use fj_interop::ext::ArrayExt;
|
|||||||
use fj_math::Point;
|
use fj_math::Point;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::{CurveBoundary, LocalVertexGeom},
|
geometry::{CurveBoundary, LocalVertexGeom},
|
||||||
operations::{
|
operations::{
|
||||||
build::{BuildFace, BuildHalfEdge, BuildSurface, Polygon},
|
build::{BuildFace, BuildHalfEdge, BuildSurface, Polygon},
|
||||||
@ -16,7 +17,6 @@ use crate::{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
topology::{Curve, Face, HalfEdge, Shell, Surface, Vertex},
|
topology::{Curve, Face, HalfEdge, Shell, Surface, Vertex},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Build a [`Shell`]
|
/// Build a [`Shell`]
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
use fj_math::{Point, Scalar};
|
use fj_math::{Point, Scalar};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::update::UpdateSketch,
|
operations::update::UpdateSketch,
|
||||||
topology::{Region, Sketch, Topology},
|
topology::{Region, Sketch, Topology},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::BuildRegion;
|
use super::BuildRegion;
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
use fj_math::Point;
|
use fj_math::Point;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{
|
operations::{
|
||||||
build::{BuildShell, TetrahedronShell},
|
build::{BuildShell, TetrahedronShell},
|
||||||
insert::{Insert, IsInsertedYes},
|
insert::{Insert, IsInsertedYes},
|
||||||
update::UpdateSolid,
|
update::UpdateSolid,
|
||||||
},
|
},
|
||||||
topology::{Shell, Solid},
|
topology::{Shell, Solid},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Build a [`Solid`]
|
/// Build a [`Solid`]
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
use fj_math::{Point, Scalar, Vector};
|
use fj_math::{Point, Scalar, Vector};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::{
|
geometry::{
|
||||||
repr::tri_mesh::TriMesh, surfaces::SweptCurve, Path, SurfaceGeom,
|
Path, SurfaceGeom, repr::tri_mesh::TriMesh, surfaces::SweptCurve,
|
||||||
},
|
},
|
||||||
operations::insert::Insert,
|
operations::insert::Insert,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::Surface,
|
topology::Surface,
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Build a [`Surface`]
|
/// Build a [`Surface`]
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
//! See [`DeriveFrom`].
|
//! See [`DeriveFrom`].
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{AnyObject, Stored},
|
topology::{AnyObject, Stored},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Mark a store object as derived from another
|
/// Mark a store object as derived from another
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
use fj_math::{Point, Scalar, Vector};
|
use fj_math::{Point, Scalar, Vector};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::repr::tri_mesh::convert_point_surface_to_global,
|
geometry::repr::tri_mesh::convert_point_surface_to_global,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Face, Region, Shell},
|
topology::{Cycle, Face, Region, Shell},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::build::{Polygon, TetrahedronShell},
|
operations::build::{Polygon, TetrahedronShell},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{
|
topology::{
|
||||||
Curve, Cycle, Face, HalfEdge, Region, Shell, Sketch, Solid, Surface,
|
Curve, Cycle, Face, HalfEdge, Region, Shell, Sketch, Solid, Surface,
|
||||||
Vertex,
|
Vertex,
|
||||||
},
|
},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{IsInsertedNo, IsInsertedYes};
|
use super::{IsInsertedNo, IsInsertedYes};
|
||||||
|
@ -3,6 +3,7 @@ use std::ops::RangeInclusive;
|
|||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::LocalCurveGeom,
|
geometry::LocalCurveGeom,
|
||||||
operations::{
|
operations::{
|
||||||
build::BuildHalfEdge,
|
build::BuildHalfEdge,
|
||||||
@ -11,7 +12,6 @@ use crate::{
|
|||||||
},
|
},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, HalfEdge, Surface},
|
topology::{Cycle, HalfEdge, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Join a [`Cycle`] to another
|
/// Join a [`Cycle`] to another
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
//! See [`Merge`], which is currently the only trait in this module, for more
|
//! See [`Merge`], which is currently the only trait in this module, for more
|
||||||
//! information.
|
//! information.
|
||||||
|
|
||||||
use crate::{topology::Solid, Core};
|
use crate::{Core, topology::Solid};
|
||||||
|
|
||||||
use super::update::UpdateSolid;
|
use super::update::UpdateSolid;
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
use fj_interop::Color;
|
use fj_interop::Color;
|
||||||
|
|
||||||
use crate::{storage::Handle, topology::Region, Core};
|
use crate::{Core, storage::Handle, topology::Region};
|
||||||
|
|
||||||
/// Get the color of an object
|
/// Get the color of an object
|
||||||
pub trait GetColor {
|
pub trait GetColor {
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert, update::UpdateHalfEdge},
|
operations::{derive::DeriveFrom, insert::Insert, update::UpdateHalfEdge},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{
|
topology::{
|
||||||
Curve, Cycle, Face, HalfEdge, IsObject, Region, Shell, Sketch, Solid,
|
Curve, Cycle, Face, HalfEdge, IsObject, Region, Shell, Sketch, Solid,
|
||||||
},
|
},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::ReplaceOutput;
|
use super::ReplaceOutput;
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Face, HalfEdge, IsObject, Region, Shell, Sketch, Solid},
|
topology::{Cycle, Face, HalfEdge, IsObject, Region, Shell, Sketch, Solid},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::ReplaceOutput;
|
use super::ReplaceOutput;
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert, update::UpdateHalfEdge},
|
operations::{derive::DeriveFrom, insert::Insert, update::UpdateHalfEdge},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{
|
topology::{
|
||||||
Cycle, Face, HalfEdge, IsObject, Region, Shell, Sketch, Solid, Vertex,
|
Cycle, Face, HalfEdge, IsObject, Region, Shell, Sketch, Solid, Vertex,
|
||||||
},
|
},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::ReplaceOutput;
|
use super::ReplaceOutput;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Curve, Surface},
|
topology::{Curve, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::ReverseCurveCoordinateSystems;
|
use super::ReverseCurveCoordinateSystems;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
topology::{Cycle, HalfEdge},
|
topology::{Cycle, HalfEdge},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::Reverse;
|
use super::Reverse;
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
use std::borrow::Borrow;
|
use std::borrow::Borrow;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{
|
operations::{
|
||||||
build::Polygon,
|
build::Polygon,
|
||||||
derive::DeriveFrom,
|
derive::DeriveFrom,
|
||||||
insert::{Insert, IsInsertedNo, IsInsertedYes},
|
insert::{Insert, IsInsertedNo, IsInsertedYes},
|
||||||
},
|
},
|
||||||
topology::Face,
|
topology::Face,
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::Reverse;
|
use super::Reverse;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{HalfEdge, Surface, Vertex},
|
topology::{HalfEdge, Surface, Vertex},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::ReverseCurveCoordinateSystems;
|
use super::ReverseCurveCoordinateSystems;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
topology::Region,
|
topology::Region,
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::Reverse;
|
use super::Reverse;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
use fj_math::Point;
|
use fj_math::Point;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{
|
operations::{
|
||||||
insert::Insert, replace::ReplaceHalfEdge, split::SplitHalfEdge,
|
insert::Insert, replace::ReplaceHalfEdge, split::SplitHalfEdge,
|
||||||
update::UpdateHalfEdge,
|
update::UpdateHalfEdge,
|
||||||
@ -8,7 +9,6 @@ use crate::{
|
|||||||
queries::{CycleOfHalfEdge, SiblingOfHalfEdge},
|
queries::{CycleOfHalfEdge, SiblingOfHalfEdge},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{HalfEdge, Shell},
|
topology::{HalfEdge, Shell},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Split a pair of [`HalfEdge`]s into two
|
/// Split a pair of [`HalfEdge`]s into two
|
||||||
|
@ -3,6 +3,7 @@ use fj_math::Point;
|
|||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::LocalVertexGeom,
|
geometry::LocalVertexGeom,
|
||||||
operations::{
|
operations::{
|
||||||
build::{BuildCycle, BuildHalfEdge},
|
build::{BuildCycle, BuildHalfEdge},
|
||||||
@ -15,7 +16,6 @@ use crate::{
|
|||||||
},
|
},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Face, HalfEdge, Shell},
|
topology::{Cycle, Face, HalfEdge, Shell},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Split a face into two
|
/// Split a face into two
|
||||||
@ -248,13 +248,13 @@ mod tests {
|
|||||||
use fj_interop::Color;
|
use fj_interop::Color;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{
|
operations::{
|
||||||
build::BuildShell,
|
build::BuildShell,
|
||||||
presentation::{GetColor, SetColor},
|
presentation::{GetColor, SetColor},
|
||||||
split::SplitFace,
|
split::SplitFace,
|
||||||
},
|
},
|
||||||
topology::Shell,
|
topology::Shell,
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
use fj_math::Point;
|
use fj_math::Point;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::LocalVertexGeom,
|
geometry::LocalVertexGeom,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, HalfEdge, Vertex},
|
topology::{Cycle, HalfEdge, Vertex},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Split a [`HalfEdge`] into two
|
/// Split a [`HalfEdge`] into two
|
||||||
|
@ -3,13 +3,13 @@ use fj_math::Vector;
|
|||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::LocalVertexGeom,
|
geometry::LocalVertexGeom,
|
||||||
operations::{
|
operations::{
|
||||||
build::BuildCycle, join::JoinCycle, sweep::half_edge::SweepHalfEdge,
|
build::BuildCycle, join::JoinCycle, sweep::half_edge::SweepHalfEdge,
|
||||||
},
|
},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Face, Surface},
|
topology::{Cycle, Face, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::SweepCache;
|
use super::SweepCache;
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
use fj_math::Vector;
|
use fj_math::Vector;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{insert::Insert, presentation::GetColor},
|
operations::{insert::Insert, presentation::GetColor},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Face, Shell},
|
topology::{Face, Shell},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{SweepCache, SweepRegion};
|
use super::{SweepCache, SweepRegion};
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
use fj_interop::{ext::ArrayExt, Color};
|
use fj_interop::{Color, ext::ArrayExt};
|
||||||
use fj_math::{Point, Scalar, Vector};
|
use fj_math::{Point, Scalar, Vector};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::{CurveBoundary, LocalVertexGeom},
|
geometry::{CurveBoundary, LocalVertexGeom},
|
||||||
operations::{
|
operations::{
|
||||||
build::{BuildCycle, BuildHalfEdge},
|
build::{BuildCycle, BuildHalfEdge},
|
||||||
@ -12,10 +13,9 @@ use crate::{
|
|||||||
},
|
},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Curve, Cycle, Face, HalfEdge, Region, Surface, Vertex},
|
topology::{Curve, Cycle, Face, HalfEdge, Region, Surface, Vertex},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{vertex::SweepVertex, SweepCache, SweepSurfacePath};
|
use super::{SweepCache, SweepSurfacePath, vertex::SweepVertex};
|
||||||
|
|
||||||
/// # Sweep a [`HalfEdge`]
|
/// # Sweep a [`HalfEdge`]
|
||||||
///
|
///
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
use fj_math::{Circle, Line, Vector};
|
use fj_math::{Circle, Line, Vector};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::{
|
geometry::{
|
||||||
|
Path,
|
||||||
repr::tri_mesh::{
|
repr::tri_mesh::{
|
||||||
convert_point_surface_to_global, convert_vector_surface_to_global,
|
convert_point_surface_to_global, convert_vector_surface_to_global,
|
||||||
},
|
},
|
||||||
surfaces::SweptCurve,
|
surfaces::SweptCurve,
|
||||||
Path,
|
|
||||||
},
|
},
|
||||||
operations::build::BuildSurface,
|
operations::build::BuildSurface,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::Surface,
|
topology::Surface,
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// # Sweep a [`Path`]
|
/// # Sweep a [`Path`]
|
||||||
|
@ -2,12 +2,12 @@ use fj_interop::Color;
|
|||||||
use fj_math::Vector;
|
use fj_math::Vector;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{
|
operations::{
|
||||||
insert::Insert, reverse::Reverse, transform::TransformObject,
|
insert::Insert, reverse::Reverse, transform::TransformObject,
|
||||||
},
|
},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Face, Region, Surface},
|
topology::{Cycle, Face, Region, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{SweepCache, SweepCycle};
|
use super::{SweepCache, SweepCycle};
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
use fj_math::Vector;
|
use fj_math::Vector;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{
|
operations::{
|
||||||
derive::DeriveFrom,
|
derive::DeriveFrom,
|
||||||
insert::Insert,
|
insert::Insert,
|
||||||
@ -11,7 +12,6 @@ use crate::{
|
|||||||
},
|
},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Face, Region, Shell},
|
topology::{Face, Region, Shell},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// # Sweep a [`Face`] that is part of a [`Shell`]
|
/// # Sweep a [`Face`] that is part of a [`Shell`]
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
use fj_math::Vector;
|
use fj_math::Vector;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::insert::Insert,
|
operations::insert::Insert,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Face, Sketch, Solid, Surface},
|
topology::{Face, Sketch, Solid, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{face::SweepFace, SweepCache};
|
use super::{SweepCache, face::SweepFace};
|
||||||
|
|
||||||
/// # Sweep a [`Sketch`]
|
/// # Sweep a [`Sketch`]
|
||||||
///
|
///
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::insert::Insert,
|
operations::insert::Insert,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Curve, Vertex},
|
topology::{Curve, Vertex},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::SweepCache;
|
use super::SweepCache;
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
use fj_math::Transform;
|
use fj_math::Transform;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::insert::Insert,
|
operations::insert::Insert,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Curve, Surface},
|
topology::{Curve, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{TransformCache, TransformObject};
|
use super::{TransformCache, TransformObject};
|
||||||
|
@ -2,10 +2,10 @@ use fj_math::Transform;
|
|||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::insert::Insert,
|
operations::insert::Insert,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Surface},
|
topology::{Cycle, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{TransformCache, TransformObject};
|
use super::{TransformCache, TransformObject};
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use fj_math::Transform;
|
use fj_math::Transform;
|
||||||
|
|
||||||
use crate::{topology::Face, Core};
|
use crate::{Core, topology::Face};
|
||||||
|
|
||||||
use super::{TransformCache, TransformObject};
|
use super::{TransformCache, TransformObject};
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
use fj_math::Transform;
|
use fj_math::Transform;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::insert::Insert,
|
operations::insert::Insert,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{HalfEdge, Surface},
|
topology::{HalfEdge, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{TransformCache, TransformObject};
|
use super::{TransformCache, TransformObject};
|
||||||
|
@ -10,16 +10,16 @@ mod solid;
|
|||||||
mod surface;
|
mod surface;
|
||||||
mod vertex;
|
mod vertex;
|
||||||
|
|
||||||
use std::collections::{btree_map, BTreeMap};
|
use std::collections::{BTreeMap, btree_map};
|
||||||
|
|
||||||
use fj_math::{Transform, Vector};
|
use fj_math::{Transform, Vector};
|
||||||
use type_map::TypeMap;
|
use type_map::TypeMap;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::insert::Insert,
|
operations::insert::Insert,
|
||||||
storage::{Handle, ObjectId},
|
storage::{Handle, ObjectId},
|
||||||
topology::{AnyObject, Stored},
|
topology::{AnyObject, Stored},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::derive::DeriveFrom;
|
use super::derive::DeriveFrom;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::insert::Insert,
|
operations::insert::Insert,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Region, Surface},
|
topology::{Region, Surface},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::TransformObject;
|
use super::TransformObject;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use fj_math::Transform;
|
use fj_math::Transform;
|
||||||
|
|
||||||
use crate::{topology::Shell, Core};
|
use crate::{Core, topology::Shell};
|
||||||
|
|
||||||
use super::{TransformCache, TransformObject};
|
use super::{TransformCache, TransformObject};
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use fj_math::Transform;
|
use fj_math::Transform;
|
||||||
|
|
||||||
use crate::{topology::Solid, Core};
|
use crate::{Core, topology::Solid};
|
||||||
|
|
||||||
use super::{TransformCache, TransformObject};
|
use super::{TransformCache, TransformObject};
|
||||||
|
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
use fj_math::Transform;
|
use fj_math::Transform;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::{
|
geometry::{
|
||||||
|
SurfaceGeom,
|
||||||
repr::tri_mesh::TriMesh,
|
repr::tri_mesh::TriMesh,
|
||||||
surfaces::{SweptCurve, TransformedSurface},
|
surfaces::{SweptCurve, TransformedSurface},
|
||||||
SurfaceGeom,
|
|
||||||
},
|
},
|
||||||
operations::insert::Insert,
|
operations::insert::Insert,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::Surface,
|
topology::Surface,
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{TransformCache, TransformObject};
|
use super::{TransformCache, TransformObject};
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use fj_math::Transform;
|
use fj_math::Transform;
|
||||||
|
|
||||||
use crate::{topology::Vertex, Core};
|
use crate::{Core, topology::Vertex};
|
||||||
|
|
||||||
use super::{TransformCache, TransformObject};
|
use super::{TransformCache, TransformObject};
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, HalfEdge},
|
topology::{Cycle, HalfEdge},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Update a [`Cycle`]
|
/// Update a [`Cycle`]
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{build::Polygon, derive::DeriveFrom, insert::Insert},
|
operations::{build::Polygon, derive::DeriveFrom, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Face, Region},
|
topology::{Face, Region},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Update a [`Face`]
|
/// Update a [`Face`]
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Curve, HalfEdge, Vertex},
|
topology::{Curve, HalfEdge, Vertex},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Update a [`HalfEdge`]
|
/// Update a [`HalfEdge`]
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Region},
|
topology::{Cycle, Region},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Update a [`Region`]
|
/// Update a [`Region`]
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Face, Shell},
|
topology::{Face, Shell},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Update a [`Shell`]
|
/// Update a [`Shell`]
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Region, Sketch},
|
topology::{Region, Sketch},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Update a [`Sketch`]
|
/// Update a [`Sketch`]
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{derive::DeriveFrom, insert::Insert},
|
operations::{derive::DeriveFrom, insert::Insert},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Shell, Solid},
|
topology::{Shell, Solid},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Update a [`Solid`]
|
/// Update a [`Solid`]
|
||||||
|
@ -26,8 +26,8 @@ use std::{marker::PhantomData, sync::Arc};
|
|||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
blocks::{Blocks, Index},
|
|
||||||
Handle,
|
Handle,
|
||||||
|
blocks::{Blocks, Index},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Append-only object storage
|
/// Append-only object storage
|
||||||
|
@ -272,7 +272,7 @@ pub type ObjectSetIntoIter<T> = vec::IntoIter<Handle<T>>;
|
|||||||
mod tests {
|
mod tests {
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
|
|
||||||
use crate::{operations::insert::Insert, topology::Cycle, Core};
|
use crate::{Core, operations::insert::Insert, topology::Cycle};
|
||||||
|
|
||||||
use super::ObjectSet;
|
use super::ObjectSet;
|
||||||
|
|
||||||
|
@ -2,11 +2,11 @@ use crate::{
|
|||||||
geometry::Geometry,
|
geometry::Geometry,
|
||||||
topology::Face,
|
topology::Face,
|
||||||
validation::{
|
validation::{
|
||||||
|
ValidationCheck, ValidationConfig, ValidationError,
|
||||||
checks::{
|
checks::{
|
||||||
AdjacentHalfEdgesNotConnected, FaceHasNoBoundary,
|
AdjacentHalfEdgesNotConnected, FaceHasNoBoundary,
|
||||||
InteriorCycleHasInvalidWinding,
|
InteriorCycleHasInvalidWinding,
|
||||||
},
|
},
|
||||||
ValidationCheck, ValidationConfig, ValidationError,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@ use crate::{
|
|||||||
geometry::Geometry,
|
geometry::Geometry,
|
||||||
topology::Shell,
|
topology::Shell,
|
||||||
validation::{
|
validation::{
|
||||||
checks::{CoincidentHalfEdgesAreNotSiblings, HalfEdgeHasNoSibling},
|
|
||||||
ValidationCheck,
|
ValidationCheck,
|
||||||
|
checks::{CoincidentHalfEdgesAreNotSiblings, HalfEdgeHasNoSibling},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -5,8 +5,8 @@ use crate::{
|
|||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, HalfEdge, Region, Sketch},
|
topology::{Cycle, HalfEdge, Region, Sketch},
|
||||||
validation::{
|
validation::{
|
||||||
checks::{AdjacentHalfEdgesNotConnected, MultipleReferencesToObject},
|
|
||||||
ValidationCheck,
|
ValidationCheck,
|
||||||
|
checks::{AdjacentHalfEdgesNotConnected, MultipleReferencesToObject},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ impl SketchValidationError {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::{
|
use crate::{
|
||||||
assert_contains_err,
|
Core, assert_contains_err,
|
||||||
operations::{
|
operations::{
|
||||||
build::{BuildCycle, BuildRegion, BuildSketch},
|
build::{BuildCycle, BuildRegion, BuildSketch},
|
||||||
insert::Insert,
|
insert::Insert,
|
||||||
@ -123,7 +123,6 @@ mod tests {
|
|||||||
},
|
},
|
||||||
topology::{Cycle, Region, Sketch},
|
topology::{Cycle, Region, Sketch},
|
||||||
validate::{SketchValidationError, Validate, ValidationError},
|
validate::{SketchValidationError, Validate, ValidationError},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
use std::iter::repeat;
|
use std::iter::repeat;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
geometry::{repr::tri_mesh::convert_point_surface_to_global, Geometry},
|
geometry::{Geometry, repr::tri_mesh::convert_point_surface_to_global},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Face, HalfEdge, Region, Shell, Solid, Vertex},
|
topology::{Cycle, Face, HalfEdge, Region, Shell, Solid, Vertex},
|
||||||
validation::{checks::MultipleReferencesToObject, ValidationCheck},
|
validation::{ValidationCheck, checks::MultipleReferencesToObject},
|
||||||
};
|
};
|
||||||
use fj_math::Point;
|
use fj_math::Point;
|
||||||
|
|
||||||
|
@ -4,8 +4,8 @@ use fj_math::{Point, Scalar};
|
|||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
geometry::{
|
geometry::{
|
||||||
repr::tri_mesh::convert_point_surface_to_global, CurveBoundary,
|
CurveBoundary, Geometry, Tolerance,
|
||||||
Geometry, Tolerance,
|
repr::tri_mesh::convert_point_surface_to_global,
|
||||||
},
|
},
|
||||||
queries::{
|
queries::{
|
||||||
AllHalfEdgesWithSurface, BoundingVerticesOfHalfEdge, CycleOfHalfEdge,
|
AllHalfEdgesWithSurface, BoundingVerticesOfHalfEdge, CycleOfHalfEdge,
|
||||||
@ -269,6 +269,7 @@ fn distances(
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{
|
operations::{
|
||||||
build::BuildShell,
|
build::BuildShell,
|
||||||
geometry::UpdateCurveGeometry,
|
geometry::UpdateCurveGeometry,
|
||||||
@ -280,9 +281,8 @@ mod tests {
|
|||||||
},
|
},
|
||||||
topology::{Curve, Shell},
|
topology::{Curve, Shell},
|
||||||
validation::{
|
validation::{
|
||||||
checks::CoincidentHalfEdgesAreNotSiblings, ValidationCheck,
|
ValidationCheck, checks::CoincidentHalfEdgesAreNotSiblings,
|
||||||
},
|
},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -35,13 +35,13 @@ impl ValidationCheck<Face> for FaceHasNoBoundary {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{
|
operations::{
|
||||||
build::{BuildCycle, BuildFace},
|
build::{BuildCycle, BuildFace},
|
||||||
update::{UpdateFace, UpdateRegion},
|
update::{UpdateFace, UpdateRegion},
|
||||||
},
|
},
|
||||||
topology::{Cycle, Face},
|
topology::{Cycle, Face},
|
||||||
validation::{checks::FaceHasNoBoundary, ValidationCheck},
|
validation::{ValidationCheck, checks::FaceHasNoBoundary},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -72,6 +72,7 @@ impl ValidationCheck<Face> for InteriorCycleHasInvalidWinding {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{
|
operations::{
|
||||||
build::{BuildCycle, BuildFace},
|
build::{BuildCycle, BuildFace},
|
||||||
derive::DeriveFrom,
|
derive::DeriveFrom,
|
||||||
@ -80,8 +81,7 @@ mod tests {
|
|||||||
update::{UpdateFace, UpdateRegion},
|
update::{UpdateFace, UpdateRegion},
|
||||||
},
|
},
|
||||||
topology::{Cycle, Face, Region},
|
topology::{Cycle, Face, Region},
|
||||||
validation::{checks::InteriorCycleHasInvalidWinding, ValidationCheck},
|
validation::{ValidationCheck, checks::InteriorCycleHasInvalidWinding},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -4,7 +4,7 @@ use crate::{
|
|||||||
geometry::Geometry,
|
geometry::Geometry,
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
topology::{Cycle, Face, HalfEdge, Region, Sketch, Surface},
|
topology::{Cycle, Face, HalfEdge, Region, Sketch, Surface},
|
||||||
validation::{validation_check::ValidationCheck, ValidationConfig},
|
validation::{ValidationConfig, validation_check::ValidationCheck},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// # Adjacent [`HalfEdge`]s in [`Cycle`] are not connected
|
/// # Adjacent [`HalfEdge`]s in [`Cycle`] are not connected
|
||||||
@ -156,6 +156,7 @@ fn check_cycle<'r>(
|
|||||||
mod tests {
|
mod tests {
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
geometry::LocalVertexGeom,
|
geometry::LocalVertexGeom,
|
||||||
operations::{
|
operations::{
|
||||||
build::{BuildFace, BuildHalfEdge},
|
build::{BuildFace, BuildHalfEdge},
|
||||||
@ -163,7 +164,6 @@ mod tests {
|
|||||||
},
|
},
|
||||||
topology::{Face, HalfEdge},
|
topology::{Face, HalfEdge},
|
||||||
validation::ValidationCheck,
|
validation::ValidationCheck,
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::AdjacentHalfEdgesNotConnected;
|
use super::AdjacentHalfEdgesNotConnected;
|
||||||
|
@ -73,10 +73,10 @@ impl ValidationCheck<Shell> for HalfEdgeHasNoSibling {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{build::BuildShell, update::UpdateShell},
|
operations::{build::BuildShell, update::UpdateShell},
|
||||||
topology::Shell,
|
topology::Shell,
|
||||||
validation::{checks::HalfEdgeHasNoSibling, ValidationCheck},
|
validation::{ValidationCheck, checks::HalfEdgeHasNoSibling},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -93,11 +93,13 @@ mod tests {
|
|||||||
)?;
|
)?;
|
||||||
|
|
||||||
let invalid = valid.shell.remove_face(&valid.abc.face);
|
let invalid = valid.shell.remove_face(&valid.abc.face);
|
||||||
assert!(HalfEdgeHasNoSibling::check_and_return_first_error(
|
assert!(
|
||||||
&invalid,
|
HalfEdgeHasNoSibling::check_and_return_first_error(
|
||||||
&core.layers.geometry,
|
&invalid,
|
||||||
)
|
&core.layers.geometry,
|
||||||
.is_err());
|
)
|
||||||
|
.is_err()
|
||||||
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -195,6 +195,7 @@ impl<T, U> ReferenceCounter<T, U> {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::{
|
use crate::{
|
||||||
|
Core,
|
||||||
operations::{
|
operations::{
|
||||||
build::{BuildShell, BuildSketch, BuildSolid},
|
build::{BuildShell, BuildSketch, BuildSolid},
|
||||||
update::{
|
update::{
|
||||||
@ -203,8 +204,7 @@ mod tests {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
topology::{Cycle, Face, HalfEdge, Region, Shell, Sketch, Solid},
|
topology::{Cycle, Face, HalfEdge, Region, Shell, Sketch, Solid},
|
||||||
validation::{checks::MultipleReferencesToObject, ValidationCheck},
|
validation::{ValidationCheck, checks::MultipleReferencesToObject},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -90,7 +90,7 @@ mod tests {
|
|||||||
|
|
||||||
use super::Arc;
|
use super::Arc;
|
||||||
|
|
||||||
use approx::{assert_abs_diff_eq, AbsDiffEq};
|
use approx::{AbsDiffEq, assert_abs_diff_eq};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn arc_construction() {
|
fn arc_construction() {
|
||||||
|
@ -50,7 +50,7 @@ pub use self::{
|
|||||||
arc::Arc,
|
arc::Arc,
|
||||||
bivector::Bivector,
|
bivector::Bivector,
|
||||||
circle::Circle,
|
circle::Circle,
|
||||||
coordinates::{Uv, Xyz, T},
|
coordinates::{T, Uv, Xyz},
|
||||||
line::Line,
|
line::Line,
|
||||||
line_segment::LineSegment,
|
line_segment::LineSegment,
|
||||||
point::Point,
|
point::Point,
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use std::{fmt, ops};
|
use std::{fmt, ops};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
coordinates::{Uv, Xyz, T},
|
|
||||||
Scalar, Vector,
|
Scalar, Vector,
|
||||||
|
coordinates::{T, Uv, Xyz},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// An n-dimensional point
|
/// An n-dimensional point
|
||||||
|
@ -3,8 +3,8 @@ use std::{fmt, ops};
|
|||||||
use crate::Bivector;
|
use crate::Bivector;
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
coordinates::{Uv, Xyz, T},
|
|
||||||
Scalar,
|
Scalar,
|
||||||
|
coordinates::{T, Uv, Xyz},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// An n-dimensional vector
|
/// An n-dimensional vector
|
||||||
|
@ -2,7 +2,7 @@ use fj_math::Transform;
|
|||||||
use wgpu::util::DeviceExt;
|
use wgpu::util::DeviceExt;
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
model::{self, load_model, DrawModel, Model},
|
model::{self, DrawModel, Model, load_model},
|
||||||
transform,
|
transform,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
use std::mem::size_of;
|
use std::mem::size_of;
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
|
DEPTH_FORMAT, SAMPLE_COUNT,
|
||||||
shaders::{Shader, Shaders},
|
shaders::{Shader, Shaders},
|
||||||
vertices::Vertex,
|
vertices::Vertex,
|
||||||
DEPTH_FORMAT, SAMPLE_COUNT,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
@ -10,10 +10,10 @@ use crate::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
device::Device, draw_config::DrawConfig, drawables::Drawables,
|
DEPTH_FORMAT, DeviceError, SAMPLE_COUNT, device::Device,
|
||||||
geometries::Geometries, navigation_cube::NavigationCubeRenderer,
|
draw_config::DrawConfig, drawables::Drawables, geometries::Geometries,
|
||||||
pipelines::Pipelines, transform::Transform, uniforms::Uniforms,
|
navigation_cube::NavigationCubeRenderer, pipelines::Pipelines,
|
||||||
vertices::Vertices, DeviceError, DEPTH_FORMAT, SAMPLE_COUNT,
|
transform::Transform, uniforms::Uniforms, vertices::Vertices,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Graphics rendering state and target abstraction
|
/// Graphics rendering state and target abstraction
|
||||||
|
@ -18,7 +18,7 @@ mod viewer;
|
|||||||
pub use self::{
|
pub use self::{
|
||||||
graphics::{DeviceError, RendererInitError},
|
graphics::{DeviceError, RendererInitError},
|
||||||
input::InputEvent,
|
input::InputEvent,
|
||||||
input::{CameraTuningConfig, MouseButton, DEFAULT_CAMERA_TUNING_CONFIG},
|
input::{CameraTuningConfig, DEFAULT_CAMERA_TUNING_CONFIG, MouseButton},
|
||||||
screen::{NormalizedScreenPosition, Screen, ScreenSize},
|
screen::{NormalizedScreenPosition, Screen, ScreenSize},
|
||||||
viewer::Viewer,
|
viewer::Viewer,
|
||||||
};
|
};
|
||||||
|
@ -2,10 +2,10 @@ use fj_interop::Model;
|
|||||||
use tracing::warn;
|
use tracing::warn;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
CameraTuningConfig, DEFAULT_CAMERA_TUNING_CONFIG, InputEvent, MouseButton,
|
||||||
|
NormalizedScreenPosition, RendererInitError, Screen, ScreenSize,
|
||||||
camera::{Camera, FocusPoint},
|
camera::{Camera, FocusPoint},
|
||||||
graphics::{DrawConfig, Renderer},
|
graphics::{DrawConfig, Renderer},
|
||||||
CameraTuningConfig, InputEvent, MouseButton, NormalizedScreenPosition,
|
|
||||||
RendererInitError, Screen, ScreenSize, DEFAULT_CAMERA_TUNING_CONFIG,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// The Fornjot model viewer
|
/// The Fornjot model viewer
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use fj_interop::Model;
|
use fj_interop::Model;
|
||||||
use fj_viewer::{
|
use fj_viewer::{
|
||||||
InputEvent, RendererInitError, Screen, ScreenSize, Viewer,
|
DEFAULT_CAMERA_TUNING_CONFIG, InputEvent, RendererInitError, Screen,
|
||||||
DEFAULT_CAMERA_TUNING_CONFIG,
|
ScreenSize, Viewer,
|
||||||
};
|
};
|
||||||
use futures::executor::block_on;
|
use futures::executor::block_on;
|
||||||
use winit::{
|
use winit::{
|
||||||
|
@ -12,6 +12,6 @@ mod display;
|
|||||||
mod window;
|
mod window;
|
||||||
|
|
||||||
pub use self::{
|
pub use self::{
|
||||||
display::{display, Error},
|
display::{Error, display},
|
||||||
window::WindowError,
|
window::WindowError,
|
||||||
};
|
};
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
use std::{error::Error as _, fmt};
|
use std::{error::Error as _, fmt};
|
||||||
|
|
||||||
use fj_core::{
|
use fj_core::{
|
||||||
|
Core,
|
||||||
algorithms::{bounding_volume::BoundingVolume, triangulate::Triangulate},
|
algorithms::{bounding_volume::BoundingVolume, triangulate::Triangulate},
|
||||||
geometry::{InvalidTolerance, Tolerance},
|
geometry::{InvalidTolerance, Tolerance},
|
||||||
validation::{ValidationConfig, ValidationErrors},
|
validation::{ValidationConfig, ValidationErrors},
|
||||||
Core,
|
|
||||||
};
|
};
|
||||||
use fj_interop::Model;
|
use fj_interop::Model;
|
||||||
use fj_math::{Aabb, Point, Scalar};
|
use fj_math::{Aabb, Point, Scalar};
|
||||||
|
Loading…
Reference in New Issue
Block a user