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 {
10  GraphicsModule::GraphicsModule(Module* m) : GraphicsNode(ItemType::Module, m->get_id(), QString::fromStdString(m->get_name()))
11  {
13  mNodeText[mNodeText[1].isEmpty() ? 1 : 2] = "Module";
14 
15  for (hal::ModulePin* pin : m->get_pins())
16  {
17  u32 netId = pin->get_net()->get_id();
18  QString pinName = QString::fromStdString(pin->get_name());
19 
20  switch (pin->get_direction())
21  {
23  mInputByNet.insert(netId, mInputPins.size());
24  mInputPins.append(hal::GraphicsModule::ModulePin{pinName, netId});
25  break;
27  mOutputByNet.insert(netId, mOutputPins.size());
28  mOutputPins.append(hal::GraphicsModule::ModulePin{pinName, netId});
29  break;
31  mInputByNet.insert(netId, mInputPins.size());
32  mOutputByNet.insert(netId, mOutputPins.size());
33  mInputPins.append(hal::GraphicsModule::ModulePin{pinName, netId});
34  mOutputPins.append(hal::GraphicsModule::ModulePin{pinName, netId});
35  break;
36  default:
37  break;
38  }
39  }
40  }
41 } // namespace hal
QVector< ModulePin > mOutputPins
QVector< ModulePin > mInputPins
Abstract base class for nodes (e.g. gates, modules)
Definition: graphics_node.h:41
QMultiHash< u32, int > mInputByNet
QMultiHash< u32, int > mOutputByNet
QString mNodeText[3]
std::vector< ModulePin * > get_pins(const std::function< bool(ModulePin *)> &filter=nullptr) const
Definition: module.cpp:871
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