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

#include <NetworkNodeCanvasVisualizer.h>

Inheritance diagram for inet::visualizer::NetworkNodeCanvasVisualizer:
inet::visualizer::NetworkNodeVisualizerBase inet::visualizer::VisualizerBase

Public Member Functions

virtual ~NetworkNodeCanvasVisualizer ()
 
virtual NetworkNodeCanvasVisualizationfindNetworkNodeVisualization (const cModule *networkNode) const override
 
virtual NetworkNodeCanvasVisualizationgetNetworkNodeVisualization (const cModule *networkNode) const override
 
- Public Member Functions inherited from inet::visualizer::NetworkNodeVisualizerBase
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual void refreshDisplay () const override
 
virtual NetworkNodeCanvasVisualizationcreateNetworkNodeVisualization (cModule *networkNode) const override
 
virtual void addNetworkNodeVisualization (NetworkNodeVisualization *networkNodeVisualization) override
 
virtual void removeNetworkNodeVisualization (NetworkNodeVisualization *networkNodeVisualization) override
 
virtual void destroyNetworkNodeVisualization (NetworkNodeVisualization *networkNodeVisualization) override
 
- Protected Member Functions inherited from inet::visualizer::NetworkNodeVisualizerBase
virtual void handleParameterChange (const char *name) override
 
- 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

const CanvasProjectioncanvasProjection = nullptr
 
double zIndex = NaN
 
std::map< int, NetworkNodeCanvasVisualization * > networkNodeVisualizations
 
- Protected Attributes inherited from inet::visualizer::NetworkNodeVisualizerBase
NetworkNodeFilter nodeFilter
 
double annotationSpacing
 
double placementPenalty
 
- Protected Attributes inherited from inet::visualizer::VisualizerBase
cModule * visualizationTargetModule = nullptr
 
cModule * visualizationSubjectModule = nullptr
 
const char * tags = nullptr
 

Constructor & Destructor Documentation

◆ ~NetworkNodeCanvasVisualizer()

inet::visualizer::NetworkNodeCanvasVisualizer::~NetworkNodeCanvasVisualizer ( )
virtual
19 {
20  for (auto& it : networkNodeVisualizations) {
21  auto networkNodeVisualization = it.second;
22  while (networkNodeVisualization->getNumAnnotations() != 0)
23  networkNodeVisualization->removeAnnotation(0);
24  }
25 }

Member Function Documentation

◆ addNetworkNodeVisualization()

void inet::visualizer::NetworkNodeCanvasVisualizer::addNetworkNodeVisualization ( NetworkNodeVisualization networkNodeVisualization)
overrideprotectedvirtual

Implements inet::visualizer::NetworkNodeVisualizerBase.

75 {
76  auto networkNodeCanvasVisualization = check_and_cast<NetworkNodeCanvasVisualization *>(networkNodeVisualization);
77  networkNodeVisualizations[networkNodeCanvasVisualization->networkNode->getId()] = networkNodeCanvasVisualization;
78  visualizationTargetModule->getCanvas()->addFigure(networkNodeCanvasVisualization);
79 }

Referenced by initialize().

◆ createNetworkNodeVisualization()

NetworkNodeCanvasVisualization * inet::visualizer::NetworkNodeCanvasVisualizer::createNetworkNodeVisualization ( cModule *  networkNode) const
overrideprotectedvirtual

Implements inet::visualizer::NetworkNodeVisualizerBase.

57 {
58  auto visualization = new NetworkNodeCanvasVisualization(networkNode, annotationSpacing, placementPenalty);
59  visualization->setZIndex(zIndex);
60  return visualization;
61 }

Referenced by initialize().

◆ destroyNetworkNodeVisualization()

virtual void inet::visualizer::NetworkNodeCanvasVisualizer::destroyNetworkNodeVisualization ( NetworkNodeVisualization networkNodeVisualization)
inlineoverrideprotectedvirtual

Implements inet::visualizer::NetworkNodeVisualizerBase.

33 { delete networkNodeVisualization; }

◆ findNetworkNodeVisualization()

NetworkNodeCanvasVisualization * inet::visualizer::NetworkNodeCanvasVisualizer::findNetworkNodeVisualization ( const cModule *  networkNode) const
overridevirtual

Implements inet::visualizer::NetworkNodeVisualizerBase.

64 {
65  auto it = networkNodeVisualizations.find(networkNode->getId());
66  return it == networkNodeVisualizations.end() ? nullptr : it->second;
67 }

◆ getNetworkNodeVisualization()

NetworkNodeCanvasVisualization * inet::visualizer::NetworkNodeCanvasVisualizer::getNetworkNodeVisualization ( const cModule *  networkNode) const
overridevirtual

Reimplemented from inet::visualizer::NetworkNodeVisualizerBase.

70 {
71  return static_cast<NetworkNodeCanvasVisualization *>(NetworkNodeVisualizerBase::getNetworkNodeVisualization(networkNode));
72 }

◆ initialize()

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

Reimplemented from inet::visualizer::NetworkNodeVisualizerBase.

