INET Framework for OMNeT++/OMNEST
inet::visualizer::TransportConnectionCanvasVisualizer Class Reference

#include <TransportConnectionCanvasVisualizer.h>

Inheritance diagram for inet::visualizer::TransportConnectionCanvasVisualizer:
inet::visualizer::TransportConnectionVisualizerBase inet::visualizer::VisualizerBase

Classes

class  TransportConnectionCanvasVisualization
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual LabeledIconFigurecreateConnectionEndFigure (tcp::TcpConnection *connectionVisualization) const
 
virtual const TransportConnectionVisualizationcreateConnectionVisualization (cModule *source, cModule *destination, tcp::TcpConnection *tcpConnection) const override
 
virtual void addConnectionVisualization (const TransportConnectionVisualization *connectionVisualization) override
 
virtual void removeConnectionVisualization (const TransportConnectionVisualization *connectionVisualization) override
 
virtual void setConnectionLabelsVisible (bool visible)
 
- Protected Member Functions inherited from inet::visualizer::TransportConnectionVisualizerBase
virtual void handleParameterChange (const char *name) override
 
virtual void preDelete (cComponent *root) override
 
virtual void subscribe ()
 
virtual void unsubscribe ()
 
virtual void removeAllConnectionVisualizations ()
 
- Protected Member Functions inherited from inet::visualizer::VisualizerBase
virtual int numInitStages () const override
 
virtual Coord getPosition (const cModule *networkNode) const
 
virtual Coord getContactPosition (const cModule *networkNode, const Coord &fromPosition, const char *contactMode, double contactSpacing) const
 
virtual Quaternion getOrientation (const cModule *networkNode) const
 
virtual void mapChunks (const Ptr< const Chunk > &chunk, const std::function< void(const Ptr< const Chunk > &, int)> &thunk) const
 

Protected Attributes

double zIndex = NaN
 
const CanvasProjectioncanvasProjection = nullptr
 
ModuleRefByPar< NetworkNodeCanvasVisualizernetworkNodeVisualizer
 
- Protected Attributes inherited from inet::visualizer::TransportConnectionVisualizerBase
bool displayTransportConnections = false
 
NetworkNodeFilter sourceNodeFilter
 
PortFilter sourcePortFilter
 
NetworkNodeFilter destinationNodeFilter
 
PortFilter destinationPortFilter
 
const char * icon = nullptr
 
ColorSet iconColorSet
 
cFigure::Font labelFont
 
cFigure::Color labelColor
 
Placement placementHint
 
double placementPriority
 
std::vector< const TransportConnectionVisualization * > connectionVisualizations
 
- Protected Attributes inherited from inet::visualizer::VisualizerBase
cModule * visualizationTargetModule = nullptr
 
cModule * visualizationSubjectModule = nullptr
 
const char * tags = nullptr
 

Additional Inherited Members

- Public Member Functions inherited from inet::visualizer::TransportConnectionVisualizerBase
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override
 

Member Function Documentation

◆ addConnectionVisualization()

