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

#include <VisualizerBase.h>

Inheritance diagram for inet::visualizer::VisualizerBase:
inet::visualizer::EnergyStorageVisualizerBase inet::visualizer::GateScheduleVisualizerBase inet::visualizer::Ieee80211VisualizerBase inet::visualizer::InfoVisualizerBase inet::visualizer::InterfaceTableVisualizerBase inet::visualizer::LinkBreakVisualizerBase inet::visualizer::LinkVisualizerBase inet::visualizer::MediumVisualizerBase inet::visualizer::MobilityVisualizerBase inet::visualizer::NetworkConnectionVisualizerBase inet::visualizer::NetworkNodeVisualizerBase inet::visualizer::PacketDropVisualizerBase inet::visualizer::PathVisualizerBase inet::visualizer::PhysicalEnvironmentVisualizerBase inet::visualizer::QueueVisualizerBase inet::visualizer::RadioVisualizerBase inet::visualizer::RoutingTableVisualizerBase inet::visualizer::SceneVisualizerBase inet::visualizer::StatisticVisualizerBase inet::visualizer::TracingObstacleLossVisualizerBase inet::visualizer::TransportConnectionVisualizerBase inet::visualizer::TreeVisualizerBase

Protected Member Functions

virtual int numInitStages () const override
 
virtual void initialize (int stage) 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

cModule * visualizationTargetModule = nullptr
 
cModule * visualizationSubjectModule = nullptr
 
const char * tags = nullptr
 

Member Function Documentation

◆ getContactPosition()

Coord inet::visualizer::VisualizerBase::getContactPosition ( const cModule *  networkNode,
const Coord fromPosition,
const char *  contactMode,
double  contactSpacing 
) const
protectedvirtual
52 {
53  double zoomLevel = getEnvir()->getZoomLevel(networkNode->getParentModule());
54  if (std::isnan(zoomLevel))
55  zoomLevel = 1.0;
56 
57  if (!strcmp(contactMode, "circular")) {
58  auto bounds = getSimulation()->getEnvir()->getSubmoduleBounds(networkNode);
59  auto size = bounds.getSize();
60  auto radius = std::sqrt(size.x * size.x + size.y * size.y) / 2;
61  auto position = getPosition(networkNode);
62  auto direction = fromPosition - position;
63  direction.normalize();
64  direction *= radius + contactSpacing;
65  direction /= zoomLevel;
66  return position + direction;
67  }
68  else if (!strcmp(contactMode, "rectangular")) {
69  auto position = getPosition(networkNode);
70  auto bounds = getSimulation()->getEnvir()->getSubmoduleBounds(networkNode);
71  auto size = bounds.getSize();
72  Cuboid networkNodeShape(Coord(size.x + 2 * contactSpacing / zoomLevel, size.y + 2 * contactSpacing / zoomLevel, 1));
73  Coord intersection1, intersection2, normal1, normal2;
74  networkNodeShape.computeIntersection(LineSegment(Coord::ZERO, fromPosition - position), intersection1, intersection2, normal1, normal2);
75  return position + intersection2;
76  }
77  else
78  throw cRuntimeError("Unknown contact mode: %s", contactMode);
79 }

Referenced by inet::visualizer::LinkOsgVisualizerBase::refreshDisplay(), inet::visualizer::TreeCanvasVisualizerBase::refreshDisplay(), inet::visualizer::RoutingTableCanvasVisualizer::refreshDisplay(), inet::visualizer::PathCanvasVisualizerBase::refreshDisplay(), and inet::visualizer::LinkCanvasVisualizerBase::refreshDisplay().

◆ getOrientation()

Quaternion inet::visualizer::VisualizerBase::getOrientation ( const cModule *  networkNode) const
protectedvirtual
82 {
83  auto mobility = networkNode->getSubmodule("mobility");
84  if (mobility == nullptr)
85  return Quaternion::IDENTITY;
86  else
87  return check_and_cast<IMobility *>(mobility)->getCurrentAngularPosition();
88 }

Referenced by inet::visualizer::NetworkNodeOsgVisualizer::refreshDisplay().

◆ getPosition()

Coord inet::visualizer::VisualizerBase::getPosition ( const cModule *  networkNode) const
protectedvirtual

◆ initialize()

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

Reimplemented in inet::visualizer::PacketDropVisualizerBase, inet::visualizer::PathVisualizerBase, inet::visualizer::LinkVisualizerBase, inet::visualizer::StatisticVisualizerBase, inet::visualizer::RoutingTableVisualizerBase, inet::visualizer::GateScheduleVisualizerBase, inet::visualizer::MobilityVisualizerBase, inet::visualizer::RadioVisualizerBase, inet::visualizer::InterfaceTableVisualizerBase, inet::visualizer::TreeVisualizerBase, inet::visualizer::TransportConnectionVisualizerBase, inet::visualizer::InfoVisualizerBase, inet::visualizer::QueueVisualizerBase, inet::visualizer::LinkBreakVisualizerBase, inet::visualizer::Ieee80211VisualizerBase, inet::visualizer::TracingObstacleLossCanvasVisualizer, inet::visualizer::TracingObstacleLossVisualizerBase, inet::visualizer::EnergyStorageVisualizerBase, inet::visualizer::PhysicalEnvironmentCanvasVisualizer, inet::visualizer::RadioCanvasVisualizer, inet::visualizer::GateScheduleCanvasVisualizer, inet::visualizer::InfoCanvasVisualizer, inet::visualizer::PacketDropCanvasVisualizer, inet::visualizer::QueueCanvasVisualizer, inet::visualizer::InterfaceTableCanvasVisualizer, inet::visualizer::MobilityCanvasVisualizer, inet::visualizer::EnergyStorageCanvasVisualizer, inet::visualizer::TransportConnectionCanvasVisualizer, inet::visualizer::Ieee80211CanvasVisualizer, inet::visualizer::StatisticOsgVisualizer, inet::visualizer::InterfaceTableOsgVisualizer, inet::visualizer::LinkCanvasVisualizerBase, inet::visualizer::PathCanvasVisualizerBase, inet::visualizer::TreeCanvasVisualizerBase, inet::visualizer::StatisticCanvasVisualizer, inet::visualizer::RoutingTableCanvasVisualizer, inet::visualizer::GateScheduleOsgVisualizer, inet::visualizer::InfoOsgVisualizer, inet::visualizer::QueueOsgVisualizer, inet::visualizer::RadioOsgVisualizer, inet::visualizer::EnergyStorageOsgVisualizer, inet::visualizer::NetworkNodeVisualizerBase, inet::visualizer::LinkBreakCanvasVisualizer, inet::visualizer::Ieee80211OsgVisualizer, inet::visualizer::TransportConnectionOsgVisualizer, inet::visualizer::TracingObstacleLossOsgVisualizer, inet::visualizer::LinkOsgVisualizerBase, inet::visualizer::PathOsgVisualizerBase, inet::visualizer::MobilityOsgVisualizer, inet::visualizer::RoutingTableOsgVisualizer, inet::visualizer::PhysicalEnvironmentVisualizerBase, inet::visualizer::OpenStreetMapSceneCanvasVisualizer, inet::visualizer::NetworkConnectionVisualizerBase, inet::visualizer::NetworkNodeCanvasVisualizer, inet::visualizer::NetworkNodeOsgVisualizer, inet::visualizer::SceneCanvasVisualizer, inet::visualizer::SceneVisualizerBase, inet::visualizer::NetworkConnectionCanvasVisualizer, inet::visualizer::PhysicalEnvironmentOsgVisualizer, inet::visualizer::FailureProtectionConfigurationCanvasVisualizer, inet::visualizer::StreamRedundancyConfigurationCanvasVisualizer, inet::visualizer::SceneOsgVisualizer, and inet::visualizer::NetworkConnectionOsgVisualizer.

24 {
25  cSimpleModule::initialize(stage);
26  if (!hasGUI()) return;
27  if (stage == INITSTAGE_LOCAL) {
28  const char *path = par("visualizationTargetModule");
29  visualizationTargetModule = getModuleByPath(path);
30  if (visualizationTargetModule == nullptr)
31  throw cRuntimeError("Module not found on path '%s' defined by par 'visualizationTargetModule'", path);
32  visualizationSubjectModule = getModuleByPath(path);
33  if (visualizationSubjectModule == nullptr)
34  throw cRuntimeError("Module not found on path '%s' defined by par 'visualizationSubjectModule'", path);
35  tags = par("tags");
36  }
37 }

Referenced by inet::visualizer::SceneVisualizerBase::initialize(), inet::visualizer::NetworkConnectionVisualizerBase::initialize(), inet::visualizer::PhysicalEnvironmentVisualizerBase::initialize(), inet::visualizer::NetworkNodeVisualizerBase::initialize(), inet::visualizer::EnergyStorageVisualizerBase::initialize(), inet::visualizer::TracingObstacleLossVisualizerBase::initialize(), inet::visualizer::Ieee80211VisualizerBase::initialize(), inet::visualizer::LinkBreakVisualizerBase::initialize(), inet::visualizer::QueueVisualizerBase::initialize(), inet::visualizer::InfoVisualizerBase::initialize(), inet::visualizer::TransportConnectionVisualizerBase::initialize(), inet::visualizer::TreeVisualizerBase::initialize(), inet::visualizer::InterfaceTableVisualizerBase::initialize(), inet::visualizer::RadioVisualizerBase::initialize(), inet::visualizer::MobilityVisualizerBase::initialize(), inet::visualizer::GateScheduleVisualizerBase::initialize(), inet::visualizer::RoutingTableVisualizerBase::initialize(), inet::visualizer::StatisticVisualizerBase::initialize(), inet::visualizer::LinkVisualizerBase::initialize(), inet::visualizer::PathVisualizerBase::initialize(), and inet::visualizer::PacketDropVisualizerBase::initialize().

◆ mapChunks()

void inet::visualizer::VisualizerBase::mapChunks ( const Ptr< const Chunk > &  chunk,
const std::function< void(const Ptr< const Chunk > &, int)> &  thunk 
) const
protectedvirtual
91 {
92  if (chunk->getChunkType() == Chunk::CT_SEQUENCE) {
93  for (const auto& elementChunk : staticPtrCast<const SequenceChunk>(chunk)->getChunks())
94  mapChunks(elementChunk, thunk);
95  }
96  else if (chunk->getChunkType() == Chunk::CT_SLICE)
97  thunk(chunk, staticPtrCast<const SliceChunk>(chunk)->getChunk()->getChunkId());
98  else
99  thunk(chunk, chunk->getChunkId());
100 }

Referenced by inet::visualizer::PacketFlowCanvasVisualizer::processPathElement(), inet::visualizer::PathVisualizerBase::processPathElement(), inet::visualizer::PathVisualizerBase::processPathEnd(), inet::visualizer::PathVisualizerBase::processPathStart(), and inet::visualizer::LinkVisualizerBase::receiveSignal().

◆ numInitStages()

virtual int inet::visualizer::VisualizerBase::numInitStages ( ) const
inlineoverrideprotectedvirtual
30 { return NUM_INIT_STAGES; }

Member Data Documentation

◆ tags

const char* inet::visualizer::VisualizerBase::tags = nullptr
protected

Referenced by inet::visualizer::TransportConnectionCanvasVisualizer::createConnectionEndFigure(), inet::visualizer::EnergyStorageCanvasVisualizer::createEnergyStorageVisualization(), inet::visualizer::GateScheduleCanvasVisualizer::createGateVisualization(), inet::visualizer::Ieee80211CanvasVisualizer::createIeee80211Visualization(), inet::visualizer::InfoCanvasVisualizer::createInfoVisualization(), inet::visualizer::InterfaceTableCanvasVisualizer::createInterfaceVisualization(), inet::visualizer::LinkBreakCanvasVisualizer::createLinkBreakVisualization(), inet::visualizer::DataLinkCanvasVisualizer::createLinkVisualization(), inet::visualizer::PhysicalLinkCanvasVisualizer::createLinkVisualization(), inet::visualizer::MobilityCanvasVisualizer::createMobilityVisualization(), inet::visualizer::TracingObstacleLossCanvasVisualizer::createObstacleLossVisualization(), inet::visualizer::PacketDropCanvasVisualizer::createPacketDropVisualization(), inet::visualizer::TransportRouteCanvasVisualizer::createPathVisualization(), inet::visualizer::NetworkRouteCanvasVisualizer::createPathVisualization(), inet::visualizer::PacketFlowCanvasVisualizer::createPathVisualization(), inet::visualizer::QueueCanvasVisualizer::createQueueVisualization(), inet::visualizer::RadioCanvasVisualizer::createRadioVisualization(), inet::visualizer::RoutingTableCanvasVisualizer::createRouteVisualization(), inet::visualizer::StatisticCanvasVisualizer::createStatisticVisualization(), inet::visualizer::FailureProtectionConfigurationCanvasVisualizer::createTreeVisualization(), inet::visualizer::StreamRedundancyConfigurationCanvasVisualizer::createTreeVisualization(), inet::visualizer::MobilityCanvasVisualizer::extendMovementTrail(), initialize(), and inet::visualizer::SceneCanvasVisualizer::initializeAxis().

◆ visualizationSubjectModule

cModule* inet::visualizer::VisualizerBase::visualizationSubjectModule = nullptr
protected

Referenced by inet::visualizer::InterfaceTableVisualizerBase::addAllInterfaceVisualizations(), inet::visualizer::GateScheduleVisualizerBase::addGateVisualizations(), inet::visualizer::QueueVisualizerBase::addQueueVisualizations(), inet::visualizer::LinkBreakVisualizerBase::findNode(), inet::visualizer::RoutingTableVisualizerBase::getDestinations(), inet::visualizer::SceneOsgVisualizerBase::getNetworkBoundingSphere(), inet::visualizer::NetworkNodeOsgVisualizer::initialize(), inet::visualizer::NetworkConnectionVisualizerBase::initialize(), inet::visualizer::NetworkNodeCanvasVisualizer::initialize(), initialize(), inet::visualizer::NetworkNodeVisualizerBase::initialize(), inet::visualizer::Ieee80211VisualizerBase::subscribe(), inet::visualizer::LinkBreakVisualizerBase::subscribe(), inet::visualizer::TransportConnectionVisualizerBase::subscribe(), inet::visualizer::InterfaceTableVisualizerBase::subscribe(), inet::visualizer::RadioVisualizerBase::subscribe(), inet::visualizer::MobilityVisualizerBase::subscribe(), inet::visualizer::RoutingTableVisualizerBase::subscribe(), inet::visualizer::StatisticVisualizerBase::subscribe(), inet::visualizer::LinkVisualizerBase::subscribe(), inet::visualizer::PathVisualizerBase::subscribe(), inet::visualizer::PacketDropVisualizerBase::subscribe(), inet::visualizer::Ieee80211VisualizerBase::unsubscribe(), inet::visualizer::LinkBreakVisualizerBase::unsubscribe(), inet::visualizer::TransportConnectionVisualizerBase::unsubscribe(), inet::visualizer::InterfaceTableVisualizerBase::unsubscribe(), inet::visualizer::RadioVisualizerBase::unsubscribe(), inet::visualizer::MobilityVisualizerBase::unsubscribe(), inet::visualizer::RoutingTableVisualizerBase::unsubscribe(), inet::visualizer::StatisticVisualizerBase::unsubscribe(), inet::visualizer::LinkVisualizerBase::unsubscribe(), inet::visualizer::PathVisualizerBase::unsubscribe(), inet::visualizer::PacketDropVisualizerBase::unsubscribe(), and inet::visualizer::RoutingTableVisualizerBase::updateAllRouteVisualizations().

◆ visualizationTargetModule

cModule* inet::visualizer::VisualizerBase::visualizationTargetModule = nullptr
protected

Referenced by inet::visualizer::LinkBreakOsgVisualizer::addLinkBreakVisualization(), inet::visualizer::LinkOsgVisualizerBase::addLinkVisualization(), inet::visualizer::LinkVisualizerBase::addLinkVisualization(), inet::visualizer::MobilityOsgVisualizer::addMobilityVisualization(), inet::visualizer::MobilityCanvasVisualizer::addMobilityVisualization(), inet::visualizer::NetworkNodeCanvasVisualizer::addNetworkNodeVisualization(), inet::visualizer::NetworkNodeOsgVisualizer::addNetworkNodeVisualization(), inet::visualizer::PacketDropOsgVisualizer::addPacketDropVisualization(), inet::visualizer::PathOsgVisualizerBase::addPathVisualization(), inet::visualizer::RoutingTableOsgVisualizer::addRouteVisualization(), inet::visualizer::NetworkConnectionOsgVisualizer::createNetworkConnectionVisualization(), inet::visualizer::NetworkConnectionCanvasVisualizer::createNetworkConnectionVisualization(), inet::visualizer::SceneCanvasVisualizer::displayDescription(), inet::visualizer::NetworkConnectionCanvasVisualizer::initialize(), inet::visualizer::SceneCanvasVisualizer::initialize(), inet::visualizer::NetworkNodeCanvasVisualizer::initialize(), inet::visualizer::RoutingTableOsgVisualizer::initialize(), initialize(), inet::visualizer::PathOsgVisualizerBase::initialize(), inet::visualizer::LinkOsgVisualizerBase::initialize(), inet::visualizer::LinkBreakCanvasVisualizer::initialize(), inet::visualizer::RoutingTableCanvasVisualizer::initialize(), inet::visualizer::LinkCanvasVisualizerBase::initialize(), inet::visualizer::TreeCanvasVisualizerBase::initialize(), inet::visualizer::PathCanvasVisualizerBase::initialize(), inet::visualizer::TransportConnectionCanvasVisualizer::initialize(), inet::visualizer::MobilityCanvasVisualizer::initialize(), inet::visualizer::PacketDropCanvasVisualizer::initialize(), inet::visualizer::RadioCanvasVisualizer::initialize(), inet::visualizer::TracingObstacleLossCanvasVisualizer::initialize(), inet::visualizer::SceneOsgVisualizerBase::initializeAxis(), inet::visualizer::SceneOsgVisualizerBase::initializeScene(), inet::visualizer::SceneOsgVisualizer::initializeScene(), inet::visualizer::SceneOsgVisualizerBase::initializeSceneFloor(), inet::visualizer::SceneOsgVisualizer::initializeViewpoint(), inet::visualizer::PacketDropOsgVisualizer::refreshDisplay(), inet::visualizer::LinkBreakOsgVisualizer::refreshDisplay(), inet::visualizer::LinkOsgVisualizerBase::refreshDisplay(), inet::visualizer::PathOsgVisualizerBase::refreshDisplay(), inet::visualizer::MobilityOsgVisualizer::refreshDisplay(), inet::visualizer::LinkBreakCanvasVisualizer::refreshDisplay(), inet::visualizer::PathCanvasVisualizerBase::refreshDisplay(), inet::visualizer::LinkCanvasVisualizerBase::refreshDisplay(), inet::visualizer::MobilityCanvasVisualizer::refreshDisplay(), inet::visualizer::PacketDropCanvasVisualizer::refreshDisplay(), inet::visualizer::TracingObstacleLossCanvasVisualizer::refreshDisplay(), inet::visualizer::MobilityOsgVisualizer::removeMobilityVisualization(), inet::visualizer::MobilityCanvasVisualizer::removeMobilityVisualization(), inet::visualizer::NetworkNodeOsgVisualizer::removeNetworkNodeVisualization(), and inet::visualizer::NetworkNodeCanvasVisualizer::removeNetworkNodeVisualization().


The documentation for this class was generated from the following files:
inet::Coord::ZERO
static const Coord ZERO
Definition: Coord.h:27
inet::visualizer::VisualizerBase::visualizationTargetModule
cModule * visualizationTargetModule
Definition: VisualizerBase.h:25
inet::units::sqrt
value< Value, pow< Unit, 1, 2 > > sqrt(const value< Value, Unit > &a)
Definition: Units.h:272
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::Quaternion::IDENTITY
static Quaternion IDENTITY
Definition: Quaternion.h:20
NUM_INIT_STAGES
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
inet::Chunk::CT_SEQUENCE
@ CT_SEQUENCE
Definition: Chunk.h:270
inet::visualizer::VisualizerBase::visualizationSubjectModule
cModule * visualizationSubjectModule
Definition: VisualizerBase.h:26
inet::visualizer::VisualizerBase::tags
const char * tags
Definition: VisualizerBase.h:27
inet::visualizer::VisualizerBase::mapChunks
virtual void mapChunks(const Ptr< const Chunk > &chunk, const std::function< void(const Ptr< const Chunk > &, int)> &thunk) const
Definition: VisualizerBase.cc:90
inet::Chunk::CT_SLICE
@ CT_SLICE
Definition: Chunk.h:267