17 return "Physical Layouter";
22 return "<p>PLACEHOLDER</p>";
36 std::set<i32> x_coordinates;
37 std::set<i32> y_coordinates;
44 if (
g->has_location())
46 x_coordinates.insert(
g->get_location_x());
47 y_coordinates.insert(
g->get_location_y());
51 for (
i32 x1 : x_coordinates)
52 for (
i32 x2 : x_coordinates)
55 i32 x_distance = std::abs(x1 - x2);
57 if (x_distance < mMinXDistance)
58 mMinXDistance = x_distance;
61 for (
i32 y1 : y_coordinates)
62 for (
i32 y2 : y_coordinates)
65 i32 y_distance = std::abs(y1 - y2);
67 if (y_distance < mMinYDistance)
68 mMinYDistance = y_distance;
78 for (
u32 id : modules)
Logical container for modules, gates, and nets.
Base class for all specific layouters.
void removeNodeFromMaps(const Node &n)
Gate * get_gate_by_id(const u32 gate_id) const
The Node class object represents a module or a gate.
QString name() const override
virtual void remove(const QSet< u32 > modules, const QSet< u32 > gates, const QSet< u32 > nets) override
virtual void add(const QSet< u32 > modules, const QSet< u32 > gates, const QSet< u32 > nets, PlacementHint placement) override
QString mDescription() const override
PhysicalGraphLayouter(GraphContext *context)
The PlacementHint class object provides hints for the layouter how new box objects are placed on a vi...