mod line_zone;
mod oriented_box;
mod point;
mod polygon;
mod polygon_zone;
mod position;
mod rect;
pub use line_zone::LineZone;
pub use oriented_box::{oriented_box_area, oriented_box_iou};
pub use point::Point;
pub use polygon::{filter_polygons_by_area, polygon_area, polygon_centroid, polygon_to_rect};
pub use polygon_zone::PolygonZone;
pub use position::Position;
pub use rect::Rect;
use std::collections::HashMap;
use crate::core::Detections;
pub trait Zone {
fn trigger(&mut self, detections: &Detections, previous_centroids: &HashMap<usize, Point>);
fn in_count(&self) -> usize;
fn out_count(&self) -> usize;
}