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

#include <PacketDropCanvasVisualizer.h>

Inheritance diagram for inet::visualizer::PacketDropCanvasVisualizer:
inet::visualizer::PacketDropVisualizerBase inet::visualizer::VisualizerBase

Classes

class  PacketDropCanvasVisualization
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual void refreshDisplay () const override
 
virtual const PacketDropVisualizationcreatePacketDropVisualization (PacketDrop *packetDrop) const override
 
virtual void addPacketDropVisualization (const PacketDropVisualization *packetDropVisualization) override
 
virtual void removePacketDropVisualization (const PacketDropVisualization *packetDropVisualization) override
 
virtual void setAlpha (const PacketDropVisualization *packetDrop, double alpha) const override
 
- Protected Member Functions inherited from inet::visualizer::PacketDropVisualizerBase
virtual void handleParameterChange (const char *name) override
 
virtual void preDelete (cComponent *root) override
 
virtual void subscribe ()
 
virtual void unsubscribe ()
 
virtual void removeAllPacketDropVisualizations ()
 
virtual std::string getPacketDropVisualizationText (const PacketDrop *packetDrop) 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

double zIndex = NaN
 
const CanvasProjectioncanvasProjection = nullptr
 
cGroupFigure * packetDropGroup = nullptr
 
double dx = NaN
 
double dy = NaN
 
- Protected Attributes inherited from inet::visualizer::PacketDropVisualizerBase
bool displayPacketDrops = false
 
NetworkNodeFilter nodeFilter
 
InterfaceFilter interfaceFilter
 
PacketFilter packetFilter
 
DetailsFilter detailsFilter
 
const char * icon = nullptr
 
ColorSet iconTintColorSet
 
double iconTintAmount = NaN
 
StringFormat labelFormat
 
cFigure::Font labelFont
 
cFigure::Color labelColor
 
const char * fadeOutMode = nullptr
 
double fadeOutTime = NaN
 
double fadeOutAnimationSpeed = NaN
 
std::vector< const PacketDropVisualization * > packetDropVisualizations
 
- 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::PacketDropVisualizerBase
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override
 

Member Function Documentation

◆ addPacketDropVisualization()

void inet::visualizer::PacketDropCanvasVisualizer::addPacketDropVisualization ( const PacketDropVisualization packetDropVisualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::PacketDropVisualizerBase.

75 {
77  auto packetDropCanvasVisualization = static_cast<const PacketDropCanvasVisualization *>(packetDropVisualization);
78  packetDropGroup->addFigure(packetDropCanvasVisualization->figure);
79 }

◆ createPacketDropVisualization()

const PacketDropVisualizerBase::PacketDropVisualization * inet::visualizer::PacketDropCanvasVisualizer::createPacketDropVisualization ( PacketDrop packetDrop) const
overrideprotectedvirtual

Implements inet::visualizer::PacketDropVisualizerBase.

53 {
54  std::string icon(this->icon);
55  auto labeledIconFigure = new LabeledIconFigure("packetDropped");
56  labeledIconFigure->setTags((std::string("packet_drop ") + tags).c_str());
57  labeledIconFigure->setAssociatedObject(packetDrop);
58  labeledIconFigure->setZIndex(zIndex);
59  labeledIconFigure->setPosition(canvasProjection->computeCanvasPoint(packetDrop->getPosition()));
60  auto iconFigure = labeledIconFigure->getIconFigure();
61  iconFigure->setTooltip("This icon represents a packet dropped in a network node");
62  iconFigure->setImageName(icon.substr(0, icon.find_first_of(".")).c_str());
63  iconFigure->setTintColor(iconTintColorSet.getColor(packetDrop->getReason() % iconTintColorSet.getSize()));
64  iconFigure->setTintAmount(iconTintAmount);
65  auto labelFigure = labeledIconFigure->getLabelFigure();
66  labelFigure->setTooltip("This label represents the name of a packet dropped in a network node");
67  labelFigure->setFont(labelFont);
68  labelFigure->setColor(labelColor);
69  auto text = getPacketDropVisualizationText(packetDrop);
70  labelFigure->setText(text.c_str());
71  return new PacketDropCanvasVisualization(labeledIconFigure, packetDrop);
72 }

◆ initialize()

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

Reimplemented from inet::visualizer::PacketDropVisualizerBase.

31 {
33  if (!hasGUI()) return;
34  if (stage == INITSTAGE_LOCAL) {
35  zIndex = par("zIndex");
36  dx = par("dx");
37  dy = par("dx");
38  auto canvas = visualizationTargetModule->getCanvas();
40  packetDropGroup = new cGroupFigure("packet drops");
41  packetDropGroup->setZIndex(zIndex);
42  canvas->addFigure(packetDropGroup);
43  }
44 }

◆ refreshDisplay()

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

Reimplemented from inet::visualizer::PacketDropVisualizerBase.

47 {
49  visualizationTargetModule->getCanvas()->setAnimationSpeed(packetDropVisualizations.empty() ? 0 : fadeOutAnimationSpeed, this);
50 }

◆ removePacketDropVisualization()

void inet::visualizer::PacketDropCanvasVisualizer::removePacketDropVisualization ( const PacketDropVisualization packetDropVisualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::PacketDropVisualizerBase.

82 {
84  auto packetDropCanvasVisualization = static_cast<const PacketDropCanvasVisualization *>(packetDropVisualization);
85  packetDropGroup->removeFigure(packetDropCanvasVisualization->figure);
86 }

◆ setAlpha()

void inet::visualizer::PacketDropCanvasVisualizer::setAlpha ( const PacketDropVisualization packetDrop,
double  alpha 
) const
overrideprotectedvirtual

Implements inet::visualizer::PacketDropVisualizerBase.

89 {
90  auto packetDropCanvasVisualization = static_cast<const PacketDropCanvasVisualization *>(packetDropVisualization);
91  auto figure = packetDropCanvasVisualization->figure;
92  figure->setOpacity(alpha);
93  double a = dy / -(dx * dx);
94  double b = -2 * a * dx;
95  double px = 4 * dx * (1 - alpha);
96  double py = a * px * px + b * px;
97  auto& position = packetDropVisualization->packetDrop->getPosition();
98  double zoomLevel = getEnvir()->getZoomLevel(packetDropCanvasVisualization->packetDrop->getNetworkNode()->getParentModule());
99  if (std::isnan(zoomLevel))
100  zoomLevel = 1;
101  figure->setPosition(canvasProjection->computeCanvasPoint(position) + cFigure::Point(px, -py) / zoomLevel);
102 }

Member Data Documentation

◆ canvasProjection

const CanvasProjection* inet::visualizer::PacketDropCanvasVisualizer::canvasProjection = nullptr
protected

◆ dx

double inet::visualizer::PacketDropCanvasVisualizer::dx = NaN
protected

Referenced by initialize(), and setAlpha().

◆ dy

double inet::visualizer::PacketDropCanvasVisualizer::dy = NaN
protected

Referenced by initialize(), and setAlpha().

◆ packetDropGroup

cGroupFigure* inet::visualizer::PacketDropCanvasVisualizer::packetDropGroup = nullptr
protected

◆ zIndex

double inet::visualizer::PacketDropCanvasVisualizer::zIndex = NaN
protected

The documentation for this class was generated from the following files:
inet::visualizer::PacketDropVisualizerBase::getPacketDropVisualizationText
virtual std::string getPacketDropVisualizationText(const PacketDrop *packetDrop) const
Definition: PacketDropVisualizerBase.cc:225
inet::visualizer::PacketDropVisualizerBase::fadeOutAnimationSpeed
double fadeOutAnimationSpeed
Definition: PacketDropVisualizerBase.h:92
inet::CanvasProjection::getCanvasProjection
static CanvasProjection * getCanvasProjection(const cCanvas *canvas)
Definition: CanvasProjection.cc:53
inet::visualizer::PacketDropCanvasVisualizer::dy
double dy
Definition: PacketDropCanvasVisualizer.h:36
inet::visualizer::VisualizerBase::visualizationTargetModule
cModule * visualizationTargetModule
Definition: VisualizerBase.h:25
inet::visualizer::PacketDropVisualizerBase::labelColor
cFigure::Color labelColor
Definition: PacketDropVisualizerBase.h:89
inet::visualizer::PacketDropVisualizerBase::refreshDisplay
virtual void refreshDisplay() const override
Definition: PacketDropVisualizerBase.cc:145
inet::visualizer::PacketDropVisualizerBase::iconTintColorSet
ColorSet iconTintColorSet
Definition: PacketDropVisualizerBase.h:85
inet::visualizer::PacketDropVisualizerBase::initialize
virtual void initialize(int stage) override
Definition: PacketDropVisualizerBase.cc:103
inet::visualizer::PacketDropCanvasVisualizer::zIndex
double zIndex
Definition: PacketDropCanvasVisualizer.h:32
inet::visualizer::PacketDropCanvasVisualizer::canvasProjection
const CanvasProjection * canvasProjection
Definition: PacketDropCanvasVisualizer.h:33
inet::visualizer::PacketDropVisualizerBase::icon
const char * icon
Definition: PacketDropVisualizerBase.h:84
inet::visualizer::PacketDropVisualizerBase::addPacketDropVisualization
virtual void addPacketDropVisualization(const PacketDropVisualization *packetDropVisualization)
Definition: PacketDropVisualizerBase.cc:207
inet::CanvasProjection::computeCanvasPoint
cFigure::Point computeCanvasPoint(const Coord &point) const
Definition: CanvasProjection.cc:34
inet::visualizer::PacketDropCanvasVisualizer::dx
double dx
Definition: PacketDropCanvasVisualizer.h:35
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::visualizer::ColorSet::getSize
size_t getSize() const
Definition: ColorSet.h:24
inet::visualizer::PacketDropVisualizerBase::iconTintAmount
double iconTintAmount
Definition: PacketDropVisualizerBase.h:86
inet::visualizer::PacketDropCanvasVisualizer::packetDropGroup
cGroupFigure * packetDropGroup
Definition: PacketDropCanvasVisualizer.h:34
inet::visualizer::PacketDropVisualizerBase::removePacketDropVisualization
virtual void removePacketDropVisualization(const PacketDropVisualization *packetDropVisualization)
Definition: PacketDropVisualizerBase.cc:212
inet::units::values::b
value< int64_t, units::b > b
Definition: Units.h:1241
inet::visualizer::PacketDropVisualizerBase::packetDropVisualizations
std::vector< const PacketDropVisualization * > packetDropVisualizations
Definition: PacketDropVisualizerBase.h:95
inet::visualizer::PacketDropVisualizerBase::labelFont
cFigure::Font labelFont
Definition: PacketDropVisualizerBase.h:88
inet::units::constants::alpha
const value< double, units::unit > alpha(7.2973525376e-3)
inet::visualizer::VisualizerBase::tags
const char * tags
Definition: VisualizerBase.h:27
inet::visualizer::ColorSet::getColor
cFigure::Color getColor(int index) const
Definition: ColorSet.cc:33