summaryrefslogtreecommitdiffstats
path: root/packages/svgbob/src/buffer/fragment_buffer/fragment/circle.rs
diff options
context:
space:
mode:
authorJovansonlee Cesar <ivanceras@gmail.com>2022-09-26 08:24:41 +0800
committerJovansonlee Cesar <ivanceras@gmail.com>2022-09-26 08:24:41 +0800
commitb9c97b14822ff58206555a330c57af1935166c57 (patch)
tree9a7ea82980b16078fe921931967dd20d35aa68e3 /packages/svgbob/src/buffer/fragment_buffer/fragment/circle.rs
parent3e01f38b506fafcd7ca7658dc77cb377c25578d0 (diff)
refactor: use index_map for the Circle span to preserve the order of the circles being inserted
Diffstat (limited to 'packages/svgbob/src/buffer/fragment_buffer/fragment/circle.rs')
-rw-r--r--packages/svgbob/src/buffer/fragment_buffer/fragment/circle.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/packages/svgbob/src/buffer/fragment_buffer/fragment/circle.rs b/packages/svgbob/src/buffer/fragment_buffer/fragment/circle.rs
index 1cf22f9..1388a2b 100644
--- a/packages/svgbob/src/buffer/fragment_buffer/fragment/circle.rs
+++ b/packages/svgbob/src/buffer/fragment_buffer/fragment/circle.rs
@@ -2,6 +2,7 @@ use crate::{fragment::Bounds, util, Cell, Point};
use nalgebra::Point2;
use parry2d::shape::ConvexPolygon;
use parry2d::shape::Polyline;
+use std::hash::{Hash, Hasher};
use std::{cmp::Ordering, fmt};
use sauron::{
@@ -17,6 +18,12 @@ pub struct Circle {
pub is_filled: bool,
}
+impl Hash for Circle {
+ fn hash<H: Hasher>(&self, state: &mut H) {
+ ((self.radius * 2.0) as i32).hash(state);
+ }
+}
+
impl Circle {
pub(crate) fn new(center: Point, radius: f32, is_filled: bool) -> Self {
Circle {