@@ -19,8 +19,8 @@ use crate::{algorithm::CoordsIter, ConvexHull, CoordFloat, GeoFloat, GeoNum, Pol
19
19
/// mbr.exterior(),
20
20
/// &LineString::from(vec![
21
21
/// (1.7000000000000004, 24.600000000000005),
22
- /// (14.649854163628412 , 25.153412571095238 ),
23
- /// (14.400000000000002, 31.000000000000007 ),
22
+ /// (14.64985416362841 , 25.153412571095235 ),
23
+ /// (14.400000000000002, 31.000000000000004 ),
24
24
/// (1.4501458363715916, 30.446587428904774),
25
25
/// (1.7000000000000004, 24.600000000000005),
26
26
/// ])
62
62
let ( mut min_x, mut max_x) = ( <T as Bounded >:: max_value ( ) , <T as Bounded >:: min_value ( ) ) ;
63
63
let ( mut min_y, mut max_y) = ( <T as Bounded >:: max_value ( ) , <T as Bounded >:: min_value ( ) ) ;
64
64
for point in hull. exterior ( ) . points ( ) {
65
- let x = point. y ( ) * edge. 1 + point. x ( ) * edge. 0 ;
66
- let y = point. y ( ) * edge. 0 - point. x ( ) * edge. 1 ;
65
+ let x = point. x ( ) . mul_add ( edge. 0 , point. y ( ) * edge. 1 ) ;
66
+ let y = point. x ( ) . mul_add ( - edge. 1 , point. y ( ) * edge. 0 ) ;
67
67
68
68
min_x = min_x. min ( x) ;
69
69
max_x = max_x. max ( x) ;
@@ -84,20 +84,20 @@ where
84
84
85
85
if let Some ( e) = best_edge {
86
86
let p1 = (
87
- best_min_x * e. 0 - best_min_y * e. 1 ,
88
- best_min_x * e. 1 + best_min_y * e. 0 ,
87
+ best_min_x. mul_add ( e. 0 , - best_min_y * e. 1 ) ,
88
+ best_min_x. mul_add ( e. 1 , best_min_y * e. 0 ) ,
89
89
) ;
90
90
let p2 = (
91
- best_max_x * e. 0 - best_min_y * e. 1 ,
92
- best_max_x * e. 1 + best_min_y * e. 0 ,
91
+ best_max_x. mul_add ( e. 0 , - best_min_y * e. 1 ) ,
92
+ best_max_x. mul_add ( e. 1 , best_min_y * e. 0 ) ,
93
93
) ;
94
94
let p3 = (
95
- best_max_x * e. 0 - best_max_y * e. 1 ,
96
- best_max_x * e. 1 + best_max_y * e. 0 ,
95
+ best_max_x. mul_add ( e. 0 , - best_max_y * e. 1 ) ,
96
+ best_max_x. mul_add ( e. 1 , best_max_y * e. 0 ) ,
97
97
) ;
98
98
let p4 = (
99
- best_min_x * e. 0 - best_max_y * e. 1 ,
100
- best_min_x * e. 1 + best_max_y * e. 0 ,
99
+ best_min_x. mul_add ( e. 0 , - best_max_y * e. 1 ) ,
100
+ best_min_x. mul_add ( e. 1 , best_max_y * e. 0 ) ,
101
101
) ;
102
102
let rectangle = Polygon :: new (
103
103
LineString ( vec ! [ p1. into( ) , p2. into( ) , p3. into( ) , p4. into( ) , p1. into( ) ] ) ,
@@ -124,8 +124,8 @@ mod test {
124
124
mbr. exterior( ) ,
125
125
& LineString :: from( vec![
126
126
( 1.7000000000000004 , 24.600000000000005 ) ,
127
- ( 14.649854163628412 , 25.153412571095238 ) ,
128
- ( 14.400000000000002 , 31.000000000000007 ) ,
127
+ ( 14.64985416362841 , 25.153412571095235 ) ,
128
+ ( 14.400000000000002 , 31.000000000000004 ) ,
129
129
( 1.4501458363715916 , 30.446587428904774 ) ,
130
130
( 1.7000000000000004 , 24.600000000000005 ) ,
131
131
] )
@@ -139,8 +139,8 @@ mod test {
139
139
mbr. exterior( ) ,
140
140
& LineString :: from( vec![
141
141
( 1.7000000000000004 , 24.600000000000005 ) ,
142
- ( 14.649854163628412 , 25.153412571095238 ) ,
143
- ( 14.400000000000002 , 31.000000000000007 ) ,
142
+ ( 14.64985416362841 , 25.153412571095235 ) ,
143
+ ( 14.400000000000002 , 31.000000000000004 ) ,
144
144
( 1.4501458363715916 , 30.446587428904774 ) ,
145
145
( 1.7000000000000004 , 24.600000000000005 ) ,
146
146
] )
0 commit comments