refactor(drawing,geometry): move GetLayer from drawing::graph to geometry

This commit is contained in:
Ellen Emilia Anna Zscheile 2025-01-19 21:58:59 +01:00
parent 61c7b5450f
commit 0fde34204f
17 changed files with 49 additions and 53 deletions

View File

@ -10,12 +10,12 @@ use serde::{Deserialize, Serialize};
use crate::{
board::{AccessMesadata, BandName, Board, ResolvedSelector},
drawing::{
graph::{GetLayer, MakePrimitive, PrimitiveIndex},
graph::{MakePrimitive, PrimitiveIndex},
Collect,
},
geometry::{
shape::{AccessShape, Shape},
GenericNode,
GenericNode, GetLayer,
},
graph::{GenericIndex, GetPetgraphIndex},
layout::{poly::PolyWeight, CompoundWeight, NodeIndex},

View File

@ -19,11 +19,11 @@ use crate::{
band::BandUid,
bend::{BendIndex, BendWeight},
dot::{DotIndex, DotWeight, FixedDotIndex, FixedDotWeight, GeneralDotWeight},
graph::{GetLayer, GetMaybeNet, PrimitiveIndex, PrimitiveWeight},
graph::{GetMaybeNet, PrimitiveIndex, PrimitiveWeight},
seg::{FixedSegIndex, FixedSegWeight, SegIndex, SegWeight},
Collect,
},
geometry::{edit::ApplyGeometryEdit, shape::AccessShape, GenericNode},
geometry::{edit::ApplyGeometryEdit, shape::AccessShape, GenericNode, GetLayer},
graph::GenericIndex,
layout::{
poly::{GetMaybeApex, MakePolygon, PolyWeight},

View File

@ -6,12 +6,12 @@ use enum_dispatch::enum_dispatch;
use crate::{
drawing::{
graph::{GetLayer, GetMaybeNet, MakePrimitive, PrimitiveIndex, PrimitiveWeight},
graph::{GetMaybeNet, MakePrimitive, PrimitiveIndex, PrimitiveWeight},
primitive::{GenericPrimitive, Primitive},
rules::AccessRules,
Drawing,
},
geometry::{GetOffset, GetWidth, SetOffset},
geometry::{GetLayer, GetOffset, GetWidth, SetOffset},
graph::{GenericIndex, GetPetgraphIndex},
};

View File

@ -9,12 +9,12 @@ use petgraph::stable_graph::NodeIndex;
use crate::{
drawing::{
graph::{GetLayer, GetMaybeNet, MakePrimitive, PrimitiveIndex, PrimitiveWeight},
graph::{GetMaybeNet, MakePrimitive, PrimitiveIndex, PrimitiveWeight},
primitive::{GenericPrimitive, Primitive},
rules::AccessRules,
Drawing,
},
geometry::{GetSetPos, GetWidth},
geometry::{GetLayer, GetSetPos, GetWidth},
graph::{GenericIndex, GetPetgraphIndex},
math::Circle,
};

View File

@ -16,7 +16,7 @@ use crate::geometry::{
recording_with_rtree::RecordingGeometryWithRtree,
with_rtree::BboxedIndex,
AccessBendWeight, AccessDotWeight, AccessSegWeight, GenericNode, Geometry, GeometryLabel,
GetOffset, GetSetPos, GetWidth,
GetLayer, GetOffset, GetSetPos, GetWidth,
};
use crate::graph::{GenericIndex, GetPetgraphIndex};
use crate::math::NoTangents;
@ -28,7 +28,7 @@ use crate::{
collect::Collect,
dot::{DotIndex, DotWeight, FixedDotIndex, FixedDotWeight, LooseDotIndex, LooseDotWeight},
gear::{GearIndex, GetNextGear},
graph::{GetLayer, GetMaybeNet, IsInLayer, MakePrimitive, PrimitiveIndex, PrimitiveWeight},
graph::{GetMaybeNet, IsInLayer, MakePrimitive, PrimitiveIndex, PrimitiveWeight},
guide::Guide,
loose::{GetPrevNextLoose, Loose, LooseIndex},
primitive::{
@ -1039,7 +1039,6 @@ impl<CW: Copy, R: AccessRules> Drawing<CW, R> {
where
CW: super::graph::IsInLayer,
{
use super::graph::GetLayer;
match index {
GenericNode::Primitive(primitive) => primitive.primitive(self).layer() == active_layer,
GenericNode::Compound(compound) => {

View File

@ -5,7 +5,10 @@
use enum_dispatch::enum_dispatch;
use petgraph::stable_graph::NodeIndex;
use crate::graph::{GenericIndex, GetPetgraphIndex};
use crate::{
geometry::GetLayer,
graph::{GenericIndex, GetPetgraphIndex},
};
use super::{
bend::{FixedBendIndex, FixedBendWeight, LooseBendIndex, LooseBendWeight},
@ -19,16 +22,6 @@ use super::{
Drawing,
};
pub trait Retag {
type Index: Sized + GetPetgraphIndex + PartialEq + Copy;
fn retag(&self, index: NodeIndex<usize>) -> Self::Index;
}
#[enum_dispatch]
pub trait GetLayer {
fn layer(&self) -> usize;
}
#[enum_dispatch]
pub trait IsInLayer {
fn is_in_layer(&self, layer: usize) -> bool;
@ -119,7 +112,7 @@ pub enum PrimitiveWeight {
LooseBend(LooseBendWeight),
}
impl Retag for PrimitiveWeight {
impl crate::geometry::Retag for PrimitiveWeight {
type Index = PrimitiveIndex;
fn retag(&self, index: NodeIndex<usize>) -> PrimitiveIndex {

View File

@ -9,11 +9,11 @@ use crate::{
drawing::{
bend::{BendIndex, FixedBendWeight, LooseBendIndex, LooseBendWeight},
dot::{DotIndex, DotWeight, FixedDotIndex, FixedDotWeight, LooseDotIndex, LooseDotWeight},
graph::{GetLayer, GetMaybeNet, PrimitiveIndex, PrimitiveWeight, Retag},
graph::{GetMaybeNet, PrimitiveIndex, PrimitiveWeight},
seg::{FixedSegWeight, LoneLooseSegWeight, SegIndex, SeqLooseSegIndex, SeqLooseSegWeight},
Drawing,
},
geometry::{primitive::PrimitiveShape, GenericNode, GetOffset, GetWidth},
geometry::{primitive::PrimitiveShape, GenericNode, GetLayer, GetOffset, GetWidth, Retag},
graph::{GenericIndex, GetPetgraphIndex},
};

View File

@ -6,12 +6,12 @@ use enum_dispatch::enum_dispatch;
use crate::{
drawing::{
graph::{GetLayer, GetMaybeNet, MakePrimitive, PrimitiveIndex, PrimitiveWeight},
graph::{GetMaybeNet, MakePrimitive, PrimitiveIndex, PrimitiveWeight},
primitive::{GenericPrimitive, Primitive},
rules::AccessRules,
Drawing,
},
geometry::GetWidth,
geometry::{GetLayer, GetWidth},
graph::{GenericIndex, GetPetgraphIndex},
};

View File

@ -4,12 +4,9 @@
use std::{collections::BTreeMap, marker::PhantomData};
use crate::{
drawing::graph::{GetLayer, Retag},
graph::{GenericIndex, GetPetgraphIndex},
};
use crate::graph::{GenericIndex, GetPetgraphIndex};
use super::{AccessBendWeight, AccessDotWeight, AccessSegWeight, GetWidth};
use super::{AccessBendWeight, AccessDotWeight, AccessSegWeight, GetLayer, GetWidth, Retag};
pub trait ApplyGeometryEdit<
PW: GetWidth + GetLayer + TryInto<DW> + TryInto<SW> + TryInto<BW> + Retag<Index = PI> + Copy,

View File

@ -11,15 +11,15 @@ use petgraph::{
Direction::{self, Incoming},
};
use serde::{Deserialize, Serialize};
use specctra_core::rules::AccessRules;
use crate::{
drawing::{
bend::BendWeight,
dot::DotWeight,
graph::{PrimitiveWeight, Retag},
bend::{BendWeight, FixedBendWeight, LooseBendWeight},
dot::{DotWeight, FixedDotWeight, LooseDotWeight},
graph::PrimitiveWeight,
primitive::Primitive,
rules::AccessRules,
seg::SegWeight,
seg::{FixedSegWeight, LoneLooseSegWeight, SegWeight, SeqLooseSegWeight},
},
geometry::{
compound::ManageCompounds,
@ -29,6 +29,16 @@ use crate::{
math::Circle,
};
pub trait Retag {
type Index: Sized + GetPetgraphIndex + PartialEq + Copy;
fn retag(&self, index: NodeIndex<usize>) -> Self::Index;
}
#[enum_dispatch]
pub trait GetLayer {
fn layer(&self) -> usize;
}
#[enum_dispatch]
pub trait GetSetPos {
fn pos(&self) -> Point;

View File

@ -8,17 +8,14 @@ use geo::Point;
use petgraph::stable_graph::StableDiGraph;
use rstar::RTree;
use crate::{
drawing::graph::{GetLayer, Retag},
graph::{GenericIndex, GetPetgraphIndex},
};
use crate::graph::{GenericIndex, GetPetgraphIndex};
use super::{
compound::ManageCompounds,
edit::{ApplyGeometryEdit, GeometryEdit},
with_rtree::{BboxedIndex, GeometryWithRtree},
AccessBendWeight, AccessDotWeight, AccessSegWeight, GenericNode, Geometry, GeometryLabel,
GetWidth,
GetLayer, GetWidth, Retag,
};
#[derive(Debug)]

View File

@ -9,12 +9,11 @@ use petgraph::stable_graph::StableDiGraph;
use rstar::{primitives::GeomWithData, Envelope, RTree, RTreeObject, AABB};
use crate::{
drawing::graph::{GetLayer, Retag},
geometry::{
compound::ManageCompounds,
primitive::{AccessPrimitiveShape, PrimitiveShape},
AccessBendWeight, AccessDotWeight, AccessSegWeight, GenericNode, Geometry, GeometryLabel,
GetWidth,
GetLayer, GetWidth, Retag,
},
graph::{GenericIndex, GetPetgraphIndex},
};

View File

@ -11,13 +11,13 @@ use geo::{LineString, Point, Polygon};
use crate::{
drawing::{
dot::FixedDotIndex,
graph::{GetLayer, GetMaybeNet, PrimitiveIndex},
graph::{GetMaybeNet, PrimitiveIndex},
primitive::GetLimbs,
rules::AccessRules,
seg::SegIndex,
Drawing,
},
geometry::GetSetPos,
geometry::{GetLayer, GetSetPos},
graph::{GenericIndex, GetPetgraphIndex},
layout::CompoundWeight,
};

View File

@ -14,13 +14,14 @@ use crate::{
bend::{BendIndex, GeneralBendWeight, LooseBendWeight},
dot::{DotIndex, FixedDotIndex, GeneralDotWeight, LooseDotIndex, LooseDotWeight},
gear::GearIndex,
graph::{GetLayer, GetMaybeNet, MakePrimitive},
graph::{GetMaybeNet, MakePrimitive},
head::{CaneHead, GetFace, Head},
primitive::GetOtherJoint,
rules::AccessRules,
seg::{GeneralSegWeight, LoneLooseSegWeight, SeqLooseSegWeight},
DrawingException, Guide, Infringement,
},
geometry::GetLayer,
layout::{Layout, LayoutEdit},
math::{Circle, NoTangents},
};

View File

@ -23,12 +23,12 @@ use crate::{
bend::{FixedBendIndex, LooseBendIndex},
dot::FixedDotIndex,
gear::{GearIndex, GetNextGear},
graph::{GetLayer, GetMaybeNet, MakePrimitive, PrimitiveIndex},
graph::{GetMaybeNet, MakePrimitive, PrimitiveIndex},
primitive::{MakePrimitiveShape, Primitive},
rules::AccessRules,
Drawing,
},
geometry::shape::AccessShape,
geometry::{shape::AccessShape, GetLayer},
graph::{GetPetgraphIndex, MakeRef},
layout::Layout,
router::astar::MakeEdgeRef,

View File

@ -14,12 +14,12 @@ use crate::{
board::{AccessMesadata, Board},
drawing::{
dot::{FixedDotWeight, GeneralDotWeight},
graph::{GetLayer, GetMaybeNet, MakePrimitive},
graph::{GetMaybeNet, MakePrimitive},
primitive::MakePrimitiveShape,
seg::{FixedSegWeight, GeneralSegWeight},
Drawing,
},
geometry::{primitive::PrimitiveShape, GetWidth},
geometry::{primitive::PrimitiveShape, GetLayer, GetWidth},
layout::{poly::SolidPolyWeight, Layout, LayoutEdit},
math::{Circle, PointWithRotation},
specctra::{

View File

@ -12,8 +12,8 @@ use topola::{
Autorouter,
},
board::{AccessMesadata, Board},
drawing::graph::{GetLayer, GetMaybeNet},
geometry::{shape::MeasureLength, GenericNode},
drawing::graph::GetMaybeNet,
geometry::{shape::MeasureLength, GenericNode, GetLayer},
graph::{GetPetgraphIndex, MakeRef},
layout::LayoutEdit,
router::{navmesh::Navmesh, RouterOptions},