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

#include <RoutingTableOsgVisualizer.h>

Inheritance diagram for inet::visualizer::RoutingTableOsgVisualizer:
inet::visualizer::RoutingTableVisualizerBase inet::visualizer::VisualizerBase

Classes

class  RouteOsgVisualization
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual const RouteVisualizationcreateRouteVisualization (Ipv4Route *route, cModule *node, cModule *nextHop) const override
 
virtual void addRouteVisualization (const RouteVisualization *routeVisualization) override
 
virtual void removeRouteVisualization (const RouteVisualization *routeVisualization) override
 
virtual void refreshRouteVisualization (const RouteVisualization *routeVisualization) const override
 
- Protected Member Functions inherited from inet::visualizer::RoutingTableVisualizerBase
virtual void handleParameterChange (const char *name) override
 
virtual void preDelete (cComponent *root) override
 
virtual void subscribe ()
 
virtual void unsubscribe ()
 
virtual const RouteVisualizationgetRouteVisualization (Ipv4Route *route, int nodeModuleId, int nextHopModuleId)
 
virtual std::vector< Ipv4AddressgetDestinations ()
 
virtual void addRouteVisualizations (IIpv4RoutingTable *routingTable)
 
virtual void removeRouteVisualizations (IIpv4RoutingTable *routingTable)
 
virtual void removeAllRouteVisualizations ()
 
virtual void updateRouteVisualizations (IIpv4RoutingTable *routingTable)
 
virtual void updateAllRouteVisualizations ()
 
virtual std::string getRouteVisualizationText (const Ipv4Route *route) 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
 

Additional Inherited Members

- Public Member Functions inherited from inet::visualizer::RoutingTableVisualizerBase
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *obj, cObject *details) override
 
- Protected Attributes inherited from inet::visualizer::RoutingTableVisualizerBase
bool displayRoutingTables = false
 
bool displayRoutesIndividually = false
 
bool displayLabels = false
 
NetworkNodeFilter destinationFilter
 
NetworkNodeFilter nodeFilter
 
cFigure::Color lineColor
 
cFigure::LineStyle lineStyle
 
double lineShift = NaN
 
const char * lineShiftMode = nullptr
 
double lineWidth = NaN
 
double lineContactSpacing = NaN
 
const char * lineContactMode = nullptr
 
StringFormat labelFormat
 
cFigure::Font labelFont
 
cFigure::Color labelColor
 
LineManagerlineManager = nullptr
 
std::map< std::tuple< Ipv4Address, int, int >, const RouteVisualization * > routeVisualizations
 
- Protected Attributes inherited from inet::visualizer::VisualizerBase
cModule * visualizationTargetModule = nullptr
 
cModule * visualizationSubjectModule = nullptr
 
const char * tags = nullptr
 

Member Function Documentation

◆ addRouteVisualization()

void inet::visualizer::RoutingTableOsgVisualizer::addRouteVisualization ( const RouteVisualization routeVisualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::RoutingTableVisualizerBase.

53 {
55  auto routeOsgVisualization = static_cast<const RouteOsgVisualization *>(routeVisualization);
57  scene->addChild(routeOsgVisualization->node);
58 }

◆ createRouteVisualization()

const RoutingTableVisualizerBase::RouteVisualization * inet::visualizer::RoutingTableOsgVisualizer::createRouteVisualization ( Ipv4Route route,
cModule *  node,
cModule *  nextHop 
) const
overrideprotectedvirtual

Implements inet::visualizer::RoutingTableVisualizerBase.

39 {
40  auto nodePosition = getPosition(node);
41  auto nextHopPosition = getPosition(nextHop);
42  auto osgNode = inet::osg::createLine(nodePosition, nextHopPosition, cFigure::ARROW_NONE, cFigure::ARROW_BARBED);
43  auto stateSet = inet::osg::createStateSet(lineColor, 1.0, false);
44  stateSet->setMode(GL_LIGHTING, osg::StateAttribute::OFF | osg::StateAttribute::OVERRIDE);
45  auto lineWidth = new osg::LineWidth();
46  lineWidth->setWidth(this->lineWidth);
47  stateSet->setAttributeAndModes(lineWidth, osg::StateAttribute::ON);
48  osgNode->setStateSet(stateSet);
49  return new RouteOsgVisualization(osgNode, route, node->getId(), nextHop->getId());
50 }

◆ initialize()

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

Reimplemented from inet::visualizer::RoutingTableVisualizerBase.

29 {
31  if (!hasGUI()) return;
32  if (stage == INITSTAGE_LOCAL) {
33  auto canvas = visualizationTargetModule->getCanvas();
35  }
36 }

◆ refreshRouteVisualization()

void inet::visualizer::RoutingTableOsgVisualizer::refreshRouteVisualization ( const RouteVisualization routeVisualization) const
overrideprotectedvirtual

Implements inet::visualizer::RoutingTableVisualizerBase.

69 {
70  // TODO
71 // auto routeOsgVisualization = static_cast<const RouteOsgVisualization *>(routeVisualization);
72 // auto text = getRouteVisualizationText(routeVisualization->route);
73 }

◆ removeRouteVisualization()

void inet::visualizer::RoutingTableOsgVisualizer::removeRouteVisualization ( const RouteVisualization routeVisualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::RoutingTableVisualizerBase.

61 {
63  auto routeOsgVisualization = static_cast<const RouteOsgVisualization *>(routeVisualization);
64  auto node = routeOsgVisualization->node;
65  node->getParent(0)->removeChild(node);
66 }

The documentation for this class was generated from the following files:
inet::visualizer::RoutingTableVisualizerBase::lineWidth
double lineWidth
Definition: RoutingTableVisualizerBase.h:59
inet::osg::createLine
osg::Node * createLine(const Coord &start, const Coord &end, cFigure::Arrowhead startArrowhead, cFigure::Arrowhead endArrowhead)
Definition: OsgUtils.cc:171
inet::visualizer::VisualizerBase::visualizationTargetModule
cModule * visualizationTargetModule
Definition: VisualizerBase.h:25
inet::osg::TopLevelScene::getSimulationScene
virtual SimulationScene * getSimulationScene()
Definition: OsgScene.cc:22
inet::visualizer::RoutingTableVisualizerBase::removeRouteVisualization
virtual void removeRouteVisualization(const RouteVisualization *routeVisualization)
Definition: RoutingTableVisualizerBase.cc:160
inet::visualizer::RoutingTableVisualizerBase::lineManager
LineManager * lineManager
Definition: RoutingTableVisualizerBase.h:67
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::visualizer::RoutingTableVisualizerBase::initialize
virtual void initialize(int stage) override
Definition: RoutingTableVisualizerBase.cc:66
inet::visualizer::RoutingTableVisualizerBase::lineColor
cFigure::Color lineColor
Definition: RoutingTableVisualizerBase.h:55
inet::osg::createStateSet
StateSet * createStateSet(const cFigure::Color &color, double opacity, bool cullBackFace)
Definition: OsgUtils.cc:273
inet::visualizer::LineManager::getOsgLineManager
static LineManager * getOsgLineManager(const cCanvas *canvas)
Definition: LineManager.cc:24
inet::visualizer::RoutingTableVisualizerBase::addRouteVisualization
virtual void addRouteVisualization(const RouteVisualization *routeVisualization)
Definition: RoutingTableVisualizerBase.cc:151