|
INET Framework for OMNeT++/OMNEST
|
#include <MobilityCanvasVisualizer.h>
|
| virtual void | receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override |
| |
◆ addMobilityVisualization()
| void inet::visualizer::MobilityCanvasVisualizer::addMobilityVisualization |
( |
const IMobility * |
mobility, |
|
|
MobilityVisualization * |
mobilityVisualization |
|
) |
| |
|
overrideprotectedvirtual |
Reimplemented from inet::visualizer::MobilityVisualizerBase.
80 auto mobilityCanvasVisualization =
static_cast<MobilityCanvasVisualization *
>(mobilityVisualization);
83 canvas->addFigure(mobilityCanvasVisualization->positionFigure);
85 canvas->addFigure(mobilityCanvasVisualization->orientationFigure);
87 canvas->addFigure(mobilityCanvasVisualization->velocityFigure);
89 canvas->addFigure(mobilityCanvasVisualization->trailFigure);
◆ createMobilityVisualization()
Implements inet::visualizer::MobilityVisualizerBase.
109 auto module =
const_cast<cModule *
>(check_and_cast<const cModule *>(mobility));
110 cOvalFigure *positionFigure =
nullptr;
112 positionFigure =
new cOvalFigure(
"position");
113 positionFigure->setTags((std::string(
"position ") +
tags).c_str());
114 positionFigure->setTooltip(
"This circle represents the current position of the mobility model");
115 positionFigure->setZIndex(
zIndex);
118 positionFigure->setFilled(
true);
121 cPieSliceFigure *orientationFigure =
nullptr;
123 orientationFigure =
new cPieSliceFigure(
"orientation");
124 orientationFigure->setTags((std::string(
"orientation ") +
tags).c_str());
125 orientationFigure->setTooltip(
"This arc represents the current orientation of the mobility model");
126 orientationFigure->setZIndex(
zIndex);
131 orientationFigure->setFilled(
true);
135 cLineFigure *velocityFigure =
nullptr;
137 velocityFigure =
new cLineFigure(
"velocity");
138 velocityFigure->setTags((std::string(
"velocity ") +
tags).c_str());
139 velocityFigure->setTooltip(
"This arrow represents the current velocity of the mobility model");
140 velocityFigure->setZIndex(
zIndex);
141 velocityFigure->setVisible(
false);
142 velocityFigure->setEndArrowhead(cFigure::ARROW_SIMPLE);
147 TrailFigure *trailFigure =
nullptr;
149 trailFigure =
new TrailFigure(
trailLength,
true,
"movement trail");
150 trailFigure->setTags((std::string(
"movement_trail recent_history ") +
tags).c_str());
151 trailFigure->setZIndex(
zIndex);
153 return new MobilityCanvasVisualization(positionFigure, orientationFigure, velocityFigure, trailFigure, mobility);
◆ extendMovementTrail()
| void inet::visualizer::MobilityCanvasVisualizer::extendMovementTrail |
( |
const IMobility * |
mobility, |
|
|
TrailFigure * |
trailFigure, |
|
|
cFigure::Point |
position |
|
) |
| const |
|
protectedvirtual |
158 cFigure::Point startPosition;
159 cFigure::Point endPosition = position;
160 if (trailFigure->getNumFigures() == 0)
161 startPosition = position;
163 startPosition =
static_cast<cLineFigure *
>(trailFigure->getFigure(trailFigure->getNumFigures() - 1))->getEnd();
164 double dx = startPosition.x - endPosition.x;
165 double dy = startPosition.y - endPosition.y;
167 if (trailFigure->getNumFigures() == 0 || dx * dx + dy * dy > 1) {
168 cLineFigure *movementLine =
new cLineFigure(
"movementTrail");
169 movementLine->setTags((std::string(
"movement_trail recent_history ") +
tags).c_str());
170 movementLine->setTooltip(
"This line represents the recent movement trail of the mobility model");
171 movementLine->setStart(startPosition);
172 movementLine->setEnd(endPosition);
173 auto module =
const_cast<cModule *
>(check_and_cast<const cModule *>(mobility));
177 movementLine->setZoomLineWidth(
false);
178 trailFigure->addFigure(movementLine);
Referenced by refreshDisplay().
◆ initialize()
| void inet::visualizer::MobilityCanvasVisualizer::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
◆ refreshDisplay()
| void inet::visualizer::MobilityCanvasVisualizer::refreshDisplay |
( |
| ) |
const |
|
overrideprotectedvirtual |
47 MobilityVisualizerBase::refreshDisplay();
49 auto mobilityVisualization =
static_cast<MobilityCanvasVisualization *
>(it.second);
50 auto mobility = mobilityVisualization->mobility;
52 auto orientation = mobility->getCurrentAngularPosition();
56 mobilityVisualization->positionFigure->setBounds(cFigure::Rectangle(position.x - radius, position.y - radius, 2 * radius, 2 * radius));
60 auto angle = -orientation.toEulerAngles().alpha;
64 mobilityVisualization->orientationFigure->setBounds(cFigure::Rectangle(position.x - radius, position.y - radius, 2 * radius, 2 * radius));
67 mobilityVisualization->velocityFigure->setStart(position);
68 mobilityVisualization->velocityFigure->setEnd(position + velocity *
velocityArrowScale);
69 mobilityVisualization->velocityFigure->setVisible(velocity.getLength() != 0);
◆ removeMobilityVisualization()
| void inet::visualizer::MobilityCanvasVisualizer::removeMobilityVisualization |
( |
const MobilityVisualization * |
mobilityVisualization | ) |
|
|
overrideprotectedvirtual |
Reimplemented from inet::visualizer::MobilityVisualizerBase.
95 auto mobilityCanvasVisualization =
static_cast<const MobilityCanvasVisualization *
>(mobilityVisualization);
97 canvas->removeFigure(mobilityCanvasVisualization->positionFigure);
99 canvas->removeFigure(mobilityCanvasVisualization->orientationFigure);
101 canvas->removeFigure(mobilityCanvasVisualization->velocityFigure);
103 canvas->removeFigure(mobilityCanvasVisualization->trailFigure);
◆ canvasProjection
| const CanvasProjection* inet::visualizer::MobilityCanvasVisualizer::canvasProjection = nullptr |
|
protected |
◆ zIndex
| double inet::visualizer::MobilityCanvasVisualizer::zIndex = NaN |
|
protected |
The documentation for this class was generated from the following files:
bool displayVelocities
Definition: MobilityVisualizerBase.h:54
cFigure::Color orientationLineColor
Definition: MobilityVisualizerBase.h:49
static CanvasProjection * getCanvasProjection(const cCanvas *canvas)
Definition: CanvasProjection.cc:53
double zIndex
Definition: MobilityCanvasVisualizer.h:35
int trailLength
Definition: MobilityVisualizerBase.h:65
virtual void extendMovementTrail(const IMobility *mobility, TrailFigure *trailFigure, cFigure::Point position) const
Definition: MobilityCanvasVisualizer.cc:156
const CanvasProjection * canvasProjection
Definition: MobilityCanvasVisualizer.h:36
virtual void initialize(int stage) override
Definition: MobilityVisualizerBase.cc:29
cFigure::LineStyle velocityLineStyle
Definition: MobilityVisualizerBase.h:57
cModule * visualizationTargetModule
Definition: VisualizerBase.h:25
cFigure::Color velocityLineColor
Definition: MobilityVisualizerBase.h:56
ColorSet movementTrailLineColorSet
Definition: MobilityVisualizerBase.h:62
cFigure::LineStyle orientationLineStyle
Definition: MobilityVisualizerBase.h:50
cFigure::Color orientationFillColor
Definition: MobilityVisualizerBase.h:52
std::map< int, MobilityVisualization * > mobilityVisualizations
Definition: MobilityVisualizerBase.h:68
cFigure::LineStyle movementTrailLineStyle
Definition: MobilityVisualizerBase.h:63
double orientationPieRadius
Definition: MobilityVisualizerBase.h:46
double orientationLineWidth
Definition: MobilityVisualizerBase.h:51
bool displayPositions
Definition: MobilityVisualizerBase.h: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:
ColorSet positionCircleLineColorSet
Definition: MobilityVisualizerBase.h:42
double positionCircleLineWidth
Definition: MobilityVisualizerBase.h:41
bool displayOrientations
Definition: MobilityVisualizerBase.h:45
double positionCircleRadius
Definition: MobilityVisualizerBase.h:40
double movementTrailLineWidth
Definition: MobilityVisualizerBase.h:64
virtual void addMobilityVisualization(const IMobility *mobility, MobilityVisualization *mobilityVisualization)
Definition: MobilityVisualizerBase.cc:101
bool displayMovementTrails
Definition: MobilityVisualizerBase.h:60
virtual void removeMobilityVisualization(const MobilityVisualization *visualization)
Definition: MobilityVisualizerBase.cc:106
double velocityLineWidth
Definition: MobilityVisualizerBase.h:58
double velocityArrowScale
Definition: MobilityVisualizerBase.h:55
double animationSpeed
Definition: MobilityVisualizerBase.h:36
const char * tags
Definition: VisualizerBase.h:27
double orientationPieSize
Definition: MobilityVisualizerBase.h:47
ColorSet positionCircleFillColorSet
Definition: MobilityVisualizerBase.h:43
double orientationPieOpacity
Definition: MobilityVisualizerBase.h:48
value< double, units::rad > rad
Definition: Units.h:1245
#define M_PI
Definition: INETMath.h:52
cFigure::Color getColor(int index) const
Definition: ColorSet.cc:33