Changeset 6942 for code/branches/presentation3/src/orxonox/interfaces
- Timestamp:
- May 20, 2010, 8:30:38 PM (14 years ago)
- Location:
- code/branches/presentation3
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/presentation3
- Property svn:mergeinfo changed
/code/branches/hudelements (added) merged: 6599-6600,6602,6606,6614-6615,6631,6715-6717,6727,6796,6849,6865,6868,6873-6875,6880,6886,6897-6899,6907,6913-6914,6917,6922-6924,6941
- Property svn:mergeinfo changed
-
code/branches/presentation3/src/orxonox/interfaces/RadarListener.h
r5781 r6942 41 41 virtual ~RadarListener() { } 42 42 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; 44 46 virtual float getRadarSensitivity() const = 0; 45 47 virtual void radarTick(float dt) = 0; -
code/branches/presentation3/src/orxonox/interfaces/RadarViewable.cc
r6417 r6942 29 29 #include "RadarViewable.h" 30 30 31 #include <OgreSceneManager.h>32 #include <OgreSceneNode.h>33 #include <OgreEntity.h>34 35 31 #include "util/StringUtils.h" 36 32 #include "core/CoreIncludes.h" 37 #include "tools/DynamicLines.h"38 33 #include "worldentities/WorldEntity.h" 39 34 #include "Radar.h" 40 35 #include "Scene.h" 41 #include "overlays/Map.h"42 36 43 37 namespace orxonox … … 46 40 @brief Constructor. 47 41 */ 48 RadarViewable::RadarViewable() 49 : MapNode_(NULL) 50 , MapEntity_(NULL) 51 , line_(NULL) 52 , LineNode_(NULL) 53 , isHumanShip_(false) 42 RadarViewable::RadarViewable(BaseObject* creator) 43 : isHumanShip_(false) 54 44 , bVisibility_(true) 45 , bInitialized_(false) 46 , creator_(creator) 55 47 , radarObjectCamouflage_(0.0f) 56 48 , radarObjectShape_(Dot) … … 60 52 61 53 this->uniqueId_=getUniqueNumberString(); 62 /* 63 if(Map::getSingletonPtr() && Map::getSingletonPtr()->getMapSceneManagerPtr()) 64 { 65 this->addEntity(); 66 } 67 68 */ 54 this->radar_ = this->creator_->getScene()->getRadar(); 55 this->radar_->addRadarObject(this); 56 this->bInitialized_ = true; 69 57 } 70 58 … … 72 60 RadarViewable::~RadarViewable() 73 61 { 74 if (this->isHumanShip_ && MapNode_) 75 MapNode_->removeAllChildren(); 76 77 if (MapNode_) 78 delete MapNode_; 79 80 if (MapEntity_) 81 delete MapEntity_; 82 83 if (line_) 84 delete line_; 85 86 if (LineNode_) 87 delete LineNode_; 62 if( this->bInitialized_ ) 63 this->radar_->removeRadarObject(this); 88 64 } 89 65 90 void RadarViewable::addMapEntity() 91 { //TODO Check shape and add accordantly 92 if( this->MapNode_ && !this->MapEntity_ && Map::getSingletonPtr() && Map::getSingletonPtr()->getMapSceneManagerPtr() ) 93 { 94 COUT(0) << "Adding " << this->uniqueId_ << " to Map.\n"; 95 this->MapEntity_ = Map::getSingletonPtr()->getMapSceneManagerPtr()->createEntity( this->uniqueId_, "drone.mesh"); 96 /*this->line_ = Map::getSingletonPtr()->getMapSceneManagerPtr()->createManualObject(this->uniqueId_ + "_l"); 97 this->line_->begin("Map/line_", Ogre::RenderOperation::OT_LINE_STRIP); 98 //line_->position(0, -it->getRVWorldPosition().y, 0); 99 //this->line_->position(0, -20, 0); 100 this->line_->position(0, 0, -10); //Front Arrow 101 this->line_->position(0, 0, 0); 102 103 this->line_->end(); */ 104 this->line_ = new Ogre::DynamicLines(Ogre::RenderOperation::OT_LINE_LIST); 105 this->line_->addPoint( Vector3(0,0,0) ); 106 this->line_->addPoint( Vector3(0,0,0) ); 107 108 this->MapNode_->attachObject( this->MapEntity_ ); 109 110 this->LineNode_ = this->MapNode_->createChildSceneNode(); 111 this->LineNode_->attachObject( this->line_ ); 112 } 113 else 114 { 115 COUT(0) << "Unable to load " << this->uniqueId_ << " to Map.\n"; 116 } 117 } 118 119 void RadarViewable::updateMapPosition() 120 { 121 if( this->MapNode_ ) 122 { 123 this->MapNode_->setPosition( this->getRVWorldPosition() ); 124 this->MapNode_->translate( this->getRVOrientedVelocity(), static_cast<Ogre::Node::TransformSpace>(3) ); 125 this->MapNode_->setOrientation( this->getWorldEntity()->getOrientation() ); 126 //Vector3 v = this->getRVWorldPosition(); 127 //this->line_->setPoint(1, Vector3(0,v.y,0) ); 128 this->line_->setPoint(1, Vector3( 0, static_cast<float>(static_cast<int>( -Map::getSingletonPtr()->movablePlane_->getDistance( this->getRVWorldPosition() ) ) ) ,0 )); 129 this->line_->update(); 130 if( Map::getSingletonPtr()->playerShipNode_ ) 131 this->LineNode_->setDirection( Map::getSingletonPtr()->playerShipNode_->getLocalAxes().GetColumn(1) ,Ogre::Node::TS_WORLD,Vector3::UNIT_Y); 132 } 133 } 134 135 void RadarViewable::setRadarObjectDescription(const std::string& str) 136 { 137 Radar* radar = this->getWorldEntity()->getScene()->getRadar(); 138 if (radar) 139 this->radarObjectShape_ = radar->addObjectDescription(str); 140 else 141 { 142 CCOUT(2) << "Attempting to access the radar, but the radar is non existent." << std::endl; 143 } 144 this->radarObjectDescription_ = str; 145 } 66 // void RadarViewable::setRadarObjectDescription(const std::string& str) 67 // { 68 // Radar* radar = this->getWorldEntity()->getScene()->getRadar(); 69 // if (radar) 70 // this->radarObjectShape_ = radar->addObjectDescription(str); 71 // else 72 // { 73 // CCOUT(2) << "Attempting to access the radar, but the radar is non existent." << std::endl; 74 // } 75 // this->radarObjectDescription_ = str; 76 // } 146 77 147 78 const Vector3& RadarViewable::getRVWorldPosition() const … … 167 98 } 168 99 } 100 101 void RadarViewable::settingsChanged() 102 { 103 this->radar_->radarObjectChanged(this); 104 } 169 105 } -
code/branches/presentation3/src/orxonox/interfaces/RadarViewable.h
r5781 r6942 36 36 37 37 #include "util/Math.h" 38 #include "util/OgreForwardRefs.h"39 38 #include "core/OrxonoxClass.h" 39 #include "core/SmartPtr.h" 40 40 41 41 namespace orxonox 42 42 { 43 class BaseObject; 44 43 45 /** 44 46 @brief Interface for receiving window events. … … 56 58 57 59 public: 58 RadarViewable( );60 RadarViewable(BaseObject* creator); 59 61 virtual ~RadarViewable(); 60 62 61 63 inline void setRadarObjectCamouflage(float camouflage) 62 { this->radarObjectCamouflage_ = camouflage; } 64 { 65 if( this->radarObjectCamouflage_ != camouflage ) 66 { 67 this->radarObjectCamouflage_ = camouflage; 68 this->settingsChanged(); 69 } 70 } 63 71 inline float getRadarObjectCamouflage() const 64 72 { return this->radarObjectCamouflage_; } 65 73 66 74 inline void setRadarObjectColour(const ColourValue& colour) 67 { this->radarObjectColour_ = colour; } 75 { 76 if(this->radarObjectColour_ != colour) 77 { 78 this->radarObjectColour_ = colour; 79 this->settingsChanged(); 80 } 81 } 68 82 inline const ColourValue& getRadarObjectColour() const 69 83 { return this->radarObjectColour_; } 70 84 71 void setRadarObjectDescription(const std::string& str);72 inline const std::string& getRadarObjectDescription() const73 { return this->radarObjectDescription_; }85 // void setRadarObjectDescription(const std::string& str); 86 // inline const std::string& getRadarObjectDescription() const 87 // { return this->radarObjectDescription_; } 74 88 75 89 inline void setRadarVisibility(bool b) 76 { this->bVisibility_ = b; } 90 { 91 if(b!=this->bVisibility_) 92 { 93 this->bVisibility_ = b; 94 this->settingsChanged(); 95 } 96 } 77 97 inline bool getRadarVisibility() const 78 98 { return this->bVisibility_; } … … 84 104 85 105 inline void setRadarObjectShape(Shape shape) 86 { this->radarObjectShape_ = shape; } 106 { 107 if( this->radarObjectShape_ != shape ) 108 { 109 this->radarObjectShape_ = shape; 110 this->settingsChanged(); 111 } 112 } 87 113 inline Shape getRadarObjectShape() const 88 114 { return this->radarObjectShape_; } 115 void settingsChanged(); 89 116 90 /* 91 inline void setMapNode(Ogre::SceneNode * node) 92 { this->MapNode_ = node; } 93 inline Ogre::SceneNode * getMapNode() const 94 { return this->MapNode_; } 95 inline void setMapEntity(Ogre::Entity * ent) 96 { this->MapEntity_ = ent; } 97 inline Ogre::Entity * getMapEntity() const 98 { return this->MapEntity_; } 99 */ 100 //Used for Map 101 Ogre::SceneNode * MapNode_; 102 Ogre::Entity * MapEntity_; 103 Ogre::DynamicLines* line_; 104 Ogre::SceneNode * LineNode_; 105 void addMapEntity(); 106 void updateMapPosition(); 117 107 118 bool isHumanShip_; 108 119 inline const std::string& getUniqueId() … … 115 126 void validate(const WorldEntity* object) const; 116 127 bool bVisibility_; 128 bool bInitialized_; 117 129 //Map 118 130 std::string uniqueId_; 131 BaseObject* creator_; 119 132 120 133 121 134 //Radar 135 SmartPtr<Radar> radar_; 122 136 float radarObjectCamouflage_; 123 137 Shape radarObjectShape_;
Note: See TracChangeset
for help on using the changeset viewer.