jagua_rs/entities/
placed_item.rs1use crate::collision_detection::hazards::filter::QZHazardFilter;
2use crate::entities::Item;
3use crate::geometry::DTransformation;
4use crate::geometry::geo_traits::Transformable;
5use crate::geometry::primitives::SPolygon;
6use slotmap::new_key_type;
7use std::sync::Arc;
8
9#[cfg(doc)]
10use crate::entities::Layout;
11
12new_key_type! {
13 pub struct PItemKey;
15}
16
17#[derive(Clone, Debug)]
19pub struct PlacedItem {
20 pub item_id: usize,
22 pub d_transf: DTransformation,
24 pub hazard_filter: Option<QZHazardFilter>,
26 pub shape: Arc<SPolygon>,
28}
29
30impl PlacedItem {
31 pub fn new(item: &Item, d_transf: DTransformation) -> Self {
32 let transf = d_transf.compose();
33 let shape = Arc::new(item.shape_cd.transform_clone(&transf));
34 let qz_haz_filter = item.hazard_filter.clone();
35
36 PlacedItem {
37 item_id: item.id,
38 d_transf,
39 shape,
40 hazard_filter: qz_haz_filter,
41 }
42 }
43}