fix pattern test

This commit is contained in:
Henry Schimke
2023-04-24 17:49:04 -05:00
parent d08f67feed
commit 483539a194
5 changed files with 18 additions and 10 deletions

View File

@@ -412,7 +412,12 @@ pub fn FitQadrilateralToPoints(center: Point, points: &mut [Point]) -> Option<Qu
.max_by(diagonal_max_by_pred)?;
// corners[3] = std::max_element(&points[Size(points) * 5 / 8], &points[Size(points) * 7 / 8], dist2Diagonal);
let corner_positions = [0, points.iter().position(|p| *p == corners[1])?, points.iter().position(|p| *p == corners[2])?, points.iter().position(|p| *p == corners[3])?];
let corner_positions = [
0,
points.iter().position(|p| *p == corners[1])?,
points.iter().position(|p| *p == corners[2])?,
points.iter().position(|p| *p == corners[3])?,
];
// let lines = [
// RegressionLine::with_two_points(corners[0] + 1.0, corners[1]),
@@ -421,10 +426,10 @@ let corner_positions = [0, points.iter().position(|p| *p == corners[1])?, points
// RegressionLine::with_two_points(corners[3] + 1.0, *points.last()? + 1.0),
// ];
let lines = [
RegressionLine::with_point_slice(&points[corner_positions[0] + 1.. corner_positions[1]]),
RegressionLine::with_point_slice(&points[corner_positions[1] + 1.. corner_positions[2]]),
RegressionLine::with_point_slice(&points[corner_positions[2] + 1.. corner_positions[3]]),
RegressionLine::with_point_slice(&points[corner_positions[3] + 1.. points.len()]),
RegressionLine::with_point_slice(&points[corner_positions[0] + 1..corner_positions[1]]),
RegressionLine::with_point_slice(&points[corner_positions[1] + 1..corner_positions[2]]),
RegressionLine::with_point_slice(&points[corner_positions[2] + 1..corner_positions[3]]),
RegressionLine::with_point_slice(&points[corner_positions[3] + 1..points.len()]),
];
// std::array lines{RegressionLine{corners[0] + 1, corners[1]}, RegressionLine{corners[1] + 1, corners[2]},
// RegressionLine{corners[2] + 1, corners[3]}, RegressionLine{corners[3] + 1, &points.back() + 1}};

View File

@@ -66,9 +66,9 @@ impl<T: Default + Clone + Copy> Matrix<T> {
pub fn get(&self, x: usize, y: usize) -> Option<T> {
if x >= self.width || y >= self.height {
None
} else if let Some(Some(d)) = self.data.get(Self::get_offset(x, y, self.width)){
} else if let Some(Some(d)) = self.data.get(Self::get_offset(x, y, self.width)) {
Some(*d)
}else {
} else {
None
}
}

View File

@@ -163,7 +163,7 @@ impl<'a> PatternView<'a> {
// index is the number of bars and spaces from the first bar to the current position
pub fn index(&self) -> usize {
self.current - self.start /*return narrow_cast<int>(_data - _base) - 1;*/
self.current /*return narrow_cast<int>(_data - _base) - 1;*/
}
pub fn pixelsInFront(&self) -> PatternType {
self.data