|
INET Framework for OMNeT++/OMNEST
|
#include <TracingObstacleLossOsgVisualizer.h>
|
| virtual void | receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override |
| |
◆ addObstacleLossVisualization()
| void inet::visualizer::TracingObstacleLossOsgVisualizer::addObstacleLossVisualization |
( |
const ObstacleLossVisualization * |
obstacleLossVisualization | ) |
|
|
overrideprotectedvirtual |
◆ createObstacleLossVisualization()
Implements inet::visualizer::TracingObstacleLossVisualizerBase.
46 auto object = obstaclePenetratedEvent->object;
47 auto intersection1 = obstaclePenetratedEvent->intersection1;
48 auto intersection2 = obstaclePenetratedEvent->intersection2;
49 auto normal1 = obstaclePenetratedEvent->normal1;
50 auto normal2 = obstaclePenetratedEvent->normal2;
52 const RotationMatrix rotation(object->getOrientation().toEulerAngles());
53 const Coord& position =
object->getPosition();
54 const Coord rotatedIntersection1 = rotation.rotateVector(intersection1);
55 const Coord rotatedIntersection2 = rotation.rotateVector(intersection2);
56 double intersectionDistance = intersection2.distance(intersection1);
57 auto group =
new osg::Group();
60 auto geode =
new osg::Geode();
61 geode->addDrawable(geometry);
63 group->addChild(geode);
66 Coord normalVisualization1 = normal1 / normal1.length() * intersectionDistance / 10;
67 Coord normalVisualization2 = normal2 / normal2.length() * intersectionDistance / 10;
68 auto geometry1 =
inet::osg::createLineGeometry(rotatedIntersection1 + position, rotatedIntersection1 + position + rotation.rotateVector(normalVisualization1));
69 auto geometry2 =
inet::osg::createLineGeometry(rotatedIntersection2 + position, rotatedIntersection2 + position + rotation.rotateVector(normalVisualization2));
70 auto geode =
new osg::Geode();
71 geode->addDrawable(geometry1);
72 geode->addDrawable(geometry2);
74 group->addChild(geode);
76 return new ObstacleLossOsgVisualization(group);
◆ initialize()
| void inet::visualizer::TracingObstacleLossOsgVisualizer::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
◆ refreshDisplay()
| void inet::visualizer::TracingObstacleLossOsgVisualizer::refreshDisplay |
( |
| ) |
const |
|
overrideprotectedvirtual |
◆ removeObstacleLossVisualization()
| void inet::visualizer::TracingObstacleLossOsgVisualizer::removeObstacleLossVisualization |
( |
const ObstacleLossVisualization * |
obstacleLossVisualization | ) |
|
|
overrideprotectedvirtual |
Reimplemented from inet::visualizer::TracingObstacleLossVisualizerBase.
90 auto obstacleLossOsgVisualization =
static_cast<const ObstacleLossOsgVisualization *
>(obstacleLossVisualization);
91 auto node = obstacleLossOsgVisualization->node;
92 node->getParent(0)->removeChild(node);
◆ setAlpha()
| void inet::visualizer::TracingObstacleLossOsgVisualizer::setAlpha |
( |
const ObstacleLossVisualization * |
obstacleLossVisualization, |
|
|
double |
alpha |
|
) |
| const |
|
overrideprotectedvirtual |
Implements inet::visualizer::TracingObstacleLossVisualizerBase.
97 auto obstacleLossOsgVisualization =
static_cast<const ObstacleLossOsgVisualization *
>(obstacleLossVisualization);
98 auto node = obstacleLossOsgVisualization->node;
99 for (
unsigned int i = 0; i < node->getNumChildren(); i++) {
100 auto material =
static_cast<osg::Material *
>(node->getChild(i)->getOrCreateStateSet()->getAttribute(osg::StateAttribute::MATERIAL));
101 material->setAlpha(osg::Material::FRONT_AND_BACK,
alpha);
◆ obstacleLossNode
| osg::Group* inet::visualizer::TracingObstacleLossOsgVisualizer::obstacleLossNode = nullptr |
|
protected |
The documentation for this class was generated from the following files:
double fadeOutAnimationSpeed
Definition: TracingObstacleLossVisualizerBase.h:44
bool displayIntersections
Definition: TracingObstacleLossVisualizerBase.h:34
cFigure::LineStyle faceNormalLineStyle
Definition: TracingObstacleLossVisualizerBase.h:40
virtual void removeObstacleLossVisualization(const ObstacleLossVisualization *obstacleLossVisualization)
Definition: TracingObstacleLossVisualizerBase.cc:108
virtual void addObstacleLossVisualization(const ObstacleLossVisualization *obstacleLossVisualization)
Definition: TracingObstacleLossVisualizerBase.cc:103
StateSet * createLineStateSet(const cFigure::Color &color, const cFigure::LineStyle &style, double width, bool overlay)
Definition: OsgUtils.cc:293
virtual void initialize(int stage) override
Definition: TracingObstacleLossVisualizerBase.cc:29
virtual void refreshDisplay() const override
Definition: TracingObstacleLossVisualizerBase.cc:50
cModule * visualizationTargetModule
Definition: VisualizerBase.h:25
Geometry * createLineGeometry(const Coord &start, const Coord &end)
Definition: OsgUtils.cc:57
virtual SimulationScene * getSimulationScene()
Definition: OsgScene.cc:22
cFigure::Color intersectionLineColor
Definition: TracingObstacleLossVisualizerBase.h:35
cFigure::Color faceNormalLineColor
Definition: TracingObstacleLossVisualizerBase.h:39
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
bool displayFaceNormalVectors
Definition: TracingObstacleLossVisualizerBase.h:38
std::vector< const ObstacleLossVisualization * > obstacleLossVisualizations
Definition: TracingObstacleLossVisualizerBase.h:47
double faceNormalLineWidth
Definition: TracingObstacleLossVisualizerBase.h:41
const value< double, units::unit > alpha(7.2973525376e-3)
cFigure::LineStyle intersectionLineStyle
Definition: TracingObstacleLossVisualizerBase.h:36
osg::Group * obstacleLossNode
Definition: TracingObstacleLossOsgVisualizer.h:31
double intersectionLineWidth
Definition: TracingObstacleLossVisualizerBase.h:37