- Timestamp:
- May 20, 2010, 8:30:38 PM (14 years ago)
- Location:
- code/branches/presentation3
- Files:
-
- 2 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/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 }
Note: See TracChangeset
for help on using the changeset viewer.