INET Framework for OMNeT++/OMNEST
inet::visualizer::NetworkNodeVisualizerBase Class Referenceabstract

#include <NetworkNodeVisualizerBase.h>

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

Classes

class  NetworkNodeVisualization
 

Public Member Functions

virtual NetworkNodeVisualizationfindNetworkNodeVisualization (const cModule *networkNode) const =0
 
virtual NetworkNodeVisualizationgetNetworkNodeVisualization (const cModule *networkNode) const
 
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual void handleParameterChange (const char *name) override
 
virtual NetworkNodeVisualizationcreateNetworkNodeVisualization (cModule *networkNode) const =0
 
virtual void addNetworkNodeVisualization (NetworkNodeVisualization *networkNodeVisualization)=0
 
virtual void removeNetworkNodeVisualization (NetworkNodeVisualization *networkNodeVisualization)=0
 
virtual void destroyNetworkNodeVisualization (NetworkNodeVisualization *networkNodeVisualization)=0
 
- 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

NetworkNodeFilter nodeFilter
 
double annotationSpacing
 
double placementPenalty
 
- Protected Attributes inherited from inet::visualizer::VisualizerBase
cModule * visualizationTargetModule = nullptr
 
cModule * visualizationSubjectModule = nullptr
 
const char * tags = nullptr
 

Member Function Documentation

◆ addNetworkNodeVisualization()

virtual void inet::visualizer::NetworkNodeVisualizerBase::addNetworkNodeVisualization ( NetworkNodeVisualization networkNodeVisualization)
protectedpure virtual

◆ createNetworkNodeVisualization()

virtual NetworkNodeVisualization* inet::visualizer::NetworkNodeVisualizerBase::createNetworkNodeVisualization ( cModule *  networkNode) const
protectedpure virtual

◆ destroyNetworkNodeVisualization()

virtual void inet::visualizer::NetworkNodeVisualizerBase::destroyNetworkNodeVisualization ( NetworkNodeVisualization networkNodeVisualization)
protectedpure virtual

◆ findNetworkNodeVisualization()

virtual NetworkNodeVisualization* inet::visualizer::NetworkNodeVisualizerBase::findNetworkNodeVisualization ( const cModule *  networkNode) const
pure virtual

◆ getNetworkNodeVisualization()

NetworkNodeVisualizerBase::NetworkNodeVisualization * inet::visualizer::NetworkNodeVisualizerBase::getNetworkNodeVisualization ( const cModule *  networkNode) const
virtual

Reimplemented in inet::visualizer::NetworkNodeCanvasVisualizer, and inet::visualizer::NetworkNodeOsgVisualizer.

41 {
42  auto visualization = findNetworkNodeVisualization(networkNode);
43  if (visualization == nullptr)
44  throw cRuntimeError("Network node visualization is not found for '%s'", networkNode->getFullPath().c_str());
45  else
46  return visualization;
47 }

Referenced by inet::visualizer::NetworkNodeCanvasVisualizer::getNetworkNodeVisualization(), inet::visualizer::NetworkNodeOsgVisualizer::getNetworkNodeVisualization(), and receiveSignal().

◆ handleParameterChange()

void inet::visualizer::NetworkNodeVisualizerBase::handleParameterChange ( const char *  name)
overrideprotectedvirtual
31 {
32  if (!hasGUI()) return;
33  if (name != nullptr) {
34  if (!strcmp(name, "nodeFilter"))
35  nodeFilter.setPattern(par("nodeFilter"));
36  // TODO
37  }
38 }

◆ initialize()

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

Reimplemented from inet::visualizer::VisualizerBase.

Reimplemented in inet::visualizer::NetworkNodeCanvasVisualizer, and inet::visualizer::NetworkNodeOsgVisualizer.

18 {
20  if (!hasGUI()) return;
21  if (stage == INITSTAGE_LOCAL) {
22  nodeFilter.setPattern(par("nodeFilter"));
23  annotationSpacing = par("annotationSpacing");
24  placementPenalty = par("placementPenalty");
25  visualizationSubjectModule->subscribe(POST_MODEL_CHANGE, this);
26  visualizationSubjectModule->subscribe(PRE_MODEL_CHANGE, this);
27  }
28 }

