mirror of https://codeberg.org/topola/topola.git
chore: fix deprecation warnings about geo::EuclideanDistance
This commit is contained in:
parent
35b2958c8d
commit
8a724dc5d2
|
|
@ -1,4 +1,5 @@
|
||||||
use geo::{Centroid, Contains, EuclideanLength, Point, Polygon};
|
use geo::algorithm::line_measures::{Euclidean, Length};
|
||||||
|
use geo::{Centroid, Contains, Point, Polygon};
|
||||||
|
|
||||||
use crate::geometry::shape::{AccessShape, MeasureLength};
|
use crate::geometry::shape::{AccessShape, MeasureLength};
|
||||||
|
|
||||||
|
|
@ -12,7 +13,7 @@ impl MeasureLength for PolyShape {
|
||||||
let mut length = 0.0;
|
let mut length = 0.0;
|
||||||
|
|
||||||
for line in self.polygon.exterior().lines() {
|
for line in self.polygon.exterior().lines() {
|
||||||
length += line.euclidean_length();
|
length += line.length::<Euclidean>();
|
||||||
}
|
}
|
||||||
|
|
||||||
length
|
length
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
use std::f64::consts::TAU;
|
use std::f64::consts::TAU;
|
||||||
|
|
||||||
use enum_dispatch::enum_dispatch;
|
use enum_dispatch::enum_dispatch;
|
||||||
use geo::{point, polygon, Contains, EuclideanDistance, Intersects, Point, Polygon, Rotate};
|
use geo::algorithm::line_measures::{Distance, Euclidean};
|
||||||
|
use geo::{point, polygon, Contains, Intersects, Point, Polygon, Rotate};
|
||||||
use rstar::{RTreeObject, AABB};
|
use rstar::{RTreeObject, AABB};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|
@ -64,7 +65,7 @@ impl AccessShape for DotShape {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn contains_point(&self, p: Point) -> bool {
|
fn contains_point(&self, p: Point) -> bool {
|
||||||
p.euclidean_distance(&self.circle.pos) <= self.circle.r
|
Euclidean::distance(&p, &self.circle.pos) <= self.circle.r
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -89,11 +90,11 @@ impl AccessPrimitiveShape for DotShape {
|
||||||
|
|
||||||
match other {
|
match other {
|
||||||
PrimitiveShape::Dot(other) => {
|
PrimitiveShape::Dot(other) => {
|
||||||
self.circle.pos.euclidean_distance(&other.circle.pos)
|
Euclidean::distance(&self.circle.pos, &other.circle.pos)
|
||||||
< self.circle.r + other.circle.r
|
< self.circle.r + other.circle.r
|
||||||
}
|
}
|
||||||
PrimitiveShape::Seg(other) => {
|
PrimitiveShape::Seg(other) => {
|
||||||
self.circle.pos.euclidean_distance(&other.polygon()) < self.circle.r
|
Euclidean::distance(&self.circle.pos, &other.polygon()) < self.circle.r
|
||||||
}
|
}
|
||||||
PrimitiveShape::Bend(other) => {
|
PrimitiveShape::Bend(other) => {
|
||||||
for point in math::intersect_circles(&self.circle, &other.inner_circle()) {
|
for point in math::intersect_circles(&self.circle, &other.inner_circle()) {
|
||||||
|
|
@ -141,7 +142,7 @@ pub struct SegShape {
|
||||||
impl SegShape {
|
impl SegShape {
|
||||||
fn polygon(&self) -> Polygon {
|
fn polygon(&self) -> Polygon {
|
||||||
let tangent_vector = self.to - self.from;
|
let tangent_vector = self.to - self.from;
|
||||||
let tangent_vector_norm = tangent_vector.euclidean_distance(&point! {x: 0.0, y: 0.0});
|
let tangent_vector_norm = Euclidean::distance(&tangent_vector, &point! {x: 0.0, y: 0.0});
|
||||||
let unit_tangent_vector = tangent_vector / tangent_vector_norm;
|
let unit_tangent_vector = tangent_vector / tangent_vector_norm;
|
||||||
|
|
||||||
let normal = unit_tangent_vector.rotate_around_point(-90., point! {x: 0.0, y: 0.0});
|
let normal = unit_tangent_vector.rotate_around_point(-90., point! {x: 0.0, y: 0.0});
|
||||||
|
|
@ -157,7 +158,7 @@ impl SegShape {
|
||||||
|
|
||||||
impl MeasureLength for SegShape {
|
impl MeasureLength for SegShape {
|
||||||
fn length(&self) -> f64 {
|
fn length(&self) -> f64 {
|
||||||
self.to.euclidean_distance(&self.from)
|
Euclidean::distance(&self.to, &self.from)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -318,11 +319,12 @@ impl AccessShape for BendShape {
|
||||||
fn center(&self) -> Point {
|
fn center(&self) -> Point {
|
||||||
let sum = (self.from - self.inner_circle.pos) + (self.to - self.inner_circle.pos);
|
let sum = (self.from - self.inner_circle.pos) + (self.to - self.inner_circle.pos);
|
||||||
self.inner_circle.pos
|
self.inner_circle.pos
|
||||||
+ (sum / sum.euclidean_distance(&point! {x: 0.0, y: 0.0})) * self.inner_circle.r
|
+ (sum / Euclidean::distance(&sum, &geo::point! { x: 0.0, y: 0.0 }))
|
||||||
|
* self.inner_circle.r
|
||||||
}
|
}
|
||||||
|
|
||||||
fn contains_point(&self, p: Point) -> bool {
|
fn contains_point(&self, p: Point) -> bool {
|
||||||
let d = p.euclidean_distance(&self.inner_circle.pos);
|
let d = Euclidean::distance(&p, &self.inner_circle.pos);
|
||||||
self.between_ends(p) && d >= self.inner_circle().r && d <= self.outer_circle().r
|
self.between_ends(p) && d >= self.inner_circle().r && d <= self.outer_circle().r
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
use geo::{geometry::Point, point, EuclideanDistance, Line};
|
use geo::algorithm::line_measures::{Distance, Euclidean};
|
||||||
|
use geo::{geometry::Point, point, Line};
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
|
||||||
#[derive(Error, Debug, Clone, Copy, PartialEq)]
|
#[derive(Error, Debug, Clone, Copy, PartialEq)]
|
||||||
|
|
@ -128,7 +129,7 @@ pub fn tangent_segment(
|
||||||
|
|
||||||
pub fn intersect_circles(circle1: &Circle, circle2: &Circle) -> Vec<Point> {
|
pub fn intersect_circles(circle1: &Circle, circle2: &Circle) -> Vec<Point> {
|
||||||
let delta = circle2.pos - circle1.pos;
|
let delta = circle2.pos - circle1.pos;
|
||||||
let d = circle2.pos.euclidean_distance(&circle1.pos);
|
let d = Euclidean::distance(&circle2.pos, &circle1.pos);
|
||||||
|
|
||||||
if d > circle1.r + circle2.r {
|
if d > circle1.r + circle2.r {
|
||||||
// No intersection.
|
// No intersection.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
use derive_getters::Getters;
|
use derive_getters::Getters;
|
||||||
use geo::EuclideanDistance;
|
use geo::algorithm::line_measures::{Distance, Euclidean};
|
||||||
use petgraph::{data::DataMap, visit::EdgeRef};
|
use petgraph::{data::DataMap, visit::EdgeRef};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
|
@ -164,7 +164,7 @@ impl<'a, R: AccessRules> AstarStrategy<Navmesh, f64, BandTermsegIndex>
|
||||||
.shape()
|
.shape()
|
||||||
.center();
|
.center();
|
||||||
|
|
||||||
end_point.euclidean_distance(&start_point)
|
Euclidean::distance(&end_point, &start_point)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
use std::{cmp::Ordering, marker::PhantomData};
|
use std::{cmp::Ordering, marker::PhantomData};
|
||||||
|
|
||||||
use geo::{point, EuclideanDistance, Point};
|
use geo::algorithm::line_measures::{Distance, Euclidean};
|
||||||
|
use geo::{point, Point};
|
||||||
use petgraph::visit;
|
use petgraph::visit;
|
||||||
use spade::{handles::FixedVertexHandle, DelaunayTriangulation, HasPosition, InsertionError};
|
use spade::{handles::FixedVertexHandle, DelaunayTriangulation, HasPosition, InsertionError};
|
||||||
|
|
||||||
|
|
@ -178,7 +179,7 @@ impl<
|
||||||
from,
|
from,
|
||||||
to,
|
to,
|
||||||
weight: TriangulationEdgeWeightWrapper {
|
weight: TriangulationEdgeWeightWrapper {
|
||||||
length: self.position(from).euclidean_distance(&self.position(to)),
|
length: Euclidean::distance(&self.position(from), &self.position(to)),
|
||||||
weight: *edge.data(),
|
weight: *edge.data(),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
@ -208,7 +209,7 @@ impl<
|
||||||
from,
|
from,
|
||||||
to,
|
to,
|
||||||
weight: TriangulationEdgeWeightWrapper {
|
weight: TriangulationEdgeWeightWrapper {
|
||||||
length: self.position(from).euclidean_distance(&self.position(to)),
|
length: Euclidean::distance(&self.position(from), &self.position(to)),
|
||||||
weight: *edge.data(),
|
weight: *edge.data(),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue