/* ** ----------------------------------------------------------------------------------------------- ** ** @RDE_HEADER@ ** Implementation of fan of sight ** $Id$ ** $HeadURL$ ** $Author$ ** ** ----------------------------------------------------------------------------------------------- ** ** Hardware-Environment: Intel-PC ** Software-Environment: Windows 7, Qt 5.x. ArcGISRuntimeQt 100.2 ** ** Language ........: C++ 11 ** ** ----------------------------------------------------------------------------------------------- ** ** Autor ...........: Nikolaus Hanekamp, SEDG, Tel. 2906 ** Jörg Turla, SPDG, Tel. 3132 ** ** ----------------------------------------------------------------------------------------------- ** ** Notices .........: ** ** 01.02.2005, NH : Urversion ** 15.05.2018, JT : adapting GeISiR source to SituationMap ** ** ----------------------------------------------------------------------------------------------- */ #pragma once #include #include #include namespace SituationMap { class MapImpl; class SightBeam; class SITUATIONMAP_EXPORT SightFanImpl : public QObject, public AbstractMapObjectImpl, public virtual SightFan { friend class SightBeam; Q_OBJECT public: explicit SightFanImpl(const QString &debugInfo = QString()); virtual ~SightFanImpl(); void initColors(); void initFan( const QPointF ¢er , double centHat , double objHat , double radius , double innerRadius , double startAngle , double dAngle , unsigned int nrFans , double alpha ) override; void initFan( const Point3D ¢er , double objHat , double radius , double innerRadius , double startAngle , double dAngle , unsigned int nrFans , double alpha ) override; void setCenter(const QPointF ¢er) override; void setCenter(const Point3D ¢er) override; void setCenter(const QPointF ¢er, double centerHat) override; void setCenterHat(double centerHat) override; void setObjectHat(double objHat) override; void setRadius(double radius) override; void setInnerRadius(double radius) override; void setStartAngle(double startAngle) override; void setdeltaAngle(double dAngle) override; void setNoOfFans(double noFans) override; void setAlpha(double alpha) override; QPointF center() const override; double centerHat() const override; double objectHat() const override; double innerRadius() const override; double radius() const override; double startAngle() const override; double dAngle() const override; double alpha() const override; unsigned int noOfFans() const override; void move(const QPointF ¢er) override; void move(const QPointF ¢er, double centHat, double objHat) override; void setFanColor(const QColor & visible, const QColor &invisible, const QColor &undefined) override; void setFanColorMark(float colMult) override; void show() override; /** Overloaded from base class to implement the construction of GraphicalObjects. */ bool init( MapImpl *mapImpl, const QString &logicalLayerName = QStringLiteral("SightFanLayer")) override; void boundingBox(BoundingBox &bbox) const override; protected: bool updateViewImplPre() override; bool updateViewImpl() override; bool updateViewImplPost() override; void calculateSightBeamVec(); void calculateSightBeam(SightBeam &sBeam); void calculateSightBeam(const LOSVector &losProfile, SightBeam &sBeam); class Internal; Internal *m_internal; private slots: void delayedMove(); private: QTimer *m_moveDelayTimer; QPointF m_moveDelayedCenter; }; // SightFanImpl } // SituationMap /* ----------------------------------------------------------------------------------------------- ** CVS-Id/Release ...: $Header$ ** ----------------------------------------------------------------------------------------------- ** ** Historie: ** ** $Log: not supported by cvs2svn $ ** Revision 1.9 2007/12/18 18:11:00 joerg ** draw() um bias erweitert und Rückgabe Boolean = true wenn wriklich gezeichnet wurde. ** ** Revision 1.8 2007/08/01 10:50:39 Jörg ** Neu: dirtyFlags und RenderState ** ** Revision 1.7 2007/07/23 14:04:09 Jörg ** AbstractView eingeführt ** ** Revision 1.6 2007/07/11 08:13:46 Jörg ** move jetzt auch nur mit Position ** ** Revision 1.5 2005/11/09 13:44:19 klaus ** Umsetzung auf Linux; ** ** Revision 1.4 2005/11/09 11:12:26 klaus ** Anpassung an Linux: Kommentar hinter #endif mit "//" versehen ** ** Revision 1.3 2005/04/15 13:05:18 joerg ** Resource Control ** ** Revision 1.2 2005/02/10 13:51:01 klaus ** Bias für SightFans eingeführt ** ** Revision 1.1 2005/02/09 17:08:11 klaus ** 1. Version der SightFans ** ** ** ----------------------------------------------------------------------------------------------- */