aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib.rs10
-rw-r--r--src/state.rs4
2 files changed, 12 insertions, 2 deletions
diff --git a/src/lib.rs b/src/lib.rs
index dfbeaae..8e650e5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -118,6 +118,16 @@ pub fn init() -> JSResult<()> {
let perf = window().performance().unwrap();
let start = perf.now();
for _ in 0..iters {
+ s.points.sort_by(|a, b| {
+ if a.y > b.y {
+ std::cmp::Ordering::Greater
+ } else if a.y == b.y {
+ std::cmp::Ordering::Equal
+ } else {
+ std::cmp::Ordering::Less
+ }
+ });
+ s.find_poly();
s.update()?;
}
let end = perf.now();
diff --git a/src/state.rs b/src/state.rs
index 09120fb..592f26e 100644
--- a/src/state.rs
+++ b/src/state.rs
@@ -19,7 +19,7 @@ pub struct State {
canvas: HtmlCanvasElement,
ctx: CanvasRenderingContext2d,
fps: HtmlElement,
- points: Vec<Point>,
+ pub points: Vec<Point>,
last_time: Option<f64>,
inter_count: u16,
}
@@ -124,7 +124,7 @@ impl State {
Ok(())
}
- fn find_poly(&self) -> Vec<&Point> {
+ pub fn find_poly(&self) -> Vec<&Point> {
let p1 = Point::new(0.0, 0.0);
let p2 = Point::new(1.0, 0.0);
let mut last_line = Line::new(&p1, &p2);