INET Framework for OMNeT++/OMNEST
inet::visualizer::PathVisualizerBase Class Referenceabstract

#include <PathVisualizerBase.h>

Inheritance diagram for inet::visualizer::PathVisualizerBase:
inet::visualizer::VisualizerBase inet::visualizer::PathCanvasVisualizerBase inet::visualizer::PathOsgVisualizerBase inet::visualizer::NetworkRouteCanvasVisualizer inet::visualizer::PacketFlowCanvasVisualizer inet::visualizer::TransportRouteCanvasVisualizer inet::visualizer::NetworkRouteOsgVisualizer inet::visualizer::PacketFlowOsgVisualizer inet::visualizer::TransportRouteOsgVisualizer

Classes

class  DirectiveResolver
 
class  PathVisualization
 

Parameters

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...
 
virtual void initialize (int stage) override
 
virtual void handleParameterChange (const char *name) override
 
virtual void refreshDisplay () const 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 PathVisualizationcreatePathVisualization (const char *label, const std::vector< int > &path, cPacket *packet) const =0
 
virtual const PathVisualizationgetPathVisualization (const std::vector< int > &path)
 
virtual void addPathVisualization (const PathVisualization *pathVisualization)
 
virtual void removePathVisualization (const PathVisualization *pathVisualization)
 
virtual void removeAllPathVisualizations ()
 
virtual void setAlpha (const PathVisualization *pathVisualization, double alpha) const =0
 
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)
 
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override
 

Additional Inherited Members

- 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 inherited from inet::visualizer::VisualizerBase
cModule * visualizationTargetModule = nullptr
 
cModule * visualizationSubjectModule = nullptr
 
const char * tags = nullptr
 

Member Function Documentation

◆ addPathVisualization()

void inet::visualizer::PathVisualizerBase::addPathVisualization ( const PathVisualization pathVisualization)
protectedvirtual

Reimplemented in inet::visualizer::PathCanvasVisualizerBase, and inet::visualizer::PathOsgVisualizerBase.

171 {
172  auto sourceAndDestination = std::pair<int, int>(pathVisualization->moduleIds.front(), pathVisualization->moduleIds.back());
173  pathVisualizations.insert(std::pair<std::pair<int, int>, const PathVisualization *>(sourceAndDestination, pathVisualization));
174 }

Referenced by inet::visualizer::PathOsgVisualizerBase::addPathVisualization(), and inet::visualizer::PathCanvasVisualizerBase::addPathVisualization().

◆ addToIncompletePath()

void inet::visualizer::PathVisualizerBase::addToIncompletePath ( const std::string &  label,
int  chunkId,
cModule *  module 
)
protectedvirtual
208 {
209  auto& moduleIds = incompletePaths[{ label, chunkId }];
210  auto moduleId = module->getId();
211  if (moduleIds.size() == 0 || moduleIds[moduleIds.size() - 1] != moduleId)
212  moduleIds.push_back(moduleId);
213 }

◆ createPathVisualization()

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

◆ getIncompletePath()

const std::vector< int > * inet::visualizer::PathVisualizerBase::getIncompletePath ( const std::string &  label,
int  chunkId 
)
protectedvirtual
202 {
203  auto it = incompletePaths.find({ label, chunkId });
204  return (it == incompletePaths.end()) ? nullptr : &it->second;
205 }

◆ getPathVisualization()

const PathVisualizerBase::PathVisualization * inet::visualizer::PathVisualizerBase::getPathVisualization ( const std::vector< int > &  path)
protectedvirtual
161 {
162  auto key = std::pair<int, int>(path.front(), path.back());
163  auto range = pathVisualizations.equal_range(key);
164  for (auto it = range.first; it != range.second; it++)
165  if (it->second->moduleIds == path)
166  return it->second;
167  return nullptr;
168 }

◆ getPathVisualizationText()

std::string inet::visualizer::PathVisualizerBase::getPathVisualizationText ( const PathVisualization pathVisualization,
cPacket *  packet 
) const
protectedvirtual
150 {
151  DirectiveResolver directiveResolver(pathVisualization, packet);
152  return labelFormat.formatString(&directiveResolver);
153 }

Referenced by inet::visualizer::PathCanvasVisualizerBase::refreshPathVisualization().

◆ handleParameterChange()

void inet::visualizer::PathVisualizerBase::handleParameterChange ( const char *  name)
overrideprotectedvirtual
92 {
93  if (!hasGUI()) return;
94  if (name != nullptr) {
95  if (!strcmp(name, "nodeFilter"))
96  nodeFilter.setPattern(par("nodeFilter"));
97  else if (!strcmp(name, "packetFilter"))
98  packetFilter.setExpression(par("packetFilter").objectValue());
100  }
101 }

◆ initialize()

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

Reimplemented from inet::visualizer::VisualizerBase.

Reimplemented in inet::visualizer::PathCanvasVisualizerBase, and inet::visualizer::PathOsgVisualizerBase.

60 {
62  if (!hasGUI()) return;
63  if (stage == INITSTAGE_LOCAL) {
64  displayRoutes = par("displayRoutes");
65  nodeFilter.setPattern(par("nodeFilter"));
66  packetFilter.setExpression(par("packetFilter").objectValue());
67  lineColorSet.parseColors(par("lineColor"));
68  lineStyle = cFigure::parseLineStyle(par("lineStyle"));
69  lineWidth = par("lineWidth");
70  lineSmooth = par("lineSmooth");
71  lineShift = par("lineShift");
72  lineShiftMode = par("lineShiftMode");
73  lineContactSpacing = par("lineContactSpacing");
74  lineContactMode = par("lineContactMode");
75  labelFormat.parseFormat(par("labelFormat"));
76  labelFont = cFigure::parseFont(par("labelFont"));
77  labelColorAsString = par("labelColor");
78  if (!opp_isempty(labelColorAsString))
80  fadeOutMode = par("fadeOutMode");
81  fadeOutTime = par("fadeOutTime");
82  fadeOutAnimationSpeed = par("fadeOutAnimationSpeed");
83  startPathSignal = registerSignal(par("startPathSignal"));
84  extendPathSignal = registerSignal(par("extendPathSignal"));
85  endPathSignal = registerSignal(par("endPathSignal"));
86  if (displayRoutes)
87  subscribe();
88  }
89 }

Referenced by inet::visualizer::PathOsgVisualizerBase::initialize(), and inet::visualizer::PathCanvasVisualizerBase::initialize().

◆ isPathElement()

◆ isPathEnd()

◆ isPathStart()

◆ preDelete()

void inet::visualizer::PathVisualizerBase::preDelete ( cComponent *  root)
overrideprotectedvirtual
52 {
53  if (displayRoutes) {
54  unsubscribe();
56  }
57 }

◆ processPathElement()

void inet::visualizer::PathVisualizerBase::processPathElement ( cModule *  networkNode,
const char *  label,
Packet packet 
)
protectedvirtual

Reimplemented in inet::visualizer::PacketFlowCanvasVisualizer.

236 {
237  mapChunks(packet->peekAt(b(0), packet->getTotalLength()), [&] (const Ptr<const Chunk>& chunk, int chunkId) {
238  auto path = getIncompletePath(label, chunkId);
239  if (path != nullptr)
240  addToIncompletePath(label, chunkId, networkNode);
241  });
242 }

Referenced by receiveSignal().

◆ processPathEnd()

void inet::visualizer::PathVisualizerBase::processPathEnd ( cModule *  networkNode,
const char *  label,
Packet packet 
)
protectedvirtual
245 {
246  std::set<const PathVisualization *> updatedVisualizations;
247  mapChunks(packet->peekAt(b(0), packet->getTotalLength()), [&] (const Ptr<const Chunk>& chunk, int chunkId) {
248  auto path = getIncompletePath(label, chunkId);
249  if (path != nullptr) {
250  addToIncompletePath(label, chunkId, networkNode);
251  if (path->size() > 1) {
252  auto pathVisualization = getPathVisualization(*path);
253  if (pathVisualization == nullptr) {
254  pathVisualization = createPathVisualization(label, *path, packet);
255  addPathVisualization(pathVisualization);
256  }
257  pathVisualization->totalLength += chunk->getChunkLength();
258  updatedVisualizations.insert(pathVisualization);
259  }
260  removeIncompletePath(label, chunkId);
261  }
262  });
263  for (auto pathVisualization : updatedVisualizations) {
264  pathVisualization->numPackets++;
265  refreshPathVisualization(pathVisualization, packet);
266  }
267 }

Referenced by receiveSignal().

◆ processPathStart()

void inet::visualizer::PathVisualizerBase::processPathStart ( cModule *  networkNode,
const char *  label,
Packet packet 
)
protectedvirtual
226 {
227  mapChunks(packet->peekAt(b(0), packet->getTotalLength()), [&] (const Ptr<const Chunk>& chunk, int chunkId) {
228  auto path = getIncompletePath(label, chunkId);
229  if (path != nullptr)
230  removeIncompletePath(label, chunkId);
231  addToIncompletePath(label, chunkId, networkNode);
232  });
233 }

Referenced by receiveSignal().

◆ receiveSignal()

void inet::visualizer::PathVisualizerBase::receiveSignal ( cComponent *  source,
simsignal_t  signal,
cObject *  object,
cObject *  details 
)
overridevirtual
270 {
271  Enter_Method("%s", cComponent::getSignalName(signal));
272 
273  if (signal == startPathSignal) {
274  auto module = check_and_cast<cModule *>(source);
275  if (isPathStart(module)) {
276  auto networkNode = getContainingNode(module);
277  auto packet = check_and_cast<Packet *>(object);
278  auto label = details != nullptr ? details->getName() : "";
279  if (nodeFilter.matches(networkNode) && packetFilter.matches(packet))
280  processPathStart(networkNode, label, packet);
281  }
282  }
283  else if (signal == extendPathSignal) {
284  auto module = check_and_cast<cModule *>(source);
285  if (isPathElement(module)) {
286  auto networkNode = getContainingNode(module);
287  auto packet = check_and_cast<Packet *>(object);
288  auto label = details != nullptr ? details->getName() : "";
289  // NOTE: nodeFilter is intentionally not applied here, because it's only important at the end points
290  if (packetFilter.matches(packet))
291  processPathElement(networkNode, label, packet);
292  }
293  }
294  else if (signal == endPathSignal) {
295  auto module = check_and_cast<cModule *>(source);
296  if (isPathEnd(module)) {
297  auto networkNode = getContainingNode(module);
298  auto packet = check_and_cast<Packet *>(object);
299  auto label = details != nullptr ? details->getName() : "";
300  if (nodeFilter.matches(networkNode) && packetFilter.matches(packet))
301  processPathEnd(networkNode, label, packet);
302  }
303  }
304  else
305  throw cRuntimeError("Unknown signal");
306 }

◆ refreshDisplay()

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

Reimplemented in inet::visualizer::PathCanvasVisualizerBase, and inet::visualizer::PathOsgVisualizerBase.

104 {
105  if (fadeOutTime > 0) {
106  AnimationPosition currentAnimationPosition;
107  std::vector<const PathVisualization *> removedPathVisualizations;
108  for (auto it : pathVisualizations) {
109  auto pathVisualization = it.second;
110  double delta;
111  if (!strcmp(fadeOutMode, "simulationTime"))
112  delta = (currentAnimationPosition.getSimulationTime() - pathVisualization->lastUsageAnimationPosition.getSimulationTime()).dbl();
113  else if (!strcmp(fadeOutMode, "animationTime"))
114  delta = currentAnimationPosition.getAnimationTime() - pathVisualization->lastUsageAnimationPosition.getAnimationTime();
115  else if (!strcmp(fadeOutMode, "realTime"))
116  delta = currentAnimationPosition.getRealTime() - pathVisualization->lastUsageAnimationPosition.getRealTime();
117  else
118  throw cRuntimeError("Unknown fadeOutMode: %s", fadeOutMode);
119  if (delta > fadeOutTime)
120  removedPathVisualizations.push_back(pathVisualization);
121  else
122  setAlpha(pathVisualization, 1 - delta / fadeOutTime);
123  }
124  for (auto path : removedPathVisualizations) {
125  const_cast<PathVisualizerBase *>(this)->removePathVisualization(path);
126  delete path;
127  }
128  }
129 }

Referenced by inet::visualizer::PathOsgVisualizerBase::refreshDisplay(), and inet::visualizer::PathCanvasVisualizerBase::refreshDisplay().

◆ refreshPathVisualization()

void inet::visualizer::PathVisualizerBase::refreshPathVisualization ( const PathVisualization pathVisualization,
cPacket *  packet 
)
protectedvirtual

Reimplemented in inet::visualizer::PathCanvasVisualizerBase.

221 {
222  pathVisualization->lastUsageAnimationPosition = AnimationPosition();
223 }

Referenced by inet::visualizer::PathCanvasVisualizerBase::refreshPathVisualization().

◆ removeAllPathVisualizations()

void inet::visualizer::PathVisualizerBase::removeAllPathVisualizations ( )
protectedvirtual
189 {
190  incompletePaths.clear();
191  numPaths.clear();
192  std::vector<const PathVisualization *> removedPathVisualizations;
193  for (auto it : pathVisualizations)
194  removedPathVisualizations.push_back(it.second);
195  for (auto it : removedPathVisualizations) {
197  delete it;
198  }
199 }

Referenced by handleParameterChange(), and preDelete().

◆ removeIncompletePath()

void inet::visualizer::PathVisualizerBase::removeIncompletePath ( const std::string &  label,
int  chunkId 
)
protectedvirtual
216 {
217  incompletePaths.erase(incompletePaths.find({ label, chunkId }));
218 }

◆ removePathVisualization()

void inet::visualizer::PathVisualizerBase::removePathVisualization ( const PathVisualization pathVisualization)
protectedvirtual

Reimplemented in inet::visualizer::PathCanvasVisualizerBase, and inet::visualizer::PathOsgVisualizerBase.

177 {
178  auto sourceAndDestination = std::pair<int, int>(pathVisualization->moduleIds.front(), pathVisualization->moduleIds.back());
179  auto range = pathVisualizations.equal_range(sourceAndDestination);
180  for (auto it = range.first; it != range.second; it++) {
181  if (it->second == pathVisualization) {
182  pathVisualizations.erase(it);
183  break;
184  }
185  }
186 }

Referenced by refreshDisplay(), removeAllPathVisualizations(), inet::visualizer::PathOsgVisualizerBase::removePathVisualization(), and inet::visualizer::PathCanvasVisualizerBase::removePathVisualization().

◆ setAlpha()

virtual void inet::visualizer::PathVisualizerBase::setAlpha ( const PathVisualization pathVisualization,
double  alpha 
) const
protectedpure virtual

◆ subscribe()

void inet::visualizer::PathVisualizerBase::subscribe ( )
protectedvirtual
132 {
135  visualizationSubjectModule->subscribe(endPathSignal, this);
136 }

Referenced by initialize().

◆ unsubscribe()

void inet::visualizer::PathVisualizerBase::unsubscribe ( )
protectedvirtual
139 {
140  // NOTE: lookup the module again because it may have been deleted first
141  auto visualizationSubjectModule = findModuleFromPar<cModule>(par("visualizationSubjectModule"), this);
142  if (visualizationSubjectModule != nullptr) {
143  visualizationSubjectModule->unsubscribe(startPathSignal, this);
144  visualizationSubjectModule->unsubscribe(extendPathSignal, this);
145  visualizationSubjectModule->unsubscribe(endPathSignal, this);
146  }
147 }

Referenced by preDelete().

Member Data Documentation

◆ displayRoutes

bool inet::visualizer::PathVisualizerBase::displayRoutes = false
protected

Referenced by initialize(), and preDelete().

◆ endPathSignal

simsignal_t inet::visualizer::PathVisualizerBase::endPathSignal = -1
protected

◆ extendPathSignal

simsignal_t inet::visualizer::PathVisualizerBase::extendPathSignal = -1
protected

◆ fadeOutAnimationSpeed

double inet::visualizer::PathVisualizerBase::fadeOutAnimationSpeed = NaN
protected

◆ fadeOutMode

const char* inet::visualizer::PathVisualizerBase::fadeOutMode = nullptr
protected

Referenced by initialize(), and refreshDisplay().

◆ fadeOutTime

double inet::visualizer::PathVisualizerBase::fadeOutTime = NaN
protected

Referenced by initialize(), and refreshDisplay().

◆ incompletePaths

std::map<std::pair<std::string, int>, std::vector<int> > inet::visualizer::PathVisualizerBase::incompletePaths
protected

Maps path label and chunk id to module id vector.

Referenced by addToIncompletePath(), getIncompletePath(), removeAllPathVisualizations(), and removeIncompletePath().

◆ labelColor

cFigure::Color inet::visualizer::PathVisualizerBase::labelColor
protected

◆ labelColorAsString

const char* inet::visualizer::PathVisualizerBase::labelColorAsString = nullptr
protected

◆ labelFont

cFigure::Font inet::visualizer::PathVisualizerBase::labelFont
protected

◆ labelFormat

StringFormat inet::visualizer::PathVisualizerBase::labelFormat
protected

◆ lineColorSet

◆ lineContactMode

const char* inet::visualizer::PathVisualizerBase::lineContactMode = nullptr
protected

◆ lineContactSpacing

double inet::visualizer::PathVisualizerBase::lineContactSpacing = NaN
protected

◆ lineManager

◆ lineShift

double inet::visualizer::PathVisualizerBase::lineShift = NaN
protected

◆ lineShiftMode

const char* inet::visualizer::PathVisualizerBase::lineShiftMode = nullptr
protected

◆ lineSmooth

bool inet::visualizer::PathVisualizerBase::lineSmooth = false
protected

◆ lineStyle

cFigure::LineStyle inet::visualizer::PathVisualizerBase::lineStyle
protected

◆ lineWidth

◆ nodeFilter

NetworkNodeFilter inet::visualizer::PathVisualizerBase::nodeFilter
protected

◆ numPaths

std::map<int, int> inet::visualizer::PathVisualizerBase::numPaths
protected

Maps nodes to the number of paths that go through it.

Referenced by removeAllPathVisualizations().

◆ packetFilter

PacketFilter inet::visualizer::PathVisualizerBase::packetFilter
protected

◆ pathVisualizations

◆ startPathSignal

simsignal_t inet::visualizer::PathVisualizerBase::startPathSignal = -1
protected

The documentation for this class was generated from the following files:
inet::visualizer::PathVisualizerBase::lineContactMode
const char * lineContactMode
Definition: PathVisualizerBase.h:64
inet::StringFormat::parseFormat
void parseFormat(const char *format)
Definition: StringFormat.cc:12
inet::visualizer::ColorSet::parseColors
void parseColors(const char *colorNames)
Definition: ColorSet.cc:14
inet::visualizer::PathVisualizerBase::removePathVisualization
virtual void removePathVisualization(const PathVisualization *pathVisualization)
Definition: PathVisualizerBase.cc:176
inet::visualizer::PathVisualizerBase::fadeOutTime
double fadeOutTime
Definition: PathVisualizerBase.h:70
inet::visualizer::PathVisualizerBase::extendPathSignal
simsignal_t extendPathSignal
Definition: PathVisualizerBase.h:73
inet::getContainingNode
cModule * getContainingNode(const cModule *from)
Find the node containing the given module.
Definition: ModuleAccess.cc:40
inet::visualizer::PathVisualizerBase::processPathStart
virtual void processPathStart(cModule *networkNode, const char *label, Packet *packet)
Definition: PathVisualizerBase.cc:225
inet::visualizer::PathVisualizerBase::fadeOutAnimationSpeed
double fadeOutAnimationSpeed
Definition: PathVisualizerBase.h:71
inet::visualizer::PathVisualizerBase::displayRoutes
bool displayRoutes
Definition: PathVisualizerBase.h:54
inet::visualizer::NetworkNodeFilter::matches
bool matches(const cModule *module) const
Definition: NetworkNodeFilter.cc:19
inet::visualizer::PathVisualizerBase::isPathStart
virtual bool isPathStart(cModule *module) const =0
inet::visualizer::PathVisualizerBase::processPathEnd
virtual void processPathEnd(cModule *networkNode, const char *label, Packet *packet)
Definition: PathVisualizerBase.cc:244
inet::visualizer::PathVisualizerBase::labelFormat
StringFormat labelFormat
Definition: PathVisualizerBase.h:65
inet::visualizer::PathVisualizerBase::packetFilter
PacketFilter packetFilter
Definition: PathVisualizerBase.h:56
inet::visualizer::PathVisualizerBase::labelColor
cFigure::Color labelColor
Definition: PathVisualizerBase.h:68
inet::visualizer::PathVisualizerBase::lineStyle
cFigure::LineStyle lineStyle
Definition: PathVisualizerBase.h:58
inet::visualizer::NetworkNodeFilter::setPattern
void setPattern(const char *pattern)
Definition: NetworkNodeFilter.cc:14
inet::visualizer::PathVisualizerBase::lineShift
double lineShift
Definition: PathVisualizerBase.h:61
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::visualizer::PathVisualizerBase::lineShiftMode
const char * lineShiftMode
Definition: PathVisualizerBase.h:62
inet::visualizer::PathVisualizerBase::processPathElement
virtual void processPathElement(cModule *networkNode, const char *label, Packet *packet)
Definition: PathVisualizerBase.cc:235
inet::units::values::b
value< int64_t, units::b > b
Definition: Units.h:1241
inet::visualizer::PathVisualizerBase::lineColorSet
ColorSet lineColorSet
Definition: PathVisualizerBase.h:57
inet::visualizer::PathVisualizerBase::numPaths
std::map< int, int > numPaths
Maps nodes to the number of paths that go through it.
Definition: PathVisualizerBase.h:85
inet::visualizer::PathVisualizerBase::lineContactSpacing
double lineContactSpacing
Definition: PathVisualizerBase.h:63
inet::visualizer::PathVisualizerBase::endPathSignal
simsignal_t endPathSignal
Definition: PathVisualizerBase.h:74
inet::visualizer::PathVisualizerBase::labelFont
cFigure::Font labelFont
Definition: PathVisualizerBase.h:66
inet::visualizer::PathVisualizerBase::lineSmooth
bool lineSmooth
Definition: PathVisualizerBase.h:60
inet::StringFormat::formatString
const char * formatString(IDirectiveResolver *resolver) const
Definition: StringFormat.cc:17
Enter_Method
#define Enter_Method(...)
Definition: SelfDoc.h:71
inet::visualizer::PathVisualizerBase::refreshPathVisualization
virtual void refreshPathVisualization(const PathVisualization *pathVisualization, cPacket *packet)
Definition: PathVisualizerBase.cc:220
inet::DiffservUtil::Color
Color
Definition: DiffservUtil.h:17
inet::visualizer::VisualizerBase::visualizationSubjectModule
cModule * visualizationSubjectModule
Definition: VisualizerBase.h:26
inet::visualizer::PathVisualizerBase::lineWidth
double lineWidth
Definition: PathVisualizerBase.h:59
inet::visualizer::PathVisualizerBase::isPathEnd
virtual bool isPathEnd(cModule *module) const =0
inet::visualizer::PathVisualizerBase::isPathElement
virtual bool isPathElement(cModule *module) const =0
inet::visualizer::PathVisualizerBase::labelColorAsString
const char * labelColorAsString
Definition: PathVisualizerBase.h:67
inet::visualizer::PathVisualizerBase::unsubscribe
virtual void unsubscribe()
Definition: PathVisualizerBase.cc:138
inet::visualizer::PathVisualizerBase::fadeOutMode
const char * fadeOutMode
Definition: PathVisualizerBase.h:69
inet::visualizer::PathVisualizerBase::subscribe
virtual void subscribe()
Definition: PathVisualizerBase.cc:131
inet::visualizer::PathVisualizerBase::startPathSignal
simsignal_t startPathSignal
Definition: PathVisualizerBase.h:72
inet::visualizer::PathVisualizerBase::nodeFilter
NetworkNodeFilter nodeFilter
Definition: PathVisualizerBase.h:55
inet::visualizer::PathVisualizerBase::removeAllPathVisualizations
virtual void removeAllPathVisualizations()
Definition: PathVisualizerBase.cc:188
inet::visualizer::PathVisualizerBase::setAlpha
virtual void setAlpha(const PathVisualization *pathVisualization, double alpha) const =0
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::visualizer::PathVisualizerBase::incompletePaths
std::map< std::pair< std::string, int >, std::vector< int > > incompletePaths
Maps path label and chunk id to module id vector.
Definition: PathVisualizerBase.h:81
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::VisualizerBase::initialize
virtual void initialize(int stage) override
Definition: VisualizerBase.cc:23