|
INET Framework for OMNeT++/OMNEST
|
#include <TreeCanvasVisualizerBase.h>
◆ addTreeVisualization()
| void inet::visualizer::TreeCanvasVisualizerBase::addTreeVisualization |
( |
const TreeVisualization * |
treeVisualization | ) |
|
|
overrideprotectedvirtual |
◆ createTreeVisualization()
◆ initialize()
| void inet::visualizer::TreeCanvasVisualizerBase::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
◆ refreshDisplay()
| void inet::visualizer::TreeCanvasVisualizerBase::refreshDisplay |
( |
| ) |
const |
|
overrideprotectedvirtual |
82 TreeVisualizerBase::refreshDisplay();
83 auto simulation = getSimulation();
85 auto treeVisualization = it.second;
86 auto treeCanvasVisualization =
static_cast<const TreeCanvasVisualization *
>(treeVisualization);
87 for (
int i = 0; i < treeCanvasVisualization->paths.size(); i++) {
88 auto& path = treeCanvasVisualization->paths[i];
89 auto figure = treeCanvasVisualization->figures[i];
90 auto moduleIds = path.moduleIds;
91 std::vector<LineSegment> segments;
92 for (
size_t index = 1; index < moduleIds.size(); index++) {
93 auto fromModuleId = moduleIds[index - 1];
94 auto toModuleId = moduleIds[index];
95 auto fromModule = simulation->getModule(fromModuleId);
96 auto toModule = simulation->getModule(toModuleId);
100 segments.push_back(LineSegment(fromPosition + shift, toPosition + shift));
102 std::vector<cFigure::Point> points;
103 for (
size_t index = 0; index < segments.size(); index++) {
107 auto& segment1 = segments[index - 1];
108 auto& segment2 = segments[index];
109 Coord intersection = intersectLines(segment1, segment2);
110 if (std::isfinite(intersection.x) && std::isfinite(intersection.y)) {
111 if (isPointOnSegment(segment1, intersection) && isPointOnSegment(segment2, intersection))
114 double distance = segment1.getPoint2().distance(segment2.getPoint1());
115 double distance1 = intersection.distance(segment1.getPoint2());
116 double distance2 = intersection.distance(segment2.getPoint1());
117 if (distance1 + distance2 < 4 * distance)
130 if (index == segments.size() - 1)
133 figure->setPoints(points);
◆ removeTreeVisualization()
| void inet::visualizer::TreeCanvasVisualizerBase::removeTreeVisualization |
( |
const TreeVisualization * |
treeVisualization | ) |
|
|
overrideprotectedvirtual |
Reimplemented from inet::visualizer::TreeVisualizerBase.
168 auto treeCanvasVisualization =
static_cast<const TreeCanvasVisualization *
>(treeVisualization);
169 for (
auto& path : treeVisualization->paths)
171 for (
auto figure : treeCanvasVisualization->figures)
◆ canvasProjection
| const CanvasProjection* inet::visualizer::TreeCanvasVisualizerBase::canvasProjection = nullptr |
|
protected |
◆ treeGroup
| cGroupFigure* inet::visualizer::TreeCanvasVisualizerBase::treeGroup = nullptr |
|
protected |
◆ zIndex
| double inet::visualizer::TreeCanvasVisualizerBase::zIndex = NaN |
|
protected |
The documentation for this class was generated from the following files:
const char * lineContactMode
Definition: TreeVisualizerBase.h:51
double lineShift
Definition: TreeVisualizerBase.h:48
void removeModulePath(const ModulePath *modulePath)
Definition: LineManager.cc:94
static CanvasProjection * getCanvasProjection(const cCanvas *canvas)
Definition: CanvasProjection.cc:53
double zIndex
Definition: TreeCanvasVisualizerBase.h:32
bool lineSmooth
Definition: TreeVisualizerBase.h:47
const CanvasProjection * canvasProjection
Definition: TreeCanvasVisualizerBase.h:33
ColorSet lineColorSet
Definition: TreeVisualizerBase.h:44
virtual void removeTreeVisualization(const TreeVisualization *treeVisualization)
Definition: TreeVisualizerBase.cc:67
cModule * visualizationTargetModule
Definition: VisualizerBase.h:25
LineManager * lineManager
Definition: TreeVisualizerBase.h:54
cFigure::LineStyle lineStyle
Definition: TreeVisualizerBase.h:45
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
double lineWidth
Definition: TreeVisualizerBase.h:46
virtual void addTreeVisualization(const TreeVisualization *treeVisualization)
Definition: TreeVisualizerBase.cc:61
virtual Coord getPosition(const cModule *networkNode) const
Definition: VisualizerBase.cc:39
cFigure::Point computeCanvasPoint(const Coord &point) const
Definition: CanvasProjection.cc:34
const char * lineShiftMode
Definition: TreeVisualizerBase.h:49
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
std::multimap< std::pair< int, int >, const TreeVisualization * > treeVisualizations
Maps source/destination modules to multiple trees between them.
Definition: TreeVisualizerBase.h:62
virtual void initialize(int stage) override
Definition: TreeVisualizerBase.cc:32
double lineContactSpacing
Definition: TreeVisualizerBase.h:50
cGroupFigure * treeGroup
Definition: TreeCanvasVisualizerBase.h:34
cFigure::Color getColor(int index) const
Definition: ColorSet.cc:33