28 {
30  if (!hasGUI()) return;
31  if (stage == INITSTAGE_LOCAL) {
32  zIndex = par("zIndex");
33  auto canvas = visualizationTargetModule->getCanvas();
35  for (cModule::SubmoduleIterator it(visualizationSubjectModule); !it.end(); it++) {
36  auto networkNode = *it;
37  if (isNetworkNode(networkNode) && nodeFilter.matches(networkNode)) {
38  auto visualization = createNetworkNodeVisualization(networkNode);
39  addNetworkNodeVisualization(visualization);
40  }
41  }
42  }
43 }

◆ refreshDisplay()

void inet::visualizer::NetworkNodeCanvasVisualizer::refreshDisplay ( ) const
overrideprotectedvirtual
46 {
47  for (auto it : networkNodeVisualizations) {
48  auto networkNode = getSimulation()->getModule(it.first);
49  auto visualization = it.second;
50  auto position = canvasProjection->computeCanvasPoint(getPosition(networkNode));
51  visualization->setTransform(cFigure::Transform().translate(position.x, position.y));
52  visualization->refreshDisplay();
53  }
54 }

◆ removeNetworkNodeVisualization()

void inet::visualizer::NetworkNodeCanvasVisualizer::removeNetworkNodeVisualization ( NetworkNodeVisualization networkNodeVisualization)
overrideprotectedvirtual

Implements inet::visualizer::NetworkNodeVisualizerBase.

82 {
83  auto networkNodeCanvasVisualization = check_and_cast<NetworkNodeCanvasVisualization *>(networkNodeVisualization);
84  networkNodeVisualizations.erase(networkNodeVisualizations.find(networkNodeCanvasVisualization->networkNode->getId()));
85  visualizationTargetModule->getCanvas()->removeFigure(networkNodeCanvasVisualization);
86 }

Member Data Documentation

◆ canvasProjection

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

Referenced by initialize(), and refreshDisplay().

◆ networkNodeVisualizations

std::map<int, NetworkNodeCanvasVisualization *> inet::visualizer::NetworkNodeCanvasVisualizer::networkNodeVisualizations
protected

◆ zIndex

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

The documentation for this class was generated from the following files:
inet::visualizer::NetworkNodeCanvasVisualizer::zIndex
double zIndex
Definition: NetworkNodeCanvasVisualizer.h:23
inet::CanvasProjection::getCanvasProjection
static CanvasProjection * getCanvasProjection(const cCanvas *canvas)
Definition: CanvasProjection.cc:53
inet::visualizer::NetworkNodeVisualizerBase::initialize
virtual void initialize(int stage) override
Definition: NetworkNodeVisualizerBase.cc:17
inet::visualizer::NetworkNodeFilter::matches
bool matches(const cModule *module) const
Definition: NetworkNodeFilter.cc:19
inet::visualizer::VisualizerBase::visualizationTargetModule
cModule * visualizationTargetModule
Definition: VisualizerBase.h:25
inet::visualizer::NetworkNodeCanvasVisualizer::canvasProjection
const CanvasProjection * canvasProjection
Definition: NetworkNodeCanvasVisualizer.h:22
inet::visualizer::NetworkNodeVisualizerBase::nodeFilter
NetworkNodeFilter nodeFilter
Definition: NetworkNodeVisualizerBase.h:31
inet::visualizer::VisualizerBase::getPosition
virtual Coord getPosition(const cModule *networkNode) const
Definition: VisualizerBase.cc:39
inet::visualizer::NetworkNodeVisualizerBase::placementPenalty
double placementPenalty
Definition: NetworkNodeVisualizerBase.h:33
inet::CanvasProjection::computeCanvasPoint
cFigure::Point computeCanvasPoint(const Coord &point) const
Definition: CanvasProjection.cc:34
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::visualizer::NetworkNodeCanvasVisualizer::createNetworkNodeVisualization
virtual NetworkNodeCanvasVisualization * createNetworkNodeVisualization(cModule *networkNode) const override
Definition: NetworkNodeCanvasVisualizer.cc:56
inet::isNetworkNode
bool isNetworkNode(const cModule *mod)
Returns true if the given module is a network node, i.e.
Definition: ModuleAccess.cc:18
inet::visualizer::NetworkNodeVisualizerBase::getNetworkNodeVisualization
virtual NetworkNodeVisualization * getNetworkNodeVisualization(const cModule *networkNode) const
Definition: NetworkNodeVisualizerBase.cc:40
inet::visualizer::NetworkNodeCanvasVisualizer::addNetworkNodeVisualization
virtual void addNetworkNodeVisualization(NetworkNodeVisualization *networkNodeVisualization) override
Definition: NetworkNodeCanvasVisualizer.cc:74
inet::visualizer::VisualizerBase::visualizationSubjectModule
cModule * visualizationSubjectModule
Definition: VisualizerBase.h:26
inet::visualizer::NetworkNodeVisualizerBase::annotationSpacing
double annotationSpacing
Definition: NetworkNodeVisualizerBase.h:32
inet::visualizer::NetworkNodeCanvasVisualizer::networkNodeVisualizations
std::map< int, NetworkNodeCanvasVisualization * > networkNodeVisualizations
Definition: NetworkNodeCanvasVisualizer.h:24