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

#include <PathOsgVisualizerBase.h>

Inheritance diagram for inet::visualizer::PathOsgVisualizerBase:
inet::visualizer::PathVisualizerBase inet::visualizer::VisualizerBase inet::visualizer::NetworkRouteOsgVisualizer inet::visualizer::PacketFlowOsgVisualizer inet::visualizer::TransportRouteOsgVisualizer

Classes

class  PathOsgVisualization
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual void refreshDisplay () const override
 
virtual const PathVisualizationcreatePathVisualization (const char *label, const std::vector< int > &path, cPacket *packet) const override
 
virtual void addPathVisualization (const PathVisualization *pathVisualization) override
 
virtual void removePathVisualization (const PathVisualization *pathVisualization) override
 
virtual void setAlpha (const PathVisualization *pathVisualization, double alpha) const override
 
- Protected Member Functions inherited from inet::visualizer::PathVisualizerBase
virtual void handleParameterChange (const char *name) override
 
virtual void preDelete (cComponent *root) override
 
virtual void subscribe ()
 
virtual void unsubscribe ()
 
virtual bool isPathStart (cModule *module) const =0
 
virtual bool isPathEnd (cModule *module) const =0
 
virtual bool isPathElement (cModule *module) const =0
 
virtual void processPathStart (cModule *networkNode, const char *label, Packet *packet)
 
virtual void processPathElement (cModule *networkNode, const char *label, Packet *packet)
 
virtual void processPathEnd (cModule *networkNode, const char *label, Packet *packet)
 
virtual const PathVisualizationgetPathVisualization (const std::vector< int > &path)
 
virtual void removeAllPathVisualizations ()
 
virtual const std::vector< int > * getIncompletePath (const std::string &label, int chunkId)
 
virtual void addToIncompletePath (const std::string &label, int chunkId, cModule *module)
 
virtual void removeIncompletePath (const std::string &label, int chunkId)
 
virtual std::string getPathVisualizationText (const PathVisualization *pathVisualization, cPacket *packet) const
 
virtual void refreshPathVisualization (const PathVisualization *pathVisualization, cPacket *packet)
 
- 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::PathVisualizerBase
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override
 
- Protected Attributes inherited from inet::visualizer::PathVisualizerBase
bool displayRoutes = false
 
NetworkNodeFilter nodeFilter
 
PacketFilter packetFilter
 
ColorSet lineColorSet
 
cFigure::LineStyle lineStyle
 
double lineWidth = NaN
 
bool lineSmooth = false
 
double lineShift = NaN
 
const char * lineShiftMode = nullptr
 
double lineContactSpacing = NaN
 
const char * lineContactMode = nullptr
 
StringFormat labelFormat
 
cFigure::Font labelFont
 
const char * labelColorAsString = nullptr
 
cFigure::Color labelColor
 
const char * fadeOutMode = nullptr
 
double fadeOutTime = NaN
 
double fadeOutAnimationSpeed = NaN
 
simsignal_t startPathSignal = -1
 
simsignal_t extendPathSignal = -1
 
simsignal_t endPathSignal = -1
 
LineManagerlineManager = nullptr
 
std::map< std::pair< std::string, int >, std::vector< int > > incompletePaths
 Maps path label and chunk id to module id vector. More...
 
std::map< int, int > numPaths
 Maps nodes to the number of paths that go through it. More...
 
std::multimap< std::pair< int, int >, const PathVisualization * > pathVisualizations
 Maps source/destination modules to multiple paths between them. More...
 
- Protected Attributes inherited from inet::visualizer::VisualizerBase
cModule * visualizationTargetModule = nullptr
 
cModule * visualizationSubjectModule = nullptr
 
const char * tags = nullptr
 

Member Function Documentation

◆ addPathVisualization()

void inet::visualizer::PathOsgVisualizerBase::addPathVisualization ( const PathVisualization pathVisualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::PathVisualizerBase.

58 {
60  auto pathOsgVisualization = static_cast<const PathOsgVisualization *>(pathVisualization);
62  lineManager->addModulePath(pathVisualization);
63  scene->addChild(pathOsgVisualization->node);
64 }

◆ createPathVisualization()

const PathVisualizerBase::PathVisualization * inet::visualizer::PathOsgVisualizerBase::createPathVisualization ( const char *  label,
const std::vector< int > &  path,
cPacket *  packet 
) const
overrideprotectedvirtual

Implements inet::visualizer::PathVisualizerBase.

46 {
47  std::vector<Coord> points;
48  for (auto id : path) {
49  auto node = getSimulation()->getModule(id);
50  points.push_back(getPosition(node));
51  }
52  auto node = inet::osg::createPolyline(points, cFigure::ARROW_NONE, cFigure::ARROW_BARBED);
54  return new PathOsgVisualization(label, path, node);
55 }

◆ initialize()

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

Reimplemented from inet::visualizer::PathVisualizerBase.

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

◆ refreshDisplay()

void inet::visualizer::PathOsgVisualizerBase::refreshDisplay ( ) const
overrideprotectedvirtual

Reimplemented from inet::visualizer::PathVisualizerBase.

39 {
41  // TODO switch to osg canvas when API is extended
42  visualizationTargetModule->getCanvas()->setAnimationSpeed(pathVisualizations.empty() ? 0 : fadeOutAnimationSpeed, this);
43 }

◆ removePathVisualization()

void inet::visualizer::PathOsgVisualizerBase::removePathVisualization ( const PathVisualization pathVisualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::PathVisualizerBase.

67 {
69  auto pathOsgVisualization = static_cast<const PathOsgVisualization *>(pathVisualization);
70  auto node = pathOsgVisualization->node;
71  lineManager->removeModulePath(pathVisualization);
72  node->getParent(0)->removeChild(node);
73 }

◆ setAlpha()

void inet::visualizer::PathOsgVisualizerBase::setAlpha ( const PathVisualization pathVisualization,
double  alpha 
) const
overrideprotectedvirtual

Implements inet::visualizer::PathVisualizerBase.

76 {
77  auto pathOsgVisualization = static_cast<const PathOsgVisualization *>(pathVisualization);
78  auto node = pathOsgVisualization->node;
79  auto stateSet = node->getOrCreateStateSet();
80  auto material = static_cast<osg::Material *>(stateSet->getAttribute(osg::StateAttribute::MATERIAL));
81  material->setAlpha(osg::Material::FRONT_AND_BACK, alpha);
82 }

The documentation for this class was generated from the following files:
inet::visualizer::PathVisualizerBase::removePathVisualization
virtual void removePathVisualization(const PathVisualization *pathVisualization)
Definition: PathVisualizerBase.cc:176
inet::visualizer::LineManager::removeModulePath
void removeModulePath(const ModulePath *modulePath)
Definition: LineManager.cc:94
inet::visualizer::PathVisualizerBase::fadeOutAnimationSpeed
double fadeOutAnimationSpeed
Definition: PathVisualizerBase.h:71
inet::osg::createLineStateSet
StateSet * createLineStateSet(const cFigure::Color &color, const cFigure::LineStyle &style, double width, bool overlay)
Definition: OsgUtils.cc:293
inet::visualizer::PathVisualizerBase::refreshDisplay
virtual void refreshDisplay() const override
Definition: PathVisualizerBase.cc:103
inet::visualizer::VisualizerBase::visualizationTargetModule
cModule * visualizationTargetModule
Definition: VisualizerBase.h:25
inet::osg::TopLevelScene::getSimulationScene
virtual SimulationScene * getSimulationScene()
Definition: OsgScene.cc:22
inet::visualizer::LineManager::addModulePath
void addModulePath(const ModulePath *modulePath)
Definition: LineManager.cc:83
inet::osg::createPolyline
osg::Node * createPolyline(const std::vector< Coord > &coords, cFigure::Arrowhead startArrowhead, cFigure::Arrowhead endArrowhead)
Definition: OsgUtils.cc:185
inet::visualizer::PathVisualizerBase::addPathVisualization
virtual void addPathVisualization(const PathVisualization *pathVisualization)
Definition: PathVisualizerBase.cc:170
inet::visualizer::PathVisualizerBase::lineStyle
cFigure::LineStyle lineStyle
Definition: PathVisualizerBase.h:58
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::PathVisualizerBase::lineColorSet
ColorSet lineColorSet
Definition: PathVisualizerBase.h:57
inet::visualizer::LineManager::getOsgLineManager
static LineManager * getOsgLineManager(const cCanvas *canvas)
Definition: LineManager.cc:24
inet::units::constants::alpha
const value< double, units::unit > alpha(7.2973525376e-3)
inet::visualizer::PathVisualizerBase::lineWidth
double lineWidth
Definition: PathVisualizerBase.h:59
inet::visualizer::PathVisualizerBase::initialize
virtual void initialize(int stage) override
Definition: PathVisualizerBase.cc:59
inet::visualizer::PathVisualizerBase::pathVisualizations
std::multimap< std::pair< int, int >, const PathVisualization * > pathVisualizations
Maps source/destination modules to multiple paths between them.
Definition: PathVisualizerBase.h:89
inet::visualizer::PathVisualizerBase::lineManager
LineManager * lineManager
Definition: PathVisualizerBase.h:77
inet::visualizer::ColorSet::getColor
cFigure::Color getColor(int index) const
Definition: ColorSet.cc:33