void inet::visualizer::TransportConnectionCanvasVisualizer::addConnectionVisualization ( const TransportConnectionVisualization connectionVisualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::TransportConnectionVisualizerBase.

74 {
76  auto connectionCanvasVisualization = static_cast<const TransportConnectionCanvasVisualization *>(connectionVisualization);
77  auto sourceModule = getSimulation()->getModule(connectionVisualization->sourceModuleId);
78  if (sourceModule != nullptr) {
79  auto sourceVisualization = networkNodeVisualizer->getNetworkNodeVisualization(getContainingNode(sourceModule));
80  sourceVisualization->addAnnotation(connectionCanvasVisualization->sourceFigure, connectionCanvasVisualization->sourceFigure->getBounds().getSize(), placementHint, placementPriority);
81  }
82  auto destinationModule = getSimulation()->getModule(connectionVisualization->destinationModuleId);
83  if (destinationModule != nullptr) {
84  auto destinationVisualization = networkNodeVisualizer->getNetworkNodeVisualization(getContainingNode(destinationModule));
85  destinationVisualization->addAnnotation(connectionCanvasVisualization->destinationFigure, connectionCanvasVisualization->destinationFigure->getBounds().getSize(), placementHint, placementPriority);
86  }
88 }

◆ createConnectionEndFigure()

LabeledIconFigure * inet::visualizer::TransportConnectionCanvasVisualizer::createConnectionEndFigure ( tcp::TcpConnection connectionVisualization) const
protectedvirtual
38 {
39 #ifdef INET_WITH_TCP_INET
40  std::string icon(this->icon);
41  auto labeledIconFigure = new LabeledIconFigure("transportConnection");
42  labeledIconFigure->setTags((std::string("transport_connection ") + tags).c_str());
43  labeledIconFigure->setTooltip("This icon represents a transport connection between two network nodes");
44  labeledIconFigure->setAssociatedObject(tcpConnection);
45  labeledIconFigure->setZIndex(zIndex);
46  auto iconFigure = labeledIconFigure->getIconFigure();
47  iconFigure->setTooltip("This icon represents a transport connection between two network nodes");
48  iconFigure->setImageName(icon.substr(0, icon.find_first_of(".")).c_str());
49  iconFigure->setTintColor(iconColorSet.getColor(connectionVisualizations.size()));
50  iconFigure->setTintAmount(1);
51  auto labelFigure = labeledIconFigure->getLabelFigure();
52  labelFigure->setTooltip("This label represents a transport connection between two network nodes");
53  labelFigure->setPosition(iconFigure->getBounds().getSize() / 2);
54  labelFigure->setFont(labelFont);
55  labelFigure->setColor(labelColor);
56  char label[2];
57  label[0] = 'A' + (char)(connectionVisualizations.size() / iconColorSet.getSize());
58  label[1] = '\0';
59  labelFigure->setText(label);
60  return labeledIconFigure;
61 #else
62  return nullptr;
63 #endif // INET_WITH_TCP_INET
64 }

Referenced by createConnectionVisualization().

◆ createConnectionVisualization()

const TransportConnectionVisualizerBase::TransportConnectionVisualization * inet::visualizer::TransportConnectionCanvasVisualizer::createConnectionVisualization ( cModule *  source,
cModule *  destination,
tcp::TcpConnection tcpConnection 
) const
overrideprotectedvirtual

Implements inet::visualizer::TransportConnectionVisualizerBase.

67 {
68  auto sourceFigure = createConnectionEndFigure(tcpConnection);
69  auto destinationFigure = createConnectionEndFigure(tcpConnection);
70  return new TransportConnectionCanvasVisualization(sourceFigure, destinationFigure, source->getId(), destination->getId(), 1);
71 }

◆ initialize()

void inet::visualizer::TransportConnectionCanvasVisualizer::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::visualizer::TransportConnectionVisualizerBase.

26 {
28  if (!hasGUI()) return;
29  if (stage == INITSTAGE_LOCAL) {
30  zIndex = par("zIndex");
31  auto canvas = visualizationTargetModule->getCanvas();
33  networkNodeVisualizer.reference(this, "networkNodeVisualizerModule", true);
34  }
35 }

◆ removeConnectionVisualization()

void inet::visualizer::TransportConnectionCanvasVisualizer::removeConnectionVisualization ( const TransportConnectionVisualization connectionVisualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::TransportConnectionVisualizerBase.

91 {
93  auto connectionCanvasVisualization = static_cast<const TransportConnectionCanvasVisualization *>(connectionVisualization);
94  auto sourceModule = getSimulation()->getModule(connectionVisualization->sourceModuleId);
95  if (sourceModule != nullptr) {
96  auto sourceVisualization = networkNodeVisualizer->getNetworkNodeVisualization(getContainingNode(sourceModule));
97  sourceVisualization->removeAnnotation(connectionCanvasVisualization->sourceFigure);
98  }
99  auto destinationModule = getSimulation()->getModule(connectionVisualization->destinationModuleId);
100  if (destinationModule != nullptr) {
101  auto destinationVisualization = networkNodeVisualizer->getNetworkNodeVisualization(getContainingNode(destinationModule));
102  destinationVisualization->removeAnnotation(connectionCanvasVisualization->destinationFigure);
103  }
105 }

◆ setConnectionLabelsVisible()

void inet::visualizer::TransportConnectionCanvasVisualizer::setConnectionLabelsVisible ( bool  visible)
protectedvirtual
108 {
109  for (auto connectionVisualization : connectionVisualizations) {
110  auto connectionCanvasVisualization = static_cast<const TransportConnectionCanvasVisualization *>(connectionVisualization);
111  connectionCanvasVisualization->sourceFigure->getLabelFigure()->setVisible(visible);
112  connectionCanvasVisualization->destinationFigure->getLabelFigure()->setVisible(visible);
113  }
114 }

Referenced by addConnectionVisualization(), and removeConnectionVisualization().

Member Data Documentation

◆ canvasProjection

const CanvasProjection* inet::visualizer::TransportConnectionCanvasVisualizer::canvasProjection = nullptr
protected

Referenced by initialize().

◆ networkNodeVisualizer

ModuleRefByPar<NetworkNodeCanvasVisualizer> inet::visualizer::TransportConnectionCanvasVisualizer::networkNodeVisualizer
protected

◆ zIndex

double inet::visualizer::TransportConnectionCanvasVisualizer::zIndex = NaN
protected

The documentation for this class was generated from the following files:
inet::visualizer::TransportConnectionVisualizerBase::initialize
virtual void initialize(int stage) override
Definition: TransportConnectionVisualizerBase.cc:36
inet::visualizer::TransportConnectionVisualizerBase::connectionVisualizations
std::vector< const TransportConnectionVisualization * > connectionVisualizations
Definition: TransportConnectionVisualizerBase.h:57
inet::visualizer::TransportConnectionVisualizerBase::placementHint
Placement placementHint
Definition: TransportConnectionVisualizerBase.h:53
inet::visualizer::TransportConnectionCanvasVisualizer::zIndex
double zIndex
Definition: TransportConnectionCanvasVisualizer.h:34
inet::visualizer::TransportConnectionVisualizerBase::labelColor
cFigure::Color labelColor
Definition: TransportConnectionVisualizerBase.h:52
inet::visualizer::TransportConnectionVisualizerBase::labelFont
cFigure::Font labelFont
Definition: TransportConnectionVisualizerBase.h:51
inet::CanvasProjection::getCanvasProjection
static CanvasProjection * getCanvasProjection(const cCanvas *canvas)
Definition: CanvasProjection.cc:53
inet::getContainingNode
cModule * getContainingNode(const cModule *from)
Find the node containing the given module.
Definition: ModuleAccess.cc:40
inet::visualizer::TransportConnectionCanvasVisualizer::canvasProjection
const CanvasProjection * canvasProjection
Definition: TransportConnectionCanvasVisualizer.h:35
inet::visualizer::TransportConnectionCanvasVisualizer::createConnectionEndFigure
virtual LabeledIconFigure * createConnectionEndFigure(tcp::TcpConnection *connectionVisualization) const
Definition: TransportConnectionCanvasVisualizer.cc:37
inet::visualizer::VisualizerBase::visualizationTargetModule
cModule * visualizationTargetModule
Definition: VisualizerBase.h:25
inet::visualizer::TransportConnectionVisualizerBase::addConnectionVisualization
virtual void addConnectionVisualization(const TransportConnectionVisualization *connectionVisualization)
Definition: TransportConnectionVisualizerBase.cc:90
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::visualizer::ColorSet::getSize
size_t getSize() const
Definition: ColorSet.h:24
inet::visualizer::TransportConnectionCanvasVisualizer::networkNodeVisualizer
ModuleRefByPar< NetworkNodeCanvasVisualizer > networkNodeVisualizer
Definition: TransportConnectionCanvasVisualizer.h:36
inet::visualizer::TransportConnectionCanvasVisualizer::setConnectionLabelsVisible
virtual void setConnectionLabelsVisible(bool visible)
Definition: TransportConnectionCanvasVisualizer.cc:107
inet::visualizer::TransportConnectionVisualizerBase::iconColorSet
ColorSet iconColorSet
Definition: TransportConnectionVisualizerBase.h:50
inet::visualizer::TransportConnectionVisualizerBase::removeConnectionVisualization
virtual void removeConnectionVisualization(const TransportConnectionVisualization *connectionVisualization)
Definition: TransportConnectionVisualizerBase.cc:95
inet::visualizer::TransportConnectionVisualizerBase::icon
const char * icon
Definition: TransportConnectionVisualizerBase.h:49
inet::visualizer::TransportConnectionVisualizerBase::placementPriority
double placementPriority
Definition: TransportConnectionVisualizerBase.h:54
inet::visualizer::VisualizerBase::tags
const char * tags
Definition: VisualizerBase.h:27
inet::visualizer::ColorSet::getColor
cFigure::Color getColor(int index) const
Definition: ColorSet.cc:33