Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Apr 14, 2010, 7:54:41 PM (15 years ago)
Author:
scheusso
Message:

HUDRadar now working again

Location:
code/branches/hudelements/src/orxonox/interfaces
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • code/branches/hudelements/src/orxonox/interfaces/RadarListener.h

    r5781 r6727  
    4141        virtual ~RadarListener() { }
    4242
    43         virtual void displayObject(RadarViewable* viewable, bool bIsMarked) = 0;
     43        virtual void addObject(RadarViewable* viewable) = 0;
     44        virtual void removeObject(RadarViewable* viewable) = 0;
     45        virtual void objectChanged(RadarViewable* viewable) = 0;
    4446        virtual float getRadarSensitivity() const = 0;
    4547        virtual void radarTick(float dt) = 0;
  • code/branches/hudelements/src/orxonox/interfaces/RadarViewable.cc

    r6717 r6727  
    4040        @brief Constructor.
    4141    */
    42     RadarViewable::RadarViewable()
     42    RadarViewable::RadarViewable(BaseObject* creator)
    4343        : isHumanShip_(false)
    4444        , bVisibility_(true)
     45        , bInitialized_(false)
     46        , creator_(creator)
    4547        , radarObjectCamouflage_(0.0f)
    4648        , radarObjectShape_(Dot)
     
    5052
    5153        this->uniqueId_=getUniqueNumberString();
     54        this->creator_->getScene()->getRadar()->addRadarObject(this);
     55        this->bInitialized_ = true;
    5256    }
    5357
     
    5559    RadarViewable::~RadarViewable()
    5660    {
     61        if( this->bInitialized_ )
     62            this->creator_->getScene()->getRadar()->removeRadarObject(this);
    5763    }
    5864
    59     void RadarViewable::setRadarObjectDescription(const std::string& str)
    60     {
    61         Radar* radar = this->getWorldEntity()->getScene()->getRadar();
    62         if (radar)
    63             this->radarObjectShape_ = radar->addObjectDescription(str);
    64         else
    65         {
    66             CCOUT(2) << "Attempting to access the radar, but the radar is non existent." << std::endl;
    67         }
    68         this->radarObjectDescription_ = str;
    69     }
     65//     void RadarViewable::setRadarObjectDescription(const std::string& str)
     66//     {
     67//         Radar* radar = this->getWorldEntity()->getScene()->getRadar();
     68//         if (radar)
     69//             this->radarObjectShape_ = radar->addObjectDescription(str);
     70//         else
     71//         {
     72//             CCOUT(2) << "Attempting to access the radar, but the radar is non existent." << std::endl;
     73//         }
     74//         this->radarObjectDescription_ = str;
     75//     }
    7076
    7177    const Vector3& RadarViewable::getRVWorldPosition() const
     
    9197        }
    9298    }
     99   
     100    void RadarViewable::settingsChanged()
     101    {
     102        this->creator_->getScene()->getRadar()->radarObjectChanged(this);
     103    }
    93104}
  • code/branches/hudelements/src/orxonox/interfaces/RadarViewable.h

    r6717 r6727  
    4040namespace orxonox
    4141{
     42    class BaseObject;
     43
    4244    /**
    4345    @brief Interface for receiving window events.
     
    5557
    5658    public:
    57         RadarViewable();
     59        RadarViewable(BaseObject* creator);
    5860        virtual ~RadarViewable();
    5961
    6062        inline void setRadarObjectCamouflage(float camouflage)
    61             { this->radarObjectCamouflage_ = camouflage; }
     63            {
     64                if( this->radarObjectCamouflage_ != camouflage )
     65                {
     66                    this->radarObjectCamouflage_ = camouflage;
     67                    this->settingsChanged();
     68                }
     69            }
    6270        inline float getRadarObjectCamouflage() const
    6371            { return this->radarObjectCamouflage_; }
    6472
    6573        inline void setRadarObjectColour(const ColourValue& colour)
    66             { this->radarObjectColour_ = colour; }
     74            {
     75                if(this->radarObjectColour_ != colour)
     76                {
     77                    this->radarObjectColour_ = colour;
     78                    this->settingsChanged();
     79                }
     80            }
    6781        inline const ColourValue& getRadarObjectColour() const
    6882            { return this->radarObjectColour_; }
    6983
    70         void setRadarObjectDescription(const std::string& str);
    71         inline const std::string& getRadarObjectDescription() const
    72             { return this->radarObjectDescription_; }
     84//         void setRadarObjectDescription(const std::string& str);
     85//         inline const std::string& getRadarObjectDescription() const
     86//             { return this->radarObjectDescription_; }
    7387
    7488        inline void setRadarVisibility(bool b)
    75             { this->bVisibility_ = b; }
     89            {
     90                if(b!=this->bVisibility_)
     91                {
     92                    this->bVisibility_ = b;
     93                    this->settingsChanged();
     94                }
     95            }
    7696        inline bool getRadarVisibility() const
    7797            { return this->bVisibility_; }
     
    83103
    84104        inline void setRadarObjectShape(Shape shape)
    85             { this->radarObjectShape_ = shape; }
     105            {
     106                if( this->radarObjectShape_ != shape )
     107                {
     108                    this->radarObjectShape_ = shape;
     109                    this->settingsChanged();
     110                }
     111            }
    86112        inline Shape getRadarObjectShape() const
    87113            { return this->radarObjectShape_; }
     114        void settingsChanged();
    88115
    89116
     
    98125        void validate(const WorldEntity* object) const;
    99126        bool bVisibility_;
     127        bool bInitialized_;
    100128        //Map
    101129        std::string uniqueId_;
     130        BaseObject* creator_;
    102131
    103132
Note: See TracChangeset for help on using the changeset viewer.