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

#include <NetworkNodeOsgVisualizer.h>

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

Public Member Functions

virtual ~NetworkNodeOsgVisualizer ()
 
virtual NetworkNodeOsgVisualizationfindNetworkNodeVisualization (const cModule *networkNode) const override
 
virtual NetworkNodeOsgVisualizationgetNetworkNodeVisualization (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 NetworkNodeOsgVisualizationcreateNetworkNodeVisualization (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

bool displayModuleName
 
std::map< int, osg::ref_ptr< NetworkNodeOsgVisualization > > 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

◆ ~NetworkNodeOsgVisualizer()

inet::visualizer::NetworkNodeOsgVisualizer::~NetworkNodeOsgVisualizer ( )
virtual
23 {
24  for (auto& it : networkNodeVisualizations) {
25  auto networkNodeVisualization = it.second;
26  while (networkNodeVisualization->getNumAnnotations() != 0)
27  networkNodeVisualization->removeAnnotation(0);
28  }
29 }

Member Function Documentation

◆ addNetworkNodeVisualization()

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

Implements inet::visualizer::NetworkNodeVisualizerBase.

76 {
77  auto networkNodeOsgVisualization = check_and_cast<NetworkNodeOsgVisualization *>(networkNodeVisualization);
78  networkNodeVisualizations[networkNodeOsgVisualization->networkNode->getId()] = networkNodeOsgVisualization;
80  scene->addChild(networkNodeOsgVisualization);
81 }

Referenced by initialize().

◆ createNetworkNodeVisualization()

NetworkNodeOsgVisualization * inet::visualizer::NetworkNodeOsgVisualizer::createNetworkNodeVisualization ( cModule *  networkNode) const
overrideprotectedvirtual

Implements inet::visualizer::NetworkNodeVisualizerBase.

60 {
61  return new NetworkNodeOsgVisualization(networkNode, displayModuleName);
62 }

Referenced by initialize().

◆ destroyNetworkNodeVisualization()

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

◆ findNetworkNodeVisualization()

NetworkNodeOsgVisualization * inet::visualizer::NetworkNodeOsgVisualizer::findNetworkNodeVisualization ( const cModule *  networkNode) const
overridevirtual

Implements inet::visualizer::NetworkNodeVisualizerBase.

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

◆ getNetworkNodeVisualization()

NetworkNodeOsgVisualization * inet::visualizer::NetworkNodeOsgVisualizer::getNetworkNodeVisualization ( const cModule *  networkNode) const
overridevirtual

Reimplemented from inet::visualizer::NetworkNodeVisualizerBase.

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

◆ initialize()

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

Reimplemented from inet::visualizer::NetworkNodeVisualizerBase.

32 {
34  if (!hasGUI()) return;
35  if (stage == INITSTAGE_LOCAL) {
36  displayModuleName = par("displayModuleName");
37  for (cModule::SubmoduleIterator it(visualizationSubjectModule); !it.end(); it++) {
38  auto networkNode = *it;
39  if (isNetworkNode(networkNode) && nodeFilter.matches(networkNode)) {
40  auto visualization = createNetworkNodeVisualization(networkNode);
41  addNetworkNodeVisualization(visualization);
42  }
43  }
44  }
45 }

◆ refreshDisplay()

void inet::visualizer::NetworkNodeOsgVisualizer::refreshDisplay ( ) const
overrideprotectedvirtual
48 {
49  for (auto it : networkNodeVisualizations) {
50  auto networkNode = getSimulation()->getModule(it.first);
51  auto visualization = it.second;
52  auto position = getPosition(networkNode);
53  auto orientation = getOrientation(networkNode);
54  visualization->setPosition(osg::Vec3d(position.x, position.y, position.z));
55  visualization->setAttitude(osg::Quat(osg::Vec4d(orientation.v.x, orientation.v.y, orientation.v.z, orientation.s)));
56  }
57 }

◆ removeNetworkNodeVisualization()

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

Implements inet::visualizer::NetworkNodeVisualizerBase.

84 {
85  auto networkNodeOsgVisualization = check_and_cast<NetworkNodeOsgVisualization *>(networkNodeVisualization);
86  networkNodeVisualizations.erase(networkNodeVisualizations.find(networkNodeOsgVisualization->networkNode->getId()));
88  scene->removeChild(networkNodeOsgVisualization);
89 }

Member Data Documentation

◆ displayModuleName

bool inet::visualizer::NetworkNodeOsgVisualizer::displayModuleName
protected

◆ networkNodeVisualizations

std::map<int, osg::ref_ptr<NetworkNodeOsgVisualization> > inet::visualizer::NetworkNodeOsgVisualizer::networkNodeVisualizations
protected

The documentation for this class was generated from the following files:
inet::visualizer::NetworkNodeOsgVisualizer::addNetworkNodeVisualization
virtual void addNetworkNodeVisualization(NetworkNodeVisualization *networkNodeVisualization) override
Definition: NetworkNodeOsgVisualizer.cc:75
inet::visualizer::NetworkNodeVisualizerBase::initialize
virtual void initialize(int stage) override
Definition: NetworkNodeVisualizerBase.cc:17
inet::visualizer::NetworkNodeOsgVisualizer::createNetworkNodeVisualization
virtual NetworkNodeOsgVisualization * createNetworkNodeVisualization(cModule *networkNode) const override
Definition: NetworkNodeOsgVisualizer.cc:59
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::osg::TopLevelScene::getSimulationScene
virtual SimulationScene * getSimulationScene()
Definition: OsgScene.cc:22
inet::visualizer::NetworkNodeVisualizerBase::nodeFilter
NetworkNodeFilter nodeFilter
Definition: NetworkNodeVisualizerBase.h:31
inet::visualizer::VisualizerBase::getOrientation
virtual Quaternion getOrientation(const cModule *networkNode) const
Definition: VisualizerBase.cc:81
inet::visualizer::NetworkNodeOsgVisualizer::displayModuleName
bool displayModuleName
Definition: NetworkNodeOsgVisualizer.h:23
inet::visualizer::VisualizerBase::getPosition
virtual Coord getPosition(const cModule *networkNode) const
Definition: VisualizerBase.cc:39
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::VisualizerBase::visualizationSubjectModule
cModule * visualizationSubjectModule
Definition: VisualizerBase.h:26
inet::visualizer::NetworkNodeOsgVisualizer::networkNodeVisualizations
std::map< int, osg::ref_ptr< NetworkNodeOsgVisualization > > networkNodeVisualizations
Definition: NetworkNodeOsgVisualizer.h:24