mirror of
https://github.com/hannobraun/Fornjot
synced 2025-01-12 03:06:59 +00:00
Expect &Geometry
in ValidationCheck::check
This commit is contained in:
parent
5e2a9776e5
commit
ec748fc720
@ -14,10 +14,11 @@ impl Validate for Cycle {
|
|||||||
&self,
|
&self,
|
||||||
config: &ValidationConfig,
|
config: &ValidationConfig,
|
||||||
errors: &mut Vec<ValidationError>,
|
errors: &mut Vec<ValidationError>,
|
||||||
_: &Geometry,
|
geometry: &Geometry,
|
||||||
) {
|
) {
|
||||||
errors.extend(
|
errors.extend(
|
||||||
AdjacentHalfEdgesNotConnected::check(self, config).map(Into::into),
|
AdjacentHalfEdgesNotConnected::check(self, geometry, config)
|
||||||
|
.map(Into::into),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
use fj_math::{Point, Scalar};
|
use fj_math::{Point, Scalar};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
geometry::Geometry,
|
||||||
objects::{Cycle, HalfEdge},
|
objects::{Cycle, HalfEdge},
|
||||||
storage::Handle,
|
storage::Handle,
|
||||||
validation::{validation_check::ValidationCheck, ValidationConfig},
|
validation::{validation_check::ValidationCheck, ValidationConfig},
|
||||||
@ -40,6 +41,7 @@ pub struct AdjacentHalfEdgesNotConnected {
|
|||||||
impl ValidationCheck<Cycle> for AdjacentHalfEdgesNotConnected {
|
impl ValidationCheck<Cycle> for AdjacentHalfEdgesNotConnected {
|
||||||
fn check(
|
fn check(
|
||||||
object: &Cycle,
|
object: &Cycle,
|
||||||
|
_: &Geometry,
|
||||||
config: &ValidationConfig,
|
config: &ValidationConfig,
|
||||||
) -> impl Iterator<Item = Self> {
|
) -> impl Iterator<Item = Self> {
|
||||||
object.half_edges().pairs().filter_map(|(first, second)| {
|
object.half_edges().pairs().filter_map(|(first, second)| {
|
||||||
|
@ -12,6 +12,7 @@ pub trait ValidationCheck<T>: Sized {
|
|||||||
/// Run the validation check on the implementing object
|
/// Run the validation check on the implementing object
|
||||||
fn check(
|
fn check(
|
||||||
object: &T,
|
object: &T,
|
||||||
|
geometry: &Geometry,
|
||||||
config: &ValidationConfig,
|
config: &ValidationConfig,
|
||||||
) -> impl Iterator<Item = Self>;
|
) -> impl Iterator<Item = Self>;
|
||||||
|
|
||||||
@ -21,10 +22,10 @@ pub trait ValidationCheck<T>: Sized {
|
|||||||
/// for use in unit tests), and thus always uses the default configuration.
|
/// for use in unit tests), and thus always uses the default configuration.
|
||||||
fn check_and_return_first_error(
|
fn check_and_return_first_error(
|
||||||
object: &T,
|
object: &T,
|
||||||
_: &Geometry,
|
geometry: &Geometry,
|
||||||
) -> Result<(), Self> {
|
) -> Result<(), Self> {
|
||||||
let config = ValidationConfig::default();
|
let config = ValidationConfig::default();
|
||||||
let mut errors = Self::check(object, &config);
|
let mut errors = Self::check(object, geometry, &config);
|
||||||
|
|
||||||
if let Some(err) = errors.next() {
|
if let Some(err) = errors.next() {
|
||||||
return Err(err);
|
return Err(err);
|
||||||
@ -37,12 +38,12 @@ pub trait ValidationCheck<T>: Sized {
|
|||||||
///
|
///
|
||||||
/// This method is designed for convenience over flexibility (it is intended
|
/// This method is designed for convenience over flexibility (it is intended
|
||||||
/// for use in unit tests), and thus always uses the default configuration.
|
/// for use in unit tests), and thus always uses the default configuration.
|
||||||
fn check_and_expect_one_error(object: &T, _: &Geometry) -> Self
|
fn check_and_expect_one_error(object: &T, geometry: &Geometry) -> Self
|
||||||
where
|
where
|
||||||
Self: Display,
|
Self: Display,
|
||||||
{
|
{
|
||||||
let config = ValidationConfig::default();
|
let config = ValidationConfig::default();
|
||||||
let mut errors = Self::check(object, &config).peekable();
|
let mut errors = Self::check(object, geometry, &config).peekable();
|
||||||
|
|
||||||
let err = errors
|
let err = errors
|
||||||
.next()
|
.next()
|
||||||
|
Loading…
Reference in New Issue
Block a user