mirror of
https://github.com/hannobraun/Fornjot
synced 2025-02-18 21:28:01 +00:00
Don't use old validation infrastructure in Shape
It doesn't do anything useful anymore, and has been replaced by the new validation infrastructure, which validates automatically on insertion.
This commit is contained in:
parent
635c49035b
commit
ee266a7da2
@ -5,7 +5,7 @@ use fj_kernel::{
|
|||||||
algorithms::reverse::Reverse,
|
algorithms::reverse::Reverse,
|
||||||
iter::ObjectIters,
|
iter::ObjectIters,
|
||||||
objects::{Face, Objects, Sketch},
|
objects::{Face, Objects, Sketch},
|
||||||
validate::{Validate, Validated, ValidationConfig, ValidationError},
|
validate::{ValidationConfig, ValidationError},
|
||||||
};
|
};
|
||||||
use fj_math::Aabb;
|
use fj_math::Aabb;
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ impl Shape for fj::Difference2d {
|
|||||||
config: &ValidationConfig,
|
config: &ValidationConfig,
|
||||||
objects: &Objects,
|
objects: &Objects,
|
||||||
debug_info: &mut DebugInfo,
|
debug_info: &mut DebugInfo,
|
||||||
) -> Result<Validated<Self::Brep>, ValidationError> {
|
) -> Result<Self::Brep, ValidationError> {
|
||||||
// This method assumes that `b` is fully contained within `a`:
|
// This method assumes that `b` is fully contained within `a`:
|
||||||
// https://github.com/hannobraun/Fornjot/issues/92
|
// https://github.com/hannobraun/Fornjot/issues/92
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ impl Shape for fj::Difference2d {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let difference = Sketch::builder(objects).with_faces(faces).build();
|
let difference = Sketch::builder(objects).with_faces(faces).build();
|
||||||
difference.deref().clone().validate_with_config(config)
|
Ok(difference.deref().clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn bounding_volume(&self) -> Aabb<3> {
|
fn bounding_volume(&self) -> Aabb<3> {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use fj_interop::debug::DebugInfo;
|
use fj_interop::debug::DebugInfo;
|
||||||
use fj_kernel::{
|
use fj_kernel::{
|
||||||
objects::{FaceSet, Objects},
|
objects::{FaceSet, Objects},
|
||||||
validate::{Validate, Validated, ValidationConfig, ValidationError},
|
validate::{ValidationConfig, ValidationError},
|
||||||
};
|
};
|
||||||
use fj_math::Aabb;
|
use fj_math::Aabb;
|
||||||
|
|
||||||
@ -15,16 +15,16 @@ impl Shape for fj::Group {
|
|||||||
config: &ValidationConfig,
|
config: &ValidationConfig,
|
||||||
objects: &Objects,
|
objects: &Objects,
|
||||||
debug_info: &mut DebugInfo,
|
debug_info: &mut DebugInfo,
|
||||||
) -> Result<Validated<Self::Brep>, ValidationError> {
|
) -> Result<Self::Brep, ValidationError> {
|
||||||
let mut faces = FaceSet::new();
|
let mut faces = FaceSet::new();
|
||||||
|
|
||||||
let a = self.a.compute_brep(config, objects, debug_info)?;
|
let a = self.a.compute_brep(config, objects, debug_info)?;
|
||||||
let b = self.b.compute_brep(config, objects, debug_info)?;
|
let b = self.b.compute_brep(config, objects, debug_info)?;
|
||||||
|
|
||||||
faces.extend(a.into_inner());
|
faces.extend(a);
|
||||||
faces.extend(b.into_inner());
|
faces.extend(b);
|
||||||
|
|
||||||
faces.validate_with_config(config)
|
Ok(faces)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn bounding_volume(&self) -> Aabb<3> {
|
fn bounding_volume(&self) -> Aabb<3> {
|
||||||
|
@ -27,7 +27,7 @@ mod transform;
|
|||||||
use fj_interop::debug::DebugInfo;
|
use fj_interop::debug::DebugInfo;
|
||||||
use fj_kernel::{
|
use fj_kernel::{
|
||||||
objects::{FaceSet, Objects, Sketch},
|
objects::{FaceSet, Objects, Sketch},
|
||||||
validate::{Validate, Validated, ValidationConfig, ValidationError},
|
validate::{ValidationConfig, ValidationError},
|
||||||
};
|
};
|
||||||
use fj_math::Aabb;
|
use fj_math::Aabb;
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ pub trait Shape {
|
|||||||
config: &ValidationConfig,
|
config: &ValidationConfig,
|
||||||
objects: &Objects,
|
objects: &Objects,
|
||||||
debug_info: &mut DebugInfo,
|
debug_info: &mut DebugInfo,
|
||||||
) -> Result<Validated<Self::Brep>, ValidationError>;
|
) -> Result<Self::Brep, ValidationError>;
|
||||||
|
|
||||||
/// Access the axis-aligned bounding box of a shape
|
/// Access the axis-aligned bounding box of a shape
|
||||||
///
|
///
|
||||||
@ -59,28 +59,24 @@ impl Shape for fj::Shape {
|
|||||||
config: &ValidationConfig,
|
config: &ValidationConfig,
|
||||||
objects: &Objects,
|
objects: &Objects,
|
||||||
debug_info: &mut DebugInfo,
|
debug_info: &mut DebugInfo,
|
||||||
) -> Result<Validated<Self::Brep>, ValidationError> {
|
) -> Result<Self::Brep, ValidationError> {
|
||||||
match self {
|
match self {
|
||||||
Self::Shape2d(shape) => shape
|
Self::Shape2d(shape) => Ok(shape
|
||||||
.compute_brep(config, objects, debug_info)?
|
.compute_brep(config, objects, debug_info)?
|
||||||
.into_inner()
|
|
||||||
.faces()
|
.faces()
|
||||||
.clone()
|
.clone()),
|
||||||
.validate_with_config(config),
|
|
||||||
Self::Group(shape) => {
|
Self::Group(shape) => {
|
||||||
shape.compute_brep(config, objects, debug_info)
|
shape.compute_brep(config, objects, debug_info)
|
||||||
}
|
}
|
||||||
Self::Sweep(shape) => shape
|
Self::Sweep(shape) => Ok(shape
|
||||||
.compute_brep(config, objects, debug_info)?
|
.compute_brep(config, objects, debug_info)?
|
||||||
.into_inner()
|
|
||||||
.shells()
|
.shells()
|
||||||
.map(|shell| shell.faces().clone())
|
.map(|shell| shell.faces().clone())
|
||||||
.reduce(|mut a, b| {
|
.reduce(|mut a, b| {
|
||||||
a.extend(b);
|
a.extend(b);
|
||||||
a
|
a
|
||||||
})
|
})
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()),
|
||||||
.validate_with_config(config),
|
|
||||||
Self::Transform(shape) => {
|
Self::Transform(shape) => {
|
||||||
shape.compute_brep(config, objects, debug_info)
|
shape.compute_brep(config, objects, debug_info)
|
||||||
}
|
}
|
||||||
@ -105,7 +101,7 @@ impl Shape for fj::Shape2d {
|
|||||||
config: &ValidationConfig,
|
config: &ValidationConfig,
|
||||||
objects: &Objects,
|
objects: &Objects,
|
||||||
debug_info: &mut DebugInfo,
|
debug_info: &mut DebugInfo,
|
||||||
) -> Result<Validated<Self::Brep>, ValidationError> {
|
) -> Result<Self::Brep, ValidationError> {
|
||||||
match self {
|
match self {
|
||||||
Self::Difference(shape) => {
|
Self::Difference(shape) => {
|
||||||
shape.compute_brep(config, objects, debug_info)
|
shape.compute_brep(config, objects, debug_info)
|
||||||
|
@ -46,7 +46,7 @@ impl ShapeProcessor {
|
|||||||
let objects = Objects::new();
|
let objects = Objects::new();
|
||||||
let mut debug_info = DebugInfo::new();
|
let mut debug_info = DebugInfo::new();
|
||||||
let shape = shape.compute_brep(&config, &objects, &mut debug_info)?;
|
let shape = shape.compute_brep(&config, &objects, &mut debug_info)?;
|
||||||
let mesh = (&shape.into_inner(), tolerance).triangulate();
|
let mesh = (&shape, tolerance).triangulate();
|
||||||
|
|
||||||
Ok(ProcessedShape {
|
Ok(ProcessedShape {
|
||||||
aabb,
|
aabb,
|
||||||
|
@ -5,7 +5,7 @@ use fj_kernel::{
|
|||||||
builder::HalfEdgeBuilder,
|
builder::HalfEdgeBuilder,
|
||||||
objects::{Cycle, Face, HalfEdge, Objects, Sketch},
|
objects::{Cycle, Face, HalfEdge, Objects, Sketch},
|
||||||
partial::HasPartial,
|
partial::HasPartial,
|
||||||
validate::{Validate, Validated, ValidationConfig, ValidationError},
|
validate::{ValidationConfig, ValidationError},
|
||||||
};
|
};
|
||||||
use fj_math::{Aabb, Point};
|
use fj_math::{Aabb, Point};
|
||||||
|
|
||||||
@ -16,10 +16,10 @@ impl Shape for fj::Sketch {
|
|||||||
|
|
||||||
fn compute_brep(
|
fn compute_brep(
|
||||||
&self,
|
&self,
|
||||||
config: &ValidationConfig,
|
_: &ValidationConfig,
|
||||||
objects: &Objects,
|
objects: &Objects,
|
||||||
_: &mut DebugInfo,
|
_: &mut DebugInfo,
|
||||||
) -> Result<Validated<Self::Brep>, ValidationError> {
|
) -> Result<Self::Brep, ValidationError> {
|
||||||
let surface = objects.surfaces.xy_plane();
|
let surface = objects.surfaces.xy_plane();
|
||||||
|
|
||||||
let face = match self.chain() {
|
let face = match self.chain() {
|
||||||
@ -51,7 +51,7 @@ impl Shape for fj::Sketch {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let sketch = Sketch::builder(objects).with_faces([face]).build();
|
let sketch = Sketch::builder(objects).with_faces([face]).build();
|
||||||
sketch.deref().clone().validate_with_config(config)
|
Ok(sketch.deref().clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn bounding_volume(&self) -> Aabb<3> {
|
fn bounding_volume(&self) -> Aabb<3> {
|
||||||
|
@ -4,7 +4,7 @@ use fj_interop::debug::DebugInfo;
|
|||||||
use fj_kernel::{
|
use fj_kernel::{
|
||||||
algorithms::sweep::Sweep,
|
algorithms::sweep::Sweep,
|
||||||
objects::{Objects, Solid},
|
objects::{Objects, Solid},
|
||||||
validate::{Validate, Validated, ValidationConfig, ValidationError},
|
validate::{ValidationConfig, ValidationError},
|
||||||
};
|
};
|
||||||
use fj_math::{Aabb, Vector};
|
use fj_math::{Aabb, Vector};
|
||||||
|
|
||||||
@ -18,14 +18,14 @@ impl Shape for fj::Sweep {
|
|||||||
config: &ValidationConfig,
|
config: &ValidationConfig,
|
||||||
objects: &Objects,
|
objects: &Objects,
|
||||||
debug_info: &mut DebugInfo,
|
debug_info: &mut DebugInfo,
|
||||||
) -> Result<Validated<Self::Brep>, ValidationError> {
|
) -> Result<Self::Brep, ValidationError> {
|
||||||
let sketch = self.shape().compute_brep(config, objects, debug_info)?;
|
let sketch = self.shape().compute_brep(config, objects, debug_info)?;
|
||||||
let sketch = objects.sketches.insert(sketch.into_inner())?;
|
let sketch = objects.sketches.insert(sketch)?;
|
||||||
|
|
||||||
let path = Vector::from(self.path());
|
let path = Vector::from(self.path());
|
||||||
|
|
||||||
let solid = sketch.sweep(path, objects)?;
|
let solid = sketch.sweep(path, objects)?;
|
||||||
solid.deref().clone().validate_with_config(config)
|
Ok(solid.deref().clone())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn bounding_volume(&self) -> Aabb<3> {
|
fn bounding_volume(&self) -> Aabb<3> {
|
||||||
|
@ -2,7 +2,7 @@ use fj_interop::debug::DebugInfo;
|
|||||||
use fj_kernel::{
|
use fj_kernel::{
|
||||||
algorithms::transform::TransformObject,
|
algorithms::transform::TransformObject,
|
||||||
objects::{FaceSet, Objects},
|
objects::{FaceSet, Objects},
|
||||||
validate::{Validate, Validated, ValidationConfig, ValidationError},
|
validate::{ValidationConfig, ValidationError},
|
||||||
};
|
};
|
||||||
use fj_math::{Aabb, Transform, Vector};
|
use fj_math::{Aabb, Transform, Vector};
|
||||||
|
|
||||||
@ -16,14 +16,13 @@ impl Shape for fj::Transform {
|
|||||||
config: &ValidationConfig,
|
config: &ValidationConfig,
|
||||||
objects: &Objects,
|
objects: &Objects,
|
||||||
debug_info: &mut DebugInfo,
|
debug_info: &mut DebugInfo,
|
||||||
) -> Result<Validated<Self::Brep>, ValidationError> {
|
) -> Result<Self::Brep, ValidationError> {
|
||||||
let faces = self
|
let faces = self
|
||||||
.shape
|
.shape
|
||||||
.compute_brep(config, objects, debug_info)?
|
.compute_brep(config, objects, debug_info)?
|
||||||
.into_inner()
|
|
||||||
.transform(&make_transform(self), objects)?;
|
.transform(&make_transform(self), objects)?;
|
||||||
|
|
||||||
faces.validate_with_config(config)
|
Ok(faces)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn bounding_volume(&self) -> Aabb<3> {
|
fn bounding_volume(&self) -> Aabb<3> {
|
||||||
|
Loading…
Reference in New Issue
Block a user