Referenced by inet::visualizer::NetworkNodeCanvasVisualizer::initialize(), and inet::visualizer::NetworkNodeOsgVisualizer::initialize().

◆ receiveSignal()

void inet::visualizer::NetworkNodeVisualizerBase::receiveSignal ( cComponent *  source,
simsignal_t  signal,
cObject *  object,
cObject *  details 
)
overridevirtual
50 {
51  Enter_Method("%s", cComponent::getSignalName(signal));
52 
53  if (signal == POST_MODEL_CHANGE) {
54  if (auto moduleInit = dynamic_cast<cPreModuleInitNotification *>(object)) {
55  auto module = moduleInit->module;
56  if (isNetworkNode(module) && nodeFilter.matches(module)) {
57  auto visualization = createNetworkNodeVisualization(module);
58  addNetworkNodeVisualization(visualization);
59  }
60  }
61  }
62  else if (signal == PRE_MODEL_CHANGE) {
63  if (auto moduleDelete = dynamic_cast<cPreModuleDeleteNotification *>(object)) {
64  auto module = moduleDelete->module;
65  if (isNetworkNode(module) && nodeFilter.matches(module)) {
66  auto visualization = getNetworkNodeVisualization(module);
67  removeNetworkNodeVisualization(visualization);
68  destroyNetworkNodeVisualization(visualization);
69  }
70  }
71  }
72  else
73  throw cRuntimeError("Unknown signal");
74 }

◆ removeNetworkNodeVisualization()

virtual void inet::visualizer::NetworkNodeVisualizerBase::removeNetworkNodeVisualization ( NetworkNodeVisualization networkNodeVisualization)
protectedpure virtual

Member Data Documentation

◆ annotationSpacing

double inet::visualizer::NetworkNodeVisualizerBase::annotationSpacing
protected

◆ nodeFilter

◆ placementPenalty

double inet::visualizer::NetworkNodeVisualizerBase::placementPenalty
protected

The documentation for this class was generated from the following files:
inet::visualizer::NetworkNodeVisualizerBase::createNetworkNodeVisualization
virtual NetworkNodeVisualization * createNetworkNodeVisualization(cModule *networkNode) const =0
inet::visualizer::NetworkNodeFilter::matches
bool matches(const cModule *module) const
Definition: NetworkNodeFilter.cc:19
inet::visualizer::NetworkNodeVisualizerBase::nodeFilter
NetworkNodeFilter nodeFilter
Definition: NetworkNodeVisualizerBase.h:31
inet::visualizer::NetworkNodeFilter::setPattern
void setPattern(const char *pattern)
Definition: NetworkNodeFilter.cc:14
inet::visualizer::NetworkNodeVisualizerBase::placementPenalty
double placementPenalty
Definition: NetworkNodeVisualizerBase.h:33
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
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::NetworkNodeVisualizerBase::addNetworkNodeVisualization
virtual void addNetworkNodeVisualization(NetworkNodeVisualization *networkNodeVisualization)=0
Enter_Method
#define Enter_Method(...)
Definition: SelfDoc.h:71
inet::visualizer::NetworkNodeVisualizerBase::destroyNetworkNodeVisualization
virtual void destroyNetworkNodeVisualization(NetworkNodeVisualization *networkNodeVisualization)=0
inet::visualizer::VisualizerBase::visualizationSubjectModule
cModule * visualizationSubjectModule
Definition: VisualizerBase.h:26
inet::visualizer::NetworkNodeVisualizerBase::findNetworkNodeVisualization
virtual NetworkNodeVisualization * findNetworkNodeVisualization(const cModule *networkNode) const =0
inet::visualizer::NetworkNodeVisualizerBase::removeNetworkNodeVisualization
virtual void removeNetworkNodeVisualization(NetworkNodeVisualization *networkNodeVisualization)=0
inet::visualizer::NetworkNodeVisualizerBase::annotationSpacing
double annotationSpacing
Definition: NetworkNodeVisualizerBase.h:32
inet::visualizer::VisualizerBase::initialize
virtual void initialize(int stage) override
Definition: VisualizerBase.cc:23