56     class SeparatedGraphicsNet;
 
   57     class StandardGraphicsNet;
 
   59     class NetLayoutJunctionHash;
 
   60     class NetLayoutJunctionEntries;
 
   61     class CommentSpeechBubble;
 
   91             SceneCoordinate() : minLane(0), maxLane(0), mOffset(0), mPadding(0)
 
   95             void testMinMax(
int ilane);
 
   96             void setOffset(
float off)
 
  100             void setPadding(
float pad)
 
  104             void setOffsetYje(
const SceneCoordinate& previous, 
float minimumJunction);
 
  105             void setOffsetYej(
const SceneCoordinate& previous, 
float maximumBlock, 
float minimumJunction);
 
  106             void setOffsetX(
const SceneCoordinate& previous, 
float maximumBlock, 
float sepOut, 
float sepInp);
 
  107             float lanePosition(
int ilane) 
const;
 
  112             float junctionEntry()
 const 
  114                 return lanePosition(minLane);
 
  116             float junctionExit()
 const 
  118                 return lanePosition(maxLane - 1);
 
  120             float xBoxOffset() 
const;
 
  123         class SceneCoordinateArray
 
  129             ~SceneCoordinateArray();
 
  130             float lanePosition(
int igrid, 
int ilane) 
const;
 
  133         class EndpointCoordinate
 
  145             EndpointCoordinate();
 
  146             void setInputPosition(
QPointF p0pos);
 
  147             void setOutputPosition(
QPointF p0pos);
 
  148             float lanePosition(
int ilane, 
bool absolute) 
const;
 
  153             float xOutput()
 const 
  157             void setInputPins(
const QList<u32>& pinList, 
float p0dist, 
float pdist);
 
  158             void setOutputPins(
const QList<u32>& pinList, 
float p0dist, 
float pdist);
 
  159             int numberPins() 
const;
 
  164         class EndpointList : 
public QList<NetLayoutPoint>
 
  171                 SingleDestination    = 2,
 
  172                 SourceAndDestination = 3,
 
  174                 HasGlobalEndpoint    = 5
 
  177                 : mNetType(NoEndpoint), mInputArrow(false), mOutputArrow(false)
 
  179             void addSource(
const NetLayoutPoint& pnt);
 
  180             void addDestination(
const NetLayoutPoint& pnt);
 
  181             void setNetType(EndpointType tp) { mNetType = tp; }
 
  182             EndpointType netType()
 const { 
return mNetType; }
 
  183             bool isInput(
int index)
 const { 
return mPointIsInput.at(index); }
 
  184             void setInputArrow() { mInputArrow = 
true; }
 
  185             bool hasInputArrow()
 const { 
return mInputArrow; }
 
  186             void setOutputArrow() { mOutputArrow = 
true; }
 
  187             bool hasOutputArrow()
 const { 
return  mOutputArrow; }
 
  190             EndpointType mNetType;
 
  196         class SeparatedNetWidth
 
  201             SeparatedNetWidth() : mInputSpace(0), mOutputSpace(0)
 
  205             void requireInputSpace(
float spc);
 
  206             void requireOutputSpace(
float spc);
 
  211             Road(
const int x_coordinate, 
const int y_coordinate) : x(x_coordinate), y(y_coordinate), mLanes(0)
 
  218             unsigned int mLanes = 0;
 
  330         void handleDrawNetThreadFinished();
 
  331         void handleJunctionThreadFinished();
 
  334         void clearLayoutData();
 
  335         void clearComments();
 
  338         void findMaxBoxDimensions();
 
  339         void findMaxChannelLanes();
 
  340         void calculateJunctionMinDistance();
 
  341         void calculateGateOffsets();
 
  345         void drawNetsIsolated(
u32 id, 
Net* 
n, 
const EndpointList& epl);
 
  346         void updateSceneRect();
 
  347         static bool verifyModulePort(
Net* 
n, 
const Node& modNode, 
bool isModInput);
 
  351         bool boxExists(
const int x, 
const int y) 
const;
 
  353         bool hRoadJumpPossible(
const int x, 
const int y1, 
const int y2) 
const;
 
  354         bool hRoadJumpPossible(
const Road* 
const r1, 
const Road* 
const r2) 
const;
 
  356         bool vRoadJumpPossible(
const int x1, 
const int x2, 
const int y) 
const;
 
  357         bool vRoadJumpPossible(
const Road* 
const r1, 
const Road* 
const r2) 
const;
 
  359         qreal hRoadHeight(
const unsigned int mLanes) 
const;
 
  360         qreal vRoadWidth(
const unsigned int mLanes) 
const;
 
  362         static bool isConstNet(
const Net* 
n);
 
  388         qreal mMaxNodeHeight;
 
  393         QRect mNodeBoundingBox;
 
  416         SceneCoordinateArray* mCoordArrayX;
 
  417         SceneCoordinateArray* mCoordArrayY;
 
DrawNetThread(u32 id, GraphLayouter *parent)
 
StandardGraphicsNet::Lines mLines
 
Logical container for modules, gates, and nets.
 
Base class for all specific layouters.
 
QVector< qreal > yValues() const
 
qreal gridXposition(int ix) const
 
virtual void remove(const QSet< u32 > modules, const QSet< u32 > gates, const QSet< u32 > nets)=0
 
void setNodePosition(const Node &n, const QPoint &p)
 
void removeNodeFromMaps(const Node &n)
 
virtual QString mDescription() const =0
 
QVector< qreal > xValues() const
 
QMap< Node, QPoint > mNodeToPositionRollback
 
qreal defaultGridHeight() const
 
void setDumpJunctionEnabled(bool enabled)
 
void swapNodePositions(const Node &n1, const Node &n2)
 
QMap< QPoint, Node > mPositionToNodeMap
 
virtual void add(const QSet< u32 > modules, const QSet< u32 > gates, const QSet< u32 > nets, PlacementHint placement=PlacementHint())=0
 
const QMap< QPoint, Node > positionToNodeMap() const
 
NetLayoutPoint positonForNode(const Node &nd) const
 
GraphLayouter(GraphContext *context, QObject *parent=nullptr)
 
void dumpNodePositions(const QPoint &search) const
 
const QMap< Node, QPoint > nodeToPositionMap() const
 
qreal maxNodeWidth() const
 
qreal gridYposition(int iy) const
 
bool dumpJunctionEnabled()
 
qreal maxNodeHeight() const
 
Node nodeAtPosition(const QPoint &p) const
 
GridPlacement * gridPlacementFactory() const
 
GraphicsScene * scene() const
 
qreal defaultGridWidth() const
 
QPoint gridPointByItem(GraphicsNode *item) const
 
virtual QString name() const =0
 
GraphContext * mParentContext
 
QMap< Node, QPoint > mNodeToPositionMap
 
const NodeBoxes & boxes() const
 
void updatePlacement(const GridPlacement &plc)
 
Abstract base class for nodes (e.g. gates, modules)
 
Container for a GraphGraphicsView containing gates, nets, and modules.
 
NetLayoutPoint mNetLayoutPoint
 
NetLayoutJunction * mJunction
 
JunctionThread(const NetLayoutPoint &nlp, const NetLayoutJunctionEntries &entr)
 
NetLayoutJunctionEntries mEntries
 
The NodeBoxes class owns all NodeBox'es from hal view.
 
The Node class object represents a module or a gate.
 
The PlacementHint class object provides hints for the layouter how new box objects are placed on a vi...
 
QObject * parent() const const