INET Framework for OMNeT++/OMNEST
inet::visualizer::MobilityVisualizerBase Class Referenceabstract

#include <MobilityVisualizerBase.h>

Inheritance diagram for inet::visualizer::MobilityVisualizerBase:
inet::visualizer::VisualizerBase inet::visualizer::MobilityCanvasVisualizer inet::visualizer::MobilityOsgVisualizer

Classes

class  MobilityVisualization
 

Parameters

bool displayMobility = false
 
double animationSpeed = NaN
 
ModuleFilter moduleFilter
 
bool displayPositions = false
 
double positionCircleRadius = NaN
 
double positionCircleLineWidth = NaN
 
ColorSet positionCircleLineColorSet
 
ColorSet positionCircleFillColorSet
 
bool displayOrientations = false
 
double orientationPieRadius = NaN
 
double orientationPieSize = NaN
 
double orientationPieOpacity = NaN
 
cFigure::Color orientationLineColor
 
cFigure::LineStyle orientationLineStyle
 
double orientationLineWidth = NaN
 
cFigure::Color orientationFillColor
 
bool displayVelocities = false
 
double velocityArrowScale = NaN
 
cFigure::Color velocityLineColor
 
cFigure::LineStyle velocityLineStyle
 
double velocityLineWidth = NaN
 
bool displayMovementTrails = false
 
bool autoMovementTrailLineColor = false
 
ColorSet movementTrailLineColorSet
 
cFigure::LineStyle movementTrailLineStyle
 
double movementTrailLineWidth = NaN
 
int trailLength = -1
 
std::map< int, MobilityVisualization * > mobilityVisualizations
 
virtual void initialize (int stage) override
 
virtual void handleParameterChange (const char *name) override
 
virtual void preDelete (cComponent *root) override
 
virtual void subscribe ()
 
virtual void unsubscribe ()
 
virtual MobilityVisualizationcreateMobilityVisualization (IMobility *mobility)=0
 
virtual MobilityVisualizationgetMobilityVisualization (const IMobility *mobility) const
 
virtual void addMobilityVisualization (const IMobility *mobility, MobilityVisualization *mobilityVisualization)
 
virtual void removeMobilityVisualization (const MobilityVisualization *visualization)
 
virtual void removeAllMobilityVisualizations ()
 
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override
 

Additional Inherited Members

- 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 inherited from inet::visualizer::VisualizerBase
cModule * visualizationTargetModule = nullptr
 
cModule * visualizationSubjectModule = nullptr
 
const char * tags = nullptr
 

Member Function Documentation

◆ addMobilityVisualization()

void inet::visualizer::MobilityVisualizerBase::addMobilityVisualization ( const IMobility mobility,
MobilityVisualization mobilityVisualization 
)
protectedvirtual

◆ createMobilityVisualization()

virtual MobilityVisualization* inet::visualizer::MobilityVisualizerBase::createMobilityVisualization ( IMobility mobility)
protectedpure virtual

◆ getMobilityVisualization()

MobilityVisualizerBase::MobilityVisualization * inet::visualizer::MobilityVisualizerBase::getMobilityVisualization ( const IMobility mobility) const
protectedvirtual
96 {
97  auto it = mobilityVisualizations.find(mobility->getId());
98  return (it == mobilityVisualizations.end()) ? nullptr : it->second;
99 }

Referenced by receiveSignal().

◆ handleParameterChange()

void inet::visualizer::MobilityVisualizerBase::handleParameterChange ( const char *  name)
overrideprotectedvirtual
70 {
71  if (!hasGUI()) return;
72  if (name != nullptr) {
73  if (!strcmp(name, "moduleFilter"))
74  moduleFilter.setPattern(par("moduleFilter"));
75  // TODO
76  }
77 }

◆ initialize()

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

Reimplemented from inet::visualizer::VisualizerBase.

Reimplemented in inet::visualizer::MobilityCanvasVisualizer, and inet::visualizer::MobilityOsgVisualizer.

30 {
32  if (!hasGUI()) return;
33  if (stage == INITSTAGE_LOCAL) {
34  displayMobility = par("displayMobility");
35  animationSpeed = par("animationSpeed");
36  moduleFilter.setPattern(par("moduleFilter"));
37  // position
38  displayPositions = par("displayPositions");
39  positionCircleRadius = par("positionCircleRadius");
40  positionCircleLineWidth = par("positionCircleLineWidth");
41  positionCircleLineColorSet.parseColors(par("positionCircleLineColor"));
42  positionCircleFillColorSet.parseColors(par("positionCircleFillColor"));
43  // orientation
44  displayOrientations = par("displayOrientations");
45  orientationPieRadius = par("orientationPieRadius");
46  orientationPieSize = par("orientationPieSize");
47  orientationPieOpacity = par("orientationPieOpacity");
48  orientationLineColor = cFigure::parseColor(par("orientationLineColor"));
49  orientationLineStyle = cFigure::parseLineStyle(par("orientationLineStyle"));
50  orientationLineWidth = par("orientationLineWidth");
51  orientationFillColor = cFigure::parseColor(par("orientationFillColor"));
52  // velocity
53  displayVelocities = par("displayVelocities");
54  velocityArrowScale = par("velocityArrowScale");
55  velocityLineColor = cFigure::parseColor(par("velocityLineColor"));
56  velocityLineStyle = cFigure::parseLineStyle(par("velocityLineStyle"));
57  velocityLineWidth = par("velocityLineWidth");
58  // movement trail
59  displayMovementTrails = par("displayMovementTrails");
60  movementTrailLineColorSet.parseColors(par("movementTrailLineColor"));
61  movementTrailLineStyle = cFigure::parseLineStyle(par("movementTrailLineStyle"));
62  movementTrailLineWidth = par("movementTrailLineWidth");
63  trailLength = par("trailLength");
64  if (displayMobility)
65  subscribe();
66  }
67 }

Referenced by inet::visualizer::MobilityOsgVisualizer::initialize(), and inet::visualizer::MobilityCanvasVisualizer::initialize().

◆ preDelete()

void inet::visualizer::MobilityVisualizerBase::preDelete ( cComponent *  root)
overrideprotectedvirtual
22 {
23  if (displayMobility) {
24  unsubscribe();
26  }
27 }

◆ receiveSignal()

void inet::visualizer::MobilityVisualizerBase::receiveSignal ( cComponent *  source,
simsignal_t  signal,
cObject *  object,
cObject *  details 
)
overridevirtual
123 {
124  Enter_Method("%s", cComponent::getSignalName(signal));
125 
127  if (moduleFilter.matches(check_and_cast<cModule *>(source))) {
128  auto mobility = dynamic_cast<IMobility *>(source);
129  auto mobilityVisualization = getMobilityVisualization(mobility);
130  if (mobilityVisualization == nullptr) {
131  mobilityVisualization = createMobilityVisualization(mobility);
132  addMobilityVisualization(mobility, mobilityVisualization);
133  }
134  }
135  }
136  else if (signal == PRE_MODEL_CHANGE) {
137  if (dynamic_cast<cPreModuleDeleteNotification *>(object)) {
138  if (auto mobility = dynamic_cast<IMobility *>(source)) {
139  auto mobilityVisualization = getMobilityVisualization(mobility);
140  removeMobilityVisualization(mobilityVisualization);
141  delete mobilityVisualization;
142  }
143  }
144  }
145  else
146  throw cRuntimeError("Unknown signal");
147 }

◆ removeAllMobilityVisualizations()

void inet::visualizer::MobilityVisualizerBase::removeAllMobilityVisualizations ( )
protectedvirtual
112 {
113  std::vector<const MobilityVisualization *> removedMobilityVisualizations;
114  for (auto it : mobilityVisualizations)
115  removedMobilityVisualizations.push_back(it.second);
116  for (auto mobilityVisualization : removedMobilityVisualizations) {
117  removeMobilityVisualization(mobilityVisualization);
118  delete mobilityVisualization;
119  }
120 }

Referenced by preDelete().

◆ removeMobilityVisualization()

void inet::visualizer::MobilityVisualizerBase::removeMobilityVisualization ( const MobilityVisualization visualization)
protectedvirtual

◆ subscribe()

void inet::visualizer::MobilityVisualizerBase::subscribe ( )
protectedvirtual
80 {
82  visualizationSubjectModule->subscribe(PRE_MODEL_CHANGE, this);
83 }

Referenced by initialize().

◆ unsubscribe()

void inet::visualizer::MobilityVisualizerBase::unsubscribe ( )
protectedvirtual
86 {
87  // NOTE: lookup the module again because it may have been deleted first
88  auto visualizationSubjectModule = findModuleFromPar<cModule>(par("visualizationSubjectModule"), this);
89  if (visualizationSubjectModule != nullptr) {
91  visualizationSubjectModule->unsubscribe(PRE_MODEL_CHANGE, this);
92  }
93 }

Referenced by preDelete().

Member Data Documentation

◆ animationSpeed

double inet::visualizer::MobilityVisualizerBase::animationSpeed = NaN
protected

◆ autoMovementTrailLineColor

bool inet::visualizer::MobilityVisualizerBase::autoMovementTrailLineColor = false
protected

◆ displayMobility

bool inet::visualizer::MobilityVisualizerBase::displayMobility = false
protected

Referenced by initialize(), and preDelete().

◆ displayMovementTrails

◆ displayOrientations

◆ displayPositions

◆ displayVelocities

◆ mobilityVisualizations

◆ moduleFilter

ModuleFilter inet::visualizer::MobilityVisualizerBase::moduleFilter
protected

◆ movementTrailLineColorSet

ColorSet inet::visualizer::MobilityVisualizerBase::movementTrailLineColorSet
protected

◆ movementTrailLineStyle

cFigure::LineStyle inet::visualizer::MobilityVisualizerBase::movementTrailLineStyle
protected

◆ movementTrailLineWidth

double inet::visualizer::MobilityVisualizerBase::movementTrailLineWidth = NaN
protected

◆ orientationFillColor

cFigure::Color inet::visualizer::MobilityVisualizerBase::orientationFillColor
protected

◆ orientationLineColor

cFigure::Color inet::visualizer::MobilityVisualizerBase::orientationLineColor
protected

◆ orientationLineStyle

cFigure::LineStyle inet::visualizer::MobilityVisualizerBase::orientationLineStyle
protected

◆ orientationLineWidth

double inet::visualizer::MobilityVisualizerBase::orientationLineWidth = NaN
protected

◆ orientationPieOpacity

double inet::visualizer::MobilityVisualizerBase::orientationPieOpacity = NaN
protected

◆ orientationPieRadius

double inet::visualizer::MobilityVisualizerBase::orientationPieRadius = NaN
protected

◆ orientationPieSize

double inet::visualizer::MobilityVisualizerBase::orientationPieSize = NaN
protected

◆ positionCircleFillColorSet

ColorSet inet::visualizer::MobilityVisualizerBase::positionCircleFillColorSet
protected

◆ positionCircleLineColorSet

ColorSet inet::visualizer::MobilityVisualizerBase::positionCircleLineColorSet
protected

◆ positionCircleLineWidth

double inet::visualizer::MobilityVisualizerBase::positionCircleLineWidth = NaN
protected

◆ positionCircleRadius

double inet::visualizer::MobilityVisualizerBase::positionCircleRadius = NaN
protected

◆ trailLength

int inet::visualizer::MobilityVisualizerBase::trailLength = -1
protected

◆ velocityArrowScale

double inet::visualizer::MobilityVisualizerBase::velocityArrowScale = NaN
protected

◆ velocityLineColor

cFigure::Color inet::visualizer::MobilityVisualizerBase::velocityLineColor
protected

◆ velocityLineStyle

cFigure::LineStyle inet::visualizer::MobilityVisualizerBase::velocityLineStyle
protected

◆ velocityLineWidth

double inet::visualizer::MobilityVisualizerBase::velocityLineWidth = NaN
protected

The documentation for this class was generated from the following files:
inet::visualizer::MobilityVisualizerBase::displayVelocities
bool displayVelocities
Definition: MobilityVisualizerBase.h:54
inet::visualizer::MobilityVisualizerBase::orientationLineColor
cFigure::Color orientationLineColor
Definition: MobilityVisualizerBase.h:49
inet::visualizer::ColorSet::parseColors
void parseColors(const char *colorNames)
Definition: ColorSet.cc:14
inet::visualizer::MobilityVisualizerBase::displayMobility
bool displayMobility
Definition: MobilityVisualizerBase.h:35
inet::visualizer::MobilityVisualizerBase::moduleFilter
ModuleFilter moduleFilter
Definition: MobilityVisualizerBase.h:37
inet::visualizer::MobilityVisualizerBase::getMobilityVisualization
virtual MobilityVisualization * getMobilityVisualization(const IMobility *mobility) const
Definition: MobilityVisualizerBase.cc:95
inet::visualizer::MobilityVisualizerBase::trailLength
int trailLength
Definition: MobilityVisualizerBase.h:65
inet::visualizer::MobilityVisualizerBase::velocityLineStyle
cFigure::LineStyle velocityLineStyle
Definition: MobilityVisualizerBase.h:57
inet::visualizer::MobilityVisualizerBase::createMobilityVisualization
virtual MobilityVisualization * createMobilityVisualization(IMobility *mobility)=0
inet::visualizer::MobilityVisualizerBase::velocityLineColor
cFigure::Color velocityLineColor
Definition: MobilityVisualizerBase.h:56
inet::visualizer::MobilityVisualizerBase::movementTrailLineColorSet
ColorSet movementTrailLineColorSet
Definition: MobilityVisualizerBase.h:62
inet::visualizer::MobilityVisualizerBase::orientationLineStyle
cFigure::LineStyle orientationLineStyle
Definition: MobilityVisualizerBase.h:50
inet::visualizer::MobilityVisualizerBase::orientationFillColor
cFigure::Color orientationFillColor
Definition: MobilityVisualizerBase.h:52
inet::visualizer::MobilityVisualizerBase::mobilityVisualizations
std::map< int, MobilityVisualization * > mobilityVisualizations
Definition: MobilityVisualizerBase.h:68
inet::IMobility::mobilityStateChangedSignal
static simsignal_t mobilityStateChangedSignal
A signal used to publish mobility state changes.
Definition: IMobility.h:40
inet::visualizer::MobilityVisualizerBase::movementTrailLineStyle
cFigure::LineStyle movementTrailLineStyle
Definition: MobilityVisualizerBase.h:63
inet::visualizer::MobilityVisualizerBase::orientationPieRadius
double orientationPieRadius
Definition: MobilityVisualizerBase.h:46
inet::visualizer::MobilityVisualizerBase::orientationLineWidth
double orientationLineWidth
Definition: MobilityVisualizerBase.h:51
inet::visualizer::MobilityVisualizerBase::displayPositions
bool displayPositions
Definition: MobilityVisualizerBase.h:39
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::visualizer::MobilityVisualizerBase::positionCircleLineColorSet
ColorSet positionCircleLineColorSet
Definition: MobilityVisualizerBase.h:42
inet::visualizer::MobilityVisualizerBase::positionCircleLineWidth
double positionCircleLineWidth
Definition: MobilityVisualizerBase.h:41
inet::visualizer::ModuleFilter::matches
bool matches(const cModule *module) const
Definition: ModuleFilter.cc:19
inet::visualizer::MobilityVisualizerBase::displayOrientations
bool displayOrientations
Definition: MobilityVisualizerBase.h:45
inet::visualizer::MobilityVisualizerBase::positionCircleRadius
double positionCircleRadius
Definition: MobilityVisualizerBase.h:40
inet::visualizer::MobilityVisualizerBase::movementTrailLineWidth
double movementTrailLineWidth
Definition: MobilityVisualizerBase.h:64
inet::visualizer::MobilityVisualizerBase::addMobilityVisualization
virtual void addMobilityVisualization(const IMobility *mobility, MobilityVisualization *mobilityVisualization)
Definition: MobilityVisualizerBase.cc:101
inet::visualizer::MobilityVisualizerBase::displayMovementTrails
bool displayMovementTrails
Definition: MobilityVisualizerBase.h:60
inet::visualizer::MobilityVisualizerBase::removeMobilityVisualization
virtual void removeMobilityVisualization(const MobilityVisualization *visualization)
Definition: MobilityVisualizerBase.cc:106
inet::visualizer::MobilityVisualizerBase::removeAllMobilityVisualizations
virtual void removeAllMobilityVisualizations()
Definition: MobilityVisualizerBase.cc:111
inet::visualizer::MobilityVisualizerBase::unsubscribe
virtual void unsubscribe()
Definition: MobilityVisualizerBase.cc:85
Enter_Method
#define Enter_Method(...)
Definition: SelfDoc.h:71
inet::visualizer::MobilityVisualizerBase::velocityLineWidth
double velocityLineWidth
Definition: MobilityVisualizerBase.h:58
inet::visualizer::MobilityVisualizerBase::velocityArrowScale
double velocityArrowScale
Definition: MobilityVisualizerBase.h:55
inet::visualizer::MobilityVisualizerBase::animationSpeed
double animationSpeed
Definition: MobilityVisualizerBase.h:36
inet::visualizer::VisualizerBase::visualizationSubjectModule
cModule * visualizationSubjectModule
Definition: VisualizerBase.h:26
inet::visualizer::MobilityVisualizerBase::subscribe
virtual void subscribe()
Definition: MobilityVisualizerBase.cc:79
inet::visualizer::MobilityVisualizerBase::orientationPieSize
double orientationPieSize
Definition: MobilityVisualizerBase.h:47
inet::visualizer::MobilityVisualizerBase::positionCircleFillColorSet
ColorSet positionCircleFillColorSet
Definition: MobilityVisualizerBase.h:43
inet::visualizer::MobilityVisualizerBase::orientationPieOpacity
double orientationPieOpacity
Definition: MobilityVisualizerBase.h:48
inet::visualizer::ModuleFilter::setPattern
void setPattern(const char *pattern)
Definition: ModuleFilter.cc:14
inet::visualizer::VisualizerBase::initialize
virtual void initialize(int stage) override
Definition: VisualizerBase.cc:23