HAL
graphics_module.cpp
Go to the documentation of this file.
2 
4 #include "hal_core/netlist/net.h"
5 
6 #include <QDebug>
7 
8 namespace hal
9 {
11  {
12  setModuleLabel(m, true);
13 
14  for (hal::ModulePin* pin : m->get_pins())
15  {
16  u32 netId = pin->get_net()->get_id();
17  QString pinName = QString::fromStdString(pin->get_name());
18 
19  switch (pin->get_direction())
20  {
22  mInputByNet.insert(netId, mInputPins.size());
23  mInputPins.append(hal::GraphicsModule::ModulePin{pinName, netId});
24  break;
26  mOutputByNet.insert(netId, mOutputPins.size());
27  mOutputPins.append(hal::GraphicsModule::ModulePin{pinName, netId});
28  break;
30  mInputByNet.insert(netId, mInputPins.size());
31  mOutputByNet.insert(netId, mOutputPins.size());
32  mInputPins.append(hal::GraphicsModule::ModulePin{pinName, netId});
33  mOutputPins.append(hal::GraphicsModule::ModulePin{pinName, netId});
34  break;
35  default:
36  break;
37  }
38  }
39  }
40 
41  void GraphicsModule::setModuleLabel(const Module* m, bool init)
42  {
43  QString textLines[3];
44  textLines[0] = QString::fromStdString(m->get_name());
45  textLines[1] = QString::fromStdString(m->get_type());
46  textLines[textLines[1].isEmpty() ? 1 : 2] = "Module";
47  setNodeText(textLines,init);
48  }
49 } // namespace hal
QVector< ModulePin > mOutputPins
QVector< ModulePin > mInputPins
void setModuleLabel(const Module *m, bool init=false)
Abstract base class for nodes (e.g. gates, modules)
Definition: graphics_node.h:42
QMultiHash< u32, int > mInputByNet
QMultiHash< u32, int > mOutputByNet
void setNodeText(const QString *lines, bool init)
std::vector< ModulePin * > get_pins(const std::function< bool(ModulePin *)> &filter=nullptr) const
Definition: module.cpp:871
std::string get_name() const
Definition: module.cpp:87
std::string get_type() const
Definition: module.cpp:106
ItemType
The ItemType enum provides the enum type to classify graphic items into Modules, Gates or Nets....
Definition: gui_def.h:45
quint32 u32
typename QHash< Key, T >::iterator insert(const Key &key, const T &value)
QString fromStdString(const std::string &str)
bool isEmpty() const const