mirror of https://codeberg.org/topola/topola.git
refactor(drawing,geometry): move GetLayer from drawing::graph to geometry
This commit is contained in:
parent
61c7b5450f
commit
0fde34204f
|
|
@ -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},
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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) => {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)]
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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::{
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
|
|
|
|||
Loading…
Reference in New Issue