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

#include <InfoOsgVisualizer.h>

Inheritance diagram for inet::visualizer::InfoOsgVisualizer:
inet::visualizer::InfoVisualizerBase inet::visualizer::VisualizerBase

Classes

class  InfoOsgVisualization
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual InfoVisualizationcreateInfoVisualization (cModule *module) const override
 
virtual void refreshInfoVisualization (const InfoVisualization *infoVisualization, const char *info) const override
 
- Protected Member Functions inherited from inet::visualizer::InfoVisualizerBase
virtual void handleParameterChange (const char *name) override
 
virtual void refreshDisplay () const override
 
virtual void addInfoVisualization (const InfoVisualization *infoVisualization)
 
virtual void addInfoVisualizations ()
 
virtual void removeInfoVisualization (const InfoVisualization *infoVisualization)
 
virtual void removeAllInfoVisualizations ()
 
virtual const char * getInfoVisualizationText (cModule *module) const
 
- 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

ModuleRefByPar< NetworkNodeOsgVisualizernetworkNodeVisualizer
 
- Protected Attributes inherited from inet::visualizer::InfoVisualizerBase
bool displayInfos = false
 
ModuleFilter modules
 
StringFormat format
 
cFigure::Font font
 
cFigure::Color textColor
 
cFigure::Color backgroundColor
 
double opacity = NaN
 
Placement placementHint
 
double placementPriority
 
std::vector< const InfoVisualization * > infoVisualizations
 
- 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::InfoVisualizerBase
virtual void preDelete (cComponent *root) override
 

Member Function Documentation

◆ createInfoVisualization()

InfoVisualizerBase::InfoVisualization * inet::visualizer::InfoOsgVisualizer::createInfoVisualization ( cModule *  module) const
overrideprotectedvirtual

Implements inet::visualizer::InfoVisualizerBase.

42 {
43  auto text = new osgText::Text();
44  text->setCharacterSize(18);
45  text->setBoundingBoxColor(osg::Vec4(backgroundColor.red / 255.0, backgroundColor.green / 255.0, backgroundColor.blue / 255.0, 0.5));
46  text->setColor(osg::Vec4(textColor.red / 255.0, textColor.green / 255.0, textColor.blue / 255.0, 1.0));
47  text->setAlignment(osgText::Text::CENTER_BOTTOM);
48  text->setText("");
49  text->setDrawMode(osgText::Text::FILLEDBOUNDINGBOX | osgText::Text::TEXT);
50  text->setPosition(osg::Vec3(0.0, 0.0, 0.0));
51  auto geode = new osg::Geode();
52  geode->getOrCreateStateSet()->setMode(GL_LIGHTING, osg::StateAttribute::OFF | osg::StateAttribute::OVERRIDE);
53  geode->addDrawable(text);
54  auto networkNode = getContainingNode(module);
55  auto networkNodeVisualization = networkNodeVisualizer->getNetworkNodeVisualization(networkNode);
56  return new InfoOsgVisualization(networkNodeVisualization, geode, module->getId());
57 }

◆ initialize()

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

Reimplemented from inet::visualizer::InfoVisualizerBase.

26 {
28  if (!hasGUI()) return;
29  if (stage == INITSTAGE_LOCAL) {
30  networkNodeVisualizer.reference(this, "networkNodeVisualizerModule", true);
31  }
32  else if (stage == INITSTAGE_LAST) {
33  for (auto infoVisualization : infoVisualizations) {
34  auto infoOsgVisualization = static_cast<const InfoOsgVisualization *>(infoVisualization);
35  auto node = infoOsgVisualization->node;
36  infoOsgVisualization->networkNodeVisualization->addAnnotation(node, osg::Vec3d(0, 0, 0), 0);
37  }
38  }
39 }

◆ refreshInfoVisualization()

void inet::visualizer::InfoOsgVisualizer::refreshInfoVisualization ( const InfoVisualization infoVisualization,
const char *  info 
) const
overrideprotectedvirtual

Implements inet::visualizer::InfoVisualizerBase.

60 {
61  auto infoOsgVisualization = static_cast<const InfoOsgVisualization *>(infoVisualization);
62  auto node = infoOsgVisualization->node;
63  auto text = static_cast<osgText::Text *>(node->getDrawable(0));
64  text->setText(info);
65 }

Member Data Documentation

◆ networkNodeVisualizer

ModuleRefByPar<NetworkNodeOsgVisualizer> inet::visualizer::InfoOsgVisualizer::networkNodeVisualizer
protected

The documentation for this class was generated from the following files:
inet::INITSTAGE_LAST
INET_API InitStage INITSTAGE_LAST
Operations that no other initializations can depend on, e.g.
inet::visualizer::InfoVisualizerBase::initialize
virtual void initialize(int stage) override
Definition: InfoVisualizerBase.cc:49
inet::getContainingNode
cModule * getContainingNode(const cModule *from)
Find the node containing the given module.
Definition: ModuleAccess.cc:40
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::visualizer::InfoOsgVisualizer::networkNodeVisualizer
ModuleRefByPar< NetworkNodeOsgVisualizer > networkNodeVisualizer
Definition: InfoOsgVisualizer.h:34
inet::visualizer::InfoVisualizerBase::infoVisualizations
std::vector< const InfoVisualization * > infoVisualizations
Definition: InfoVisualizerBase.h:56
inet::visualizer::InfoVisualizerBase::backgroundColor
cFigure::Color backgroundColor
Definition: InfoVisualizerBase.h:50
inet::visualizer::InfoVisualizerBase::textColor
cFigure::Color textColor
Definition: InfoVisualizerBase.h:49