|
INET Framework for OMNeT++/OMNEST
|
#include <PathCanvasVisualizerBase.h>
|
| virtual void | initialize (int stage) override |
| |
| virtual void | refreshDisplay () const override |
| |
| virtual const PathVisualization * | createPathVisualization (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 |
| |
| virtual void | refreshPathVisualization (const PathVisualization *pathVisualization, cPacket *packet) override |
| |
| 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 PathVisualization * | getPathVisualization (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 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 |
| |
|
| virtual void | receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override |
| |
◆ addPathVisualization()
| void inet::visualizer::PathCanvasVisualizerBase::addPathVisualization |
( |
const PathVisualization * |
pathVisualization | ) |
|
|
overrideprotectedvirtual |
◆ createPathVisualization()
| const PathVisualizerBase::PathVisualization * inet::visualizer::PathCanvasVisualizerBase::createPathVisualization |
( |
const char * |
label, |
|
|
const std::vector< int > & |
path, |
|
|
cPacket * |
packet |
|
) |
| const |
|
overrideprotectedvirtual |
◆ initialize()
| void inet::visualizer::PathCanvasVisualizerBase::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
◆ refreshDisplay()
| void inet::visualizer::PathCanvasVisualizerBase::refreshDisplay |
( |
| ) |
const |
|
overrideprotectedvirtual |
Reimplemented from inet::visualizer::PathVisualizerBase.
82 auto simulation = getSimulation();
84 auto pathVisualization = it.second;
85 auto pathCanvasVisualization =
static_cast<const PathCanvasVisualization *
>(pathVisualization);
86 auto moduleIds = pathCanvasVisualization->moduleIds;
87 std::vector<LineSegment> segments;
88 for (
size_t index = 1; index < moduleIds.size(); index++) {
89 auto fromModuleId = moduleIds[index - 1];
90 auto toModuleId = moduleIds[index];
91 auto fromModule = simulation->getModule(fromModuleId);
92 auto toModule = simulation->getModule(toModuleId);
96 segments.push_back(LineSegment(fromPosition + shift, toPosition + shift));
98 std::vector<cFigure::Point> points;
99 for (
size_t index = 0; index < segments.size(); index++) {
103 auto& segment1 = segments[index - 1];
104 auto& segment2 = segments[index];
105 Coord intersection = intersectLines(segment1, segment2);
106 if (std::isfinite(intersection.x) && std::isfinite(intersection.y)) {
107 if (isPointOnSegment(segment1, intersection) && isPointOnSegment(segment2, intersection))
110 double distance = segment1.getPoint2().distance(segment2.getPoint1());
111 double distance1 = intersection.distance(segment1.getPoint2());
112 double distance2 = intersection.distance(segment2.getPoint1());
113 if (distance1 + distance2 < 4 * distance)
126 if (index == segments.size() - 1)
129 pathCanvasVisualization->figure->setPoints(points);
◆ refreshPathVisualization()
| void inet::visualizer::PathCanvasVisualizerBase::refreshPathVisualization |
( |
const PathVisualization * |
pathVisualization, |
|
|
cPacket * |
packet |
|
) |
| |
|
overrideprotectedvirtual |
Reimplemented from inet::visualizer::PathVisualizerBase.
175 auto pathCanvasVisualization =
static_cast<const PathCanvasVisualization *
>(pathVisualization);
177 pathCanvasVisualization->figure->getLabelFigure()->setText(text.c_str());
◆ removePathVisualization()
| void inet::visualizer::PathCanvasVisualizerBase::removePathVisualization |
( |
const PathVisualization * |
pathVisualization | ) |
|
|
overrideprotectedvirtual |
◆ setAlpha()
| void inet::visualizer::PathCanvasVisualizerBase::setAlpha |
( |
const PathVisualization * |
pathVisualization, |
|
|
double |
alpha |
|
) |
| const |
|
overrideprotectedvirtual |
Implements inet::visualizer::PathVisualizerBase.
168 auto pathCanvasVisualization =
static_cast<const PathCanvasVisualization *
>(path);
169 pathCanvasVisualization->figure->getPolylineFigure()->setLineOpacity(
alpha);
◆ canvasProjection
| const CanvasProjection* inet::visualizer::PathCanvasVisualizerBase::canvasProjection = nullptr |
|
protected |
◆ pathGroup
| cGroupFigure* inet::visualizer::PathCanvasVisualizerBase::pathGroup = nullptr |
|
protected |
◆ zIndex
| double inet::visualizer::PathCanvasVisualizerBase::zIndex = NaN |
|
protected |
The documentation for this class was generated from the following files:
const char * lineContactMode
Definition: PathVisualizerBase.h:64
virtual void removePathVisualization(const PathVisualization *pathVisualization)
Definition: PathVisualizerBase.cc:176
void removeModulePath(const ModulePath *modulePath)
Definition: LineManager.cc:94
static CanvasProjection * getCanvasProjection(const cCanvas *canvas)
Definition: CanvasProjection.cc:53
double fadeOutAnimationSpeed
Definition: PathVisualizerBase.h:71
virtual void refreshDisplay() const override
Definition: PathVisualizerBase.cc:103
virtual std::string getPathVisualizationText(const PathVisualization *pathVisualization, cPacket *packet) const
Definition: PathVisualizerBase.cc:149
cModule * visualizationTargetModule
Definition: VisualizerBase.h:25
cFigure::Color labelColor
Definition: PathVisualizerBase.h:68
void addModulePath(const ModulePath *modulePath)
Definition: LineManager.cc:83
Coord getLineShift(int sourceModuleId, int destinationModuleId, const Coord &sourcePosition, const Coord &destinationPosition, const char *shiftMode, int shiftOffset)
Definition: LineManager.cc:105
static LineManager * getCanvasLineManager(const cCanvas *canvas)
Definition: LineManager.cc:19
virtual Coord getContactPosition(const cModule *networkNode, const Coord &fromPosition, const char *contactMode, double contactSpacing) const
Definition: VisualizerBase.cc:51
virtual void addPathVisualization(const PathVisualization *pathVisualization)
Definition: PathVisualizerBase.cc:170
cFigure::LineStyle lineStyle
Definition: PathVisualizerBase.h:58
double lineShift
Definition: PathVisualizerBase.h:61
virtual Coord getPosition(const cModule *networkNode) const
Definition: VisualizerBase.cc:39
cFigure::Point computeCanvasPoint(const Coord &point) const
Definition: CanvasProjection.cc:34
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
const char * lineShiftMode
Definition: PathVisualizerBase.h:62
ColorSet lineColorSet
Definition: PathVisualizerBase.h:57
double lineContactSpacing
Definition: PathVisualizerBase.h:63
const CanvasProjection * canvasProjection
Definition: PathCanvasVisualizerBase.h:33
cFigure::Font labelFont
Definition: PathVisualizerBase.h:66
bool lineSmooth
Definition: PathVisualizerBase.h:60
cGroupFigure * pathGroup
Definition: PathCanvasVisualizerBase.h:34
virtual void refreshPathVisualization(const PathVisualization *pathVisualization, cPacket *packet)
Definition: PathVisualizerBase.cc:220
const value< double, units::unit > alpha(7.2973525376e-3)
double lineWidth
Definition: PathVisualizerBase.h:59
const char * labelColorAsString
Definition: PathVisualizerBase.h:67
virtual void initialize(int stage) override
Definition: PathVisualizerBase.cc:59
double zIndex
Definition: PathCanvasVisualizerBase.h:32
std::multimap< std::pair< int, int >, const PathVisualization * > pathVisualizations
Maps source/destination modules to multiple paths between them.
Definition: PathVisualizerBase.h:89
LineManager * lineManager
Definition: PathVisualizerBase.h:77
cFigure::Color getColor(int index) const
Definition: ColorSet.cc:33