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

#include <TracingObstacleLossVisualizerBase.h>

Inheritance diagram for inet::visualizer::TracingObstacleLossVisualizerBase:
inet::visualizer::VisualizerBase inet::visualizer::TracingObstacleLossCanvasVisualizer inet::visualizer::TracingObstacleLossOsgVisualizer

Classes

class  ObstacleLossVisualization
 

Parameters

bool displayIntersections = false
 
cFigure::Color intersectionLineColor
 
cFigure::LineStyle intersectionLineStyle
 
double intersectionLineWidth = NaN
 
bool displayFaceNormalVectors = false
 
cFigure::Color faceNormalLineColor
 
cFigure::LineStyle faceNormalLineStyle
 
double faceNormalLineWidth = NaN
 
const char * fadeOutMode = nullptr
 
double fadeOutTime = NaN
 
double fadeOutAnimationSpeed = NaN
 
std::vector< const ObstacleLossVisualization * > obstacleLossVisualizations
 
virtual void initialize (int stage) override
 
virtual void refreshDisplay () const override
 
virtual void preDelete (cComponent *root) override
 
virtual void subscribe ()
 
virtual void unsubscribe ()
 
virtual const ObstacleLossVisualizationcreateObstacleLossVisualization (const physicallayer::ITracingObstacleLoss::ObstaclePenetratedEvent *obstaclePenetratedEvent) const =0
 
virtual void addObstacleLossVisualization (const ObstacleLossVisualization *obstacleLossVisualization)
 
virtual void removeObstacleLossVisualization (const ObstacleLossVisualization *obstacleLossVisualization)
 
virtual void removeAllObstacleLossVisualizations ()
 
virtual void setAlpha (const ObstacleLossVisualization *obstacleLossVisualization, double alpha) const =0
 
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

◆ addObstacleLossVisualization()

void inet::visualizer::TracingObstacleLossVisualizerBase::addObstacleLossVisualization ( const ObstacleLossVisualization obstacleLossVisualization)
protectedvirtual

◆ createObstacleLossVisualization()

virtual const ObstacleLossVisualization* inet::visualizer::TracingObstacleLossVisualizerBase::createObstacleLossVisualization ( const physicallayer::ITracingObstacleLoss::ObstaclePenetratedEvent obstaclePenetratedEvent) const
protectedpure virtual

◆ initialize()

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

Reimplemented from inet::visualizer::VisualizerBase.

Reimplemented in inet::visualizer::TracingObstacleLossCanvasVisualizer, and inet::visualizer::TracingObstacleLossOsgVisualizer.

30 {
32  if (!hasGUI()) return;
33  if (stage == INITSTAGE_LOCAL) {
34  displayIntersections = par("displayIntersections");
35  intersectionLineColor = cFigure::parseColor(par("intersectionLineColor"));
36  intersectionLineStyle = cFigure::parseLineStyle(par("intersectionLineStyle"));
37  intersectionLineWidth = par("intersectionLineWidth");
38  displayFaceNormalVectors = par("displayFaceNormalVectors");
39  faceNormalLineColor = cFigure::parseColor(par("faceNormalLineColor"));
40  faceNormalLineStyle = cFigure::parseLineStyle(par("faceNormalLineStyle"));
41  faceNormalLineWidth = par("faceNormalLineWidth");
42  fadeOutMode = par("fadeOutMode");
43  fadeOutTime = par("fadeOutTime");
44  fadeOutAnimationSpeed = par("fadeOutAnimationSpeed");
46  subscribe();
47  }
48 }

Referenced by inet::visualizer::TracingObstacleLossOsgVisualizer::initialize(), and inet::visualizer::TracingObstacleLossCanvasVisualizer::initialize().

◆ preDelete()

void inet::visualizer::TracingObstacleLossVisualizerBase::preDelete ( cComponent *  root)
overrideprotectedvirtual
22 {
24  unsubscribe();
26  }
27 }

◆ receiveSignal()

void inet::visualizer::TracingObstacleLossVisualizerBase::receiveSignal ( cComponent *  source,
simsignal_t  signal,
cObject *  object,
cObject *  details 
)
overridevirtual
89 {
90  Enter_Method("%s", cComponent::getSignalName(signal));
91 
94  auto event = static_cast<ITracingObstacleLoss::ObstaclePenetratedEvent *>(object);
95  auto obstacleLossVisualization = createObstacleLossVisualization(event);
96  addObstacleLossVisualization(obstacleLossVisualization);
97  }
98  }
99  else
100  throw cRuntimeError("Unknown signal");
101 }

◆ refreshDisplay()

void inet::visualizer::TracingObstacleLossVisualizerBase::refreshDisplay ( ) const
overrideprotectedvirtual

Reimplemented in inet::visualizer::TracingObstacleLossCanvasVisualizer, and inet::visualizer::TracingObstacleLossOsgVisualizer.

51 {
52  AnimationPosition currentAnimationPosition;
53  std::vector<const ObstacleLossVisualization *> removedObstacleLossVisualizations;
54  for (auto obstacleLossVisualization : obstacleLossVisualizations) {
55  double delta;
56  if (!strcmp(fadeOutMode, "simulationTime"))
57  delta = (currentAnimationPosition.getSimulationTime() - obstacleLossVisualization->obstacleLossAnimationPosition.getSimulationTime()).dbl();
58  else if (!strcmp(fadeOutMode, "animationTime"))
59  delta = currentAnimationPosition.getAnimationTime() - obstacleLossVisualization->obstacleLossAnimationPosition.getAnimationTime();
60  else if (!strcmp(fadeOutMode, "realTime"))
61  delta = currentAnimationPosition.getRealTime() - obstacleLossVisualization->obstacleLossAnimationPosition.getRealTime();
62  else
63  throw cRuntimeError("Unknown fadeOutMode: %s", fadeOutMode);
64  if (delta > fadeOutTime)
65  removedObstacleLossVisualizations.push_back(obstacleLossVisualization);
66  else
67  setAlpha(obstacleLossVisualization, 1 - delta / fadeOutTime);
68  }
69  for (auto obstacleLossVisualization : removedObstacleLossVisualizations) {
70  const_cast<TracingObstacleLossVisualizerBase *>(this)->removeObstacleLossVisualization(obstacleLossVisualization);
71  delete obstacleLossVisualization;
72  }
73 }

Referenced by inet::visualizer::TracingObstacleLossOsgVisualizer::refreshDisplay(), and inet::visualizer::TracingObstacleLossCanvasVisualizer::refreshDisplay().

◆ removeAllObstacleLossVisualizations()

void inet::visualizer::TracingObstacleLossVisualizerBase::removeAllObstacleLossVisualizations ( )
protectedvirtual
114 {
115  std::vector<const ObstacleLossVisualization *> removedObstacleLossVisualizations;
116  for (auto it : obstacleLossVisualizations)
117  removedObstacleLossVisualizations.push_back(it);
118  for (auto it : removedObstacleLossVisualizations) {
120  delete it;
121  }
122 }

◆ removeObstacleLossVisualization()

void inet::visualizer::TracingObstacleLossVisualizerBase::removeObstacleLossVisualization ( const ObstacleLossVisualization obstacleLossVisualization)
protectedvirtual

◆ setAlpha()

virtual void inet::visualizer::TracingObstacleLossVisualizerBase::setAlpha ( const ObstacleLossVisualization obstacleLossVisualization,
double  alpha 
) const
protectedpure virtual

◆ subscribe()

void inet::visualizer::TracingObstacleLossVisualizerBase::subscribe ( )
protectedvirtual

◆ unsubscribe()

void inet::visualizer::TracingObstacleLossVisualizerBase::unsubscribe ( )
protectedvirtual
81 {
82  // NOTE: lookup the module again because it may have been deleted first
83  auto visualizationSubjectModule = findModuleFromPar<cModule>(par("visualizationSubjectModule"), this);
84  if (visualizationSubjectModule != nullptr)
86 }

Member Data Documentation

◆ displayFaceNormalVectors

◆ displayIntersections

◆ faceNormalLineColor

cFigure::Color inet::visualizer::TracingObstacleLossVisualizerBase::faceNormalLineColor
protected

◆ faceNormalLineStyle

cFigure::LineStyle inet::visualizer::TracingObstacleLossVisualizerBase::faceNormalLineStyle
protected

◆ faceNormalLineWidth

double inet::visualizer::TracingObstacleLossVisualizerBase::faceNormalLineWidth = NaN
protected

◆ fadeOutAnimationSpeed

double inet::visualizer::TracingObstacleLossVisualizerBase::fadeOutAnimationSpeed = NaN
protected

◆ fadeOutMode

const char* inet::visualizer::TracingObstacleLossVisualizerBase::fadeOutMode = nullptr
protected

◆ fadeOutTime

double inet::visualizer::TracingObstacleLossVisualizerBase::fadeOutTime = NaN
protected

◆ intersectionLineColor

cFigure::Color inet::visualizer::TracingObstacleLossVisualizerBase::intersectionLineColor
protected

◆ intersectionLineStyle

cFigure::LineStyle inet::visualizer::TracingObstacleLossVisualizerBase::intersectionLineStyle
protected

◆ intersectionLineWidth

double inet::visualizer::TracingObstacleLossVisualizerBase::intersectionLineWidth = NaN
protected

◆ obstacleLossVisualizations

std::vector<const ObstacleLossVisualization *> inet::visualizer::TracingObstacleLossVisualizerBase::obstacleLossVisualizations
protected

The documentation for this class was generated from the following files:
inet::visualizer::TracingObstacleLossVisualizerBase::fadeOutAnimationSpeed
double fadeOutAnimationSpeed
Definition: TracingObstacleLossVisualizerBase.h:44
inet::physicallayer::ITracingObstacleLoss::ObstaclePenetratedEvent
Definition: ITracingObstacleLoss.h:21
inet::physicallayer::ITracingObstacleLoss::obstaclePenetratedSignal
static simsignal_t obstaclePenetratedSignal
Definition: ITracingObstacleLoss.h:35
inet::remove
void remove(std::vector< T > &v, const Tk &a)
Definition: stlutils.h:107
inet::visualizer::TracingObstacleLossVisualizerBase::displayIntersections
bool displayIntersections
Definition: TracingObstacleLossVisualizerBase.h:34
inet::visualizer::TracingObstacleLossVisualizerBase::faceNormalLineStyle
cFigure::LineStyle faceNormalLineStyle
Definition: TracingObstacleLossVisualizerBase.h:40
inet::visualizer::TracingObstacleLossVisualizerBase::removeObstacleLossVisualization
virtual void removeObstacleLossVisualization(const ObstacleLossVisualization *obstacleLossVisualization)
Definition: TracingObstacleLossVisualizerBase.cc:108
inet::visualizer::TracingObstacleLossVisualizerBase::addObstacleLossVisualization
virtual void addObstacleLossVisualization(const ObstacleLossVisualization *obstacleLossVisualization)
Definition: TracingObstacleLossVisualizerBase.cc:103
inet::visualizer::TracingObstacleLossVisualizerBase::intersectionLineColor
cFigure::Color intersectionLineColor
Definition: TracingObstacleLossVisualizerBase.h:35
inet::visualizer::TracingObstacleLossVisualizerBase::faceNormalLineColor
cFigure::Color faceNormalLineColor
Definition: TracingObstacleLossVisualizerBase.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::TracingObstacleLossVisualizerBase::displayFaceNormalVectors
bool displayFaceNormalVectors
Definition: TracingObstacleLossVisualizerBase.h:38
inet::visualizer::TracingObstacleLossVisualizerBase::fadeOutTime
double fadeOutTime
Definition: TracingObstacleLossVisualizerBase.h:43
inet::visualizer::TracingObstacleLossVisualizerBase::obstacleLossVisualizations
std::vector< const ObstacleLossVisualization * > obstacleLossVisualizations
Definition: TracingObstacleLossVisualizerBase.h:47
Enter_Method
#define Enter_Method(...)
Definition: SelfDoc.h:71
inet::visualizer::TracingObstacleLossVisualizerBase::faceNormalLineWidth
double faceNormalLineWidth
Definition: TracingObstacleLossVisualizerBase.h:41
inet::visualizer::VisualizerBase::visualizationSubjectModule
cModule * visualizationSubjectModule
Definition: VisualizerBase.h:26
inet::visualizer::TracingObstacleLossVisualizerBase::createObstacleLossVisualization
virtual const ObstacleLossVisualization * createObstacleLossVisualization(const physicallayer::ITracingObstacleLoss::ObstaclePenetratedEvent *obstaclePenetratedEvent) const =0
inet::visualizer::TracingObstacleLossVisualizerBase::intersectionLineStyle
cFigure::LineStyle intersectionLineStyle
Definition: TracingObstacleLossVisualizerBase.h:36
inet::visualizer::TracingObstacleLossVisualizerBase::setAlpha
virtual void setAlpha(const ObstacleLossVisualization *obstacleLossVisualization, double alpha) const =0
inet::visualizer::TracingObstacleLossVisualizerBase::subscribe
virtual void subscribe()
Definition: TracingObstacleLossVisualizerBase.cc:75
inet::visualizer::TracingObstacleLossVisualizerBase::intersectionLineWidth
double intersectionLineWidth
Definition: TracingObstacleLossVisualizerBase.h:37
inet::visualizer::TracingObstacleLossVisualizerBase::removeAllObstacleLossVisualizations
virtual void removeAllObstacleLossVisualizations()
Definition: TracingObstacleLossVisualizerBase.cc:113
inet::visualizer::VisualizerBase::initialize
virtual void initialize(int stage) override
Definition: VisualizerBase.cc:23
inet::visualizer::TracingObstacleLossVisualizerBase::unsubscribe
virtual void unsubscribe()
Definition: TracingObstacleLossVisualizerBase.cc:80
inet::visualizer::TracingObstacleLossVisualizerBase::fadeOutMode
const char * fadeOutMode
Definition: TracingObstacleLossVisualizerBase.h:42