|
INET Framework for OMNeT++/OMNEST
|
#include <GateScheduleCanvasVisualizer.h>
◆ addGateVisualization()
| void inet::visualizer::GateScheduleCanvasVisualizer::addGateVisualization |
( |
const GateVisualization * |
gateVisualization | ) |
|
|
overrideprotectedvirtual |
◆ createGateVisualization()
Implements inet::visualizer::GateScheduleVisualizerBase.
44 auto module = check_and_cast<cModule *>(gate);
45 auto figure =
new GateFigure(
"gate");
46 figure->setTags((std::string(
"gate ") +
tags).c_str());
47 figure->setTooltip(
"This figure represents a gate");
48 figure->setAssociatedObject(module);
50 figure->setBounds(cFigure::Rectangle(0, 0,
width,
height));
55 return new GateCanvasVisualization(networkNodeVisualization, figure, gate);
◆ initialize()
| void inet::visualizer::GateScheduleCanvasVisualizer::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
◆ refreshGateVisualization()
| void inet::visualizer::GateScheduleCanvasVisualizer::refreshGateVisualization |
( |
const GateVisualization * |
gateVisualization | ) |
const |
|
overrideprotectedvirtual |
Implements inet::visualizer::GateScheduleVisualizerBase.
77 auto gateCanvasVisualization =
static_cast<const GateCanvasVisualization *
>(gateVisualization);
78 auto gate = check_and_cast<queueing::PeriodicGate *>(gateVisualization->gate);
79 auto figure = gateCanvasVisualization->figure;
80 auto durations = gate->getDurations();
81 bool open = gate->getInitiallyOpen();
83 for (
int i = 0; i < durations->size(); i++)
84 scheduleDuration += durations->get(i).doubleValueInUnit(
"s");
85 if (scheduleDuration == 0)
86 figure->addSchedule(0,
width, open);
89 auto currentTime = gate->getClockTime();
90 clocktime_t schedulePosition = std::fmod((currentTime + gate->getInitialOffset()).dbl(), scheduleDuration.dbl());
93 auto indexStart = (int)std::floor(scheduleDisplayStart.dbl() / scheduleDuration.dbl()) * durations->size();
94 auto indexEnd = (int)std::ceil(scheduleDisplayEnd.dbl() / scheduleDuration.dbl()) * durations->size();
95 clocktime_t displayTime = currentTime - schedulePosition + indexStart / durations->size() * scheduleDuration;
96 figure->clearSchedule();
97 for (
int i = indexStart; i <= indexEnd; i++) {
98 auto duration = durations->get((i + durations->size()) % durations->size()).doubleValueInUnit(
"s");
100 clocktime_t endTime = displayTime + duration - currentTime;
105 figure->addSchedule(start, end, open);
106 displayTime += duration;
◆ removeGateVisualization()
| void inet::visualizer::GateScheduleCanvasVisualizer::removeGateVisualization |
( |
const GateVisualization * |
gateVisualization | ) |
|
|
overrideprotectedvirtual |
Reimplemented from inet::visualizer::GateScheduleVisualizerBase.
69 auto gateCanvasVisualization =
static_cast<const GateCanvasVisualization *
>(gateVisualization);
70 auto figure = gateCanvasVisualization->figure;
72 gateCanvasVisualization->networkNodeVisualization->removeAnnotation(figure);
◆ networkNodeVisualizer
◆ zIndex
| double inet::visualizer::GateScheduleCanvasVisualizer::zIndex = NaN |
|
protected |
The documentation for this class was generated from the following files:
double spacing
Definition: GateScheduleVisualizerBase.h:61
ClockTime clocktime_t
Definition: contract/ClockTime.h:25
double min(const double a, const double b)
Returns the minimum of a and b.
Definition: SctpAssociation.h:261
cModule * getContainingNode(const cModule *from)
Find the node containing the given module.
Definition: ModuleAccess.cc:40
double zIndex
Definition: GateScheduleCanvasVisualizer.h:36
virtual const char * getGateScheduleVisualizationText(cModule *module) const
Definition: GateScheduleVisualizerBase.cc:129
double placementPriority
Definition: GateScheduleVisualizerBase.h:63
virtual void addGateVisualization(const GateVisualization *gateVisualization)
Definition: GateScheduleVisualizerBase.cc:101
StringFormat stringFormat
Definition: GateScheduleVisualizerBase.h:57
double width
Definition: GateScheduleVisualizerBase.h:59
virtual void removeGateVisualization(const GateVisualization *gateVisualization)
Definition: GateScheduleVisualizerBase.cc:106
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
double max(const double a, const double b)
Returns the maximum of a and b.
Definition: SctpAssociation.h:266
double dbl() const
Converts simulation time (in seconds) to a double.
Definition: common/ClockTime.h:205
clocktime_t displayDuration
Definition: GateScheduleVisualizerBase.h:64
double height
Definition: GateScheduleVisualizerBase.h:60
double currentTimePosition
Definition: GateScheduleVisualizerBase.h:65
const char * tags
Definition: VisualizerBase.h:27
ModuleRefByPar< NetworkNodeCanvasVisualizer > networkNodeVisualizer
Definition: GateScheduleCanvasVisualizer.h:37
virtual void initialize(int stage) override
Definition: GateScheduleVisualizerBase.cc:60
Placement placementHint
Definition: GateScheduleVisualizerBase.h:62