[Orxonox-commit 560] r3101 - in trunk: . src/orxonox/objects src/orxonox/objects/worldentities src/orxonox/overlays/map
landauf at orxonox.net
landauf at orxonox.net
Thu May 28 02:41:15 CEST 2009
Author: landauf
Date: 2009-05-28 02:41:15 +0200 (Thu, 28 May 2009)
New Revision: 3101
Modified:
trunk/
trunk/src/orxonox/objects/RadarViewable.cc
trunk/src/orxonox/objects/RadarViewable.h
trunk/src/orxonox/objects/worldentities/CMakeLists.txt
trunk/src/orxonox/overlays/map/Map.cc
trunk/src/orxonox/overlays/map/Map.h
Log:
merged revision 3090 from map branch back to trunk
Property changes on: trunk
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/buildsystem:1875-2277,2279-2401
/branches/buildsystem2:2507-2659
/branches/buildsystem3:2663-2709
/branches/ceguilua:1803-1809
/branches/core3:1573-1740
/branches/gametypes:2827-3032
/branches/gcc43:1581
/branches/gui:1636-1724,2796-2895
/branches/input:1630-1637
/branches/lodfinal:2373-2412
/branches/map:2802-3087
/branches/miniprojects:2755-2825
/branches/netp2:2836-2989
/branches/netp3:2989-3083
/branches/network:2357
/branches/network64:2211-2356
/branches/objecthierarchy:1912-2086,2101,2111-2170
/branches/objecthierarchy2:2172-2480
/branches/overlay:2118-2386
/branches/particles:2830-3086
/branches/physics:1913-2056,2108-2440
/branches/physics_merge:2437-2458
/branches/pickups:1927-2087,2128,2828-2916
/branches/pickups2:2108-2498,2916-3072
/branches/presentation:2370-2653,2655-2661
/branches/questsystem:1895-2089
/branches/questsystem2:2108-2260
/branches/questsystem5:2777-2906
/branches/script_trigger:1296-1954,1956
/branches/sound:2830-3011
/branches/weapon:1926-2095
/branches/weapon2:2108-2489
/branches/weapons:2898-3052
/branches/weaponsystem:2743-2891
+ /branches/buildsystem:1875-2277,2279-2401
/branches/buildsystem2:2507-2659
/branches/buildsystem3:2663-2709
/branches/ceguilua:1803-1809
/branches/core3:1573-1740
/branches/gametypes:2827-3032
/branches/gcc43:1581
/branches/gui:1636-1724,2796-2895
/branches/input:1630-1637
/branches/lodfinal:2373-2412
/branches/map:2802-3087,3090
/branches/miniprojects:2755-2825
/branches/netp2:2836-2989
/branches/netp3:2989-3083
/branches/network:2357
/branches/network64:2211-2356
/branches/objecthierarchy:1912-2086,2101,2111-2170
/branches/objecthierarchy2:2172-2480
/branches/overlay:2118-2386
/branches/particles:2830-3086
/branches/physics:1913-2056,2108-2440
/branches/physics_merge:2437-2458
/branches/pickups:1927-2087,2128,2828-2916
/branches/pickups2:2108-2498,2916-3072
/branches/presentation:2370-2653,2655-2661
/branches/questsystem:1895-2089
/branches/questsystem2:2108-2260
/branches/questsystem5:2777-2906
/branches/script_trigger:1296-1954,1956
/branches/sound:2830-3011
/branches/weapon:1926-2095
/branches/weapon2:2108-2489
/branches/weapons:2898-3052
/branches/weaponsystem:2743-2891
Modified: trunk/src/orxonox/objects/RadarViewable.cc
===================================================================
--- trunk/src/orxonox/objects/RadarViewable.cc 2009-05-28 00:14:54 UTC (rev 3100)
+++ trunk/src/orxonox/objects/RadarViewable.cc 2009-05-28 00:41:15 UTC (rev 3101)
@@ -71,21 +71,20 @@
RadarViewable::~RadarViewable()
{
+ if (this->isHumanShip_ && MapNode_)
+ MapNode_->removeAllChildren();
+
if (MapNode_)
delete MapNode_;
- MapNode_=0;
if (MapEntity_)
delete MapEntity_;
- MapEntity_=0;
if (line_)
delete line_;
- line_=0;
if (LineNode_)
delete LineNode_;
- LineNode_=0;
}
void RadarViewable::addMapEntity()
Modified: trunk/src/orxonox/objects/RadarViewable.h
===================================================================
--- trunk/src/orxonox/objects/RadarViewable.h 2009-05-28 00:14:54 UTC (rev 3100)
+++ trunk/src/orxonox/objects/RadarViewable.h 2009-05-28 00:41:15 UTC (rev 3101)
@@ -113,6 +113,7 @@
{
return this->uniqueId_;
}
+ //friend class Map;
private:
void validate(const WorldEntity* object) const
Modified: trunk/src/orxonox/objects/worldentities/CMakeLists.txt
===================================================================
--- trunk/src/orxonox/objects/worldentities/CMakeLists.txt 2009-05-28 00:14:54 UTC (rev 3100)
+++ trunk/src/orxonox/objects/worldentities/CMakeLists.txt 2009-05-28 00:41:15 UTC (rev 3101)
@@ -9,7 +9,7 @@
Backlight.cc
Billboard.cc
BlinkingBillboard.cc
- BigExplosion.cc
+ BigExplosion.cc
ExplosionChunk.cc
FadingBillboard.cc
Light.cc
Modified: trunk/src/orxonox/overlays/map/Map.cc
===================================================================
--- trunk/src/orxonox/overlays/map/Map.cc 2009-05-28 00:14:54 UTC (rev 3100)
+++ trunk/src/orxonox/overlays/map/Map.cc 2009-05-28 00:41:15 UTC (rev 3101)
@@ -68,6 +68,19 @@
Map* Map::singletonMap_s = 0;
Ogre::SceneManager* Map::mapSceneM_s = 0;
+ Ogre::Camera* Map::Cam_ = 0;
+ Ogre::SceneNode* Map::CamNode_ = 0;
+ Ogre::MaterialPtr Map::OverlayMaterial_;// = init();
+ Ogre::Overlay* Map::overlay_ = 0;
+/*
+Ogre::MaterialPtr Map::init()
+{
+ Ogre::MaterialPtr tmp;
+ tmp.setNull();
+ return tmp;
+}
+*/
+
//int Map::mouseLookSpeed_ = 200;
//Ogre::SceneNode* Map::playerShipNode_ = 0;
@@ -115,17 +128,19 @@
// Alter the camera aspect ratio to match the viewport
//mCamera->setAspectRatio(Real(vp->getActualWidth()) / Real(vp->getActualHeight()));
- Cam_ = Map::getMapSceneManager()->createCamera("ReflectCam");
+ if(!Map::Cam_)
+ Cam_ = Map::getMapSceneManager()->createCamera("ReflectCam");
//Cam_->setPosition(200,170, -160);
//Cam_->lookAt(0,0,0);
Cam_->setAspectRatio(1);
//Cam_->setRenderingDistance(0);
- CamNode_ = Map::getMapSceneManager()->getRootSceneNode()->createChildSceneNode();
+ if(!Map::CamNode_)
+ CamNode_ = Map::getMapSceneManager()->getRootSceneNode()->createChildSceneNode();
//Create overlay material
- std::string camMat_id = "RttMat";
- Ogre::MaterialPtr material = this->createRenderCamera(Cam_, camMat_id);
+ if(Map::OverlayMaterial_.isNull())
+ Map::OverlayMaterial_ = this->createRenderCamera(Cam_, "RttMat");
/*
Ogre::TexturePtr rttTex = Ogre::TextureManager::getSingleton().createManual("RttTex", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::TEX_TYPE_2D, 512, 512, 0, Ogre::PF_R8G8B8, Ogre::TU_RENDERTARGET);
@@ -158,67 +173,83 @@
pOverlay->add2D(m_pOverlayPanel);
pOverlay->show();
*/
- this->overlay_ = Ogre::OverlayManager::getSingletonPtr()->create("MapOverlay");
- Ogre::OverlayContainer* m_pOverlayPanel = static_cast<Ogre::OverlayContainer*>(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel","OverlayPanelName%d"));
- m_pOverlayPanel->setMetricsMode(Ogre::GMM_PIXELS);
- m_pOverlayPanel->setPosition(10, 10);
- m_pOverlayPanel->setDimensions(600, 400);
- // Give overlay a texture
- m_pOverlayPanel->setMaterialName(camMat_id);
- overlay_->add2D(m_pOverlayPanel);
+ if(!this->overlay_)
+ {
+ this->overlay_ = Ogre::OverlayManager::getSingletonPtr()->create("MapOverlay");
+ Ogre::OverlayContainer* m_pOverlayPanel = static_cast<Ogre::OverlayContainer*>(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel","OverlayPanelName%d"));
+ //m_pOverlayPanel->setMetricsMode(Ogre::GMM_PIXELS);
+ //m_pOverlayPanel->setPosition(10, 10);
+ //m_pOverlayPanel->setDimensions(600, 400);
+ m_pOverlayPanel->setPosition(0.01, 0.003);
+ m_pOverlayPanel->setDimensions(0.5, 0.4);
+ // Give overlay a texture
+ m_pOverlayPanel->setMaterialName("RttMat");
+ overlay_->add2D(m_pOverlayPanel);
- //Add Borders
-// Ogre::BorderPanelOverlayElement* oBorder = static_cast<Ogre::BorderPanelOverlayElement*>(Ogre::OverlayManager::getSingletonPtr()->createOverlayElement("BorderPanel", "MapBorderPanel" + getUniqueNumberString()));
-/*
-//TODO border size
- oBorder->setBorderSize( 0.003, 16 * 0.003 );
- oBorder->setBorderMaterialName("StatsBorder");
- oBorder->setTopBorderUV(0.49, 0.0, 0.51, 0.5);
- oBorder->setTopLeftBorderUV(0.0, 0.0, 0.5, 0.5);
- oBorder->setTopRightBorderUV(0.5, 0.0, 1.0, 0.5);
- oBorder->setLeftBorderUV(0.0, 0.49, 0.5, 0.51);
- oBorder->setRightBorderUV(0.5, 0.49, 1.0, 0.5);
- oBorder->setBottomBorderUV(0.49, 0.5, 0.51, 1.0);
- oBorder->setBottomLeftBorderUV(0.0, 0.5, 0.5, 1.0);
- oBorder->setBottomRightBorderUV(0.5, 0.5, 1.0, 1.0);
- overlay_->add2D(oBorder);
-*/
+ //Add Borders
+ Ogre::BorderPanelOverlayElement* oBorder = static_cast<Ogre::BorderPanelOverlayElement*>(Ogre::OverlayManager::getSingletonPtr()->createOverlayElement("BorderPanel", "MapBorderPanel" + getUniqueNumberString()));
+ oBorder->setBorderSize( 0.003, 0.003 );
+ oBorder->setDimensions(0.5, 0.4);
+ oBorder->setBorderMaterialName("StatsBorder");
+ oBorder->setTopBorderUV(0.49, 0.0, 0.51, 0.5);
+ oBorder->setTopLeftBorderUV(0.0, 0.0, 0.5, 0.5);
+ oBorder->setTopRightBorderUV(0.5, 0.0, 1.0, 0.5);
+ oBorder->setLeftBorderUV(0.0, 0.49, 0.5, 0.51);
+ oBorder->setRightBorderUV(0.5, 0.49, 1.0, 0.5);
+ oBorder->setBottomBorderUV(0.49, 0.5, 0.51, 1.0);
+ oBorder->setBottomLeftBorderUV(0.0, 0.5, 0.5, 1.0);
+ oBorder->setBottomRightBorderUV(0.5, 0.5, 1.0, 1.0);
+ //overlay_->add2D(oBorder);
+ m_pOverlayPanel->addChild(oBorder);
+ }
+
//Not Showing the map as default
this->isVisible_=false;
overlay_->hide();
- //Create plane to show grid
- Ogre::Entity* plane_ent = Map::getMapSceneManager()->createEntity( "MapPlane", "plane.mesh");
- planeNode_ = Map::getMapSceneManager()->getRootSceneNode()->createChildSceneNode();
+ //Create plane to show gridTypeError: blimport() takes no keyword arguments
+/* Ogre::Entity* plane_ent;
+ if(Map::getMapSceneManager()->hasEntity("MapPlane"))
+ plane_ent = Map::getMapSceneManager()->getEntity("MapPlane");
+ else
+ plane_ent = Map::getMapSceneManager()->createEntity( "MapPlane", "plane.mesh");
+*/
+ this->movablePlane_ = new Ogre::MovablePlane( Vector3::UNIT_Y, 0 );
+ this->movablePlane_->normalise();
+
+ if(!Map::getMapSceneManager()->hasEntity("MapPlane"))
+ {
+ Ogre::Entity* plane_ent = Map::getMapSceneManager()->createEntity( "MapPlane", "plane.mesh");
+ planeNode_ = Map::getMapSceneManager()->createSceneNode();
//Create plane for calculations
- movablePlane_ = new Ogre::MovablePlane( Vector3::UNIT_Y, 0 );
- movablePlane_->normalise();
+
//Ogre::MaterialPtr plane_mat = Ogre::MaterialManager::getSingleton().create("mapgrid", "General");
//plane_mat->getTechnique(0)->getPass(0)->createTextureUnitState("mapgrid.tga");
//plane_ent->setMaterialName("mapgrid");
- plane_ent->setMaterialName("Map/Grid");
- planeNode_->attachObject(plane_ent);
+ plane_ent->setMaterialName("Map/Grid");
+ planeNode_->attachObject(plane_ent);
- planeNode_->scale(10,1,10);
+ planeNode_->scale(160,1,160);
// planeNode_->attachObject(movablePlane_);
//Ogre::Material plane_mat = Ogre::MaterialManager::getSingletonPtr()->getByName("rock");
//ToDo create material script
- Ogre::MaterialPtr myManualObjectMaterial = Ogre::MaterialManager::getSingleton().create("Map/Line","General");
- myManualObjectMaterial->setReceiveShadows(false);
- myManualObjectMaterial->getTechnique(0)->setLightingEnabled(true);
- myManualObjectMaterial->getTechnique(0)->getPass(0)->setDiffuse(1,1,0,0);
- myManualObjectMaterial->getTechnique(0)->getPass(0)->setAmbient(1,1,0);
- myManualObjectMaterial->getTechnique(0)->getPass(0)->setSelfIllumination(1,1,0);
-
+ Ogre::MaterialPtr myManualObjectMaterial = Ogre::MaterialManager::getSingleton().create("Map/Line","General");
+ myManualObjectMaterial->setReceiveShadows(false);
+ myManualObjectMaterial->getTechnique(0)->setLightingEnabled(true);
+ myManualObjectMaterial->getTechnique(0)->getPass(0)->setDiffuse(1,1,0,0);
+ myManualObjectMaterial->getTechnique(0)->getPass(0)->setAmbient(1,1,0);
+ myManualObjectMaterial->getTechnique(0)->getPass(0)->setSelfIllumination(1,1,0);
+ }
}
Map::~Map()
{
this->singletonMap_s = 0;
+ //delete this->overlay_;
/*if (this->isInitialized())
{
//delete sManager_;
@@ -285,15 +316,16 @@
if(it->isHumanShip_ && it->MapNode_ != this->playerShipNode_)
{
this->playerShipNode_ = it->MapNode_;
- this->planeNode_->getParent()->removeChild(this->planeNode_);
+ if(planeNode_ && this->planeNode_->getParent())
+ this->planeNode_->getParent()->removeChild(this->planeNode_);
this->playerShipNode_->addChild(this->planeNode_);
//Movable Plane needs to be attached direcly for calculations
//this->movablePlane_->detatchFromParent();
//this->movablePlane_->getParentSceneNode()->detachObject(this->movablePlane_);
//this->movablePlane_->redefine(it->MapNode_->getLocalAxes().GetColumn(1) , it->MapNode_->getPosition());
//it->MapNode_->attachObject(this->movablePlane_);
-
- this->CamNode_->getParent()->removeChild(this->CamNode_);
+ if(planeNode_ && this->CamNode_->getParent())
+ this->CamNode_->getParent()->removeChild(this->CamNode_);
this->playerShipNode_->addChild(this->CamNode_);
this->CamNode_->attachObject(this->Cam_);
//this->CamNodeHelper_ = this->CamNode_->createChildSceneNode();
Modified: trunk/src/orxonox/overlays/map/Map.h
===================================================================
--- trunk/src/orxonox/overlays/map/Map.h 2009-05-28 00:14:54 UTC (rev 3100)
+++ trunk/src/orxonox/overlays/map/Map.h 2009-05-28 00:41:15 UTC (rev 3101)
@@ -101,6 +101,7 @@
{
Map::mapSceneM_s = sm;
}
+ //static Ogre::MaterialPtr init();
private: // variables
static Map* singletonMap_s;
@@ -109,8 +110,10 @@
Ogre::OverlayManager * oManager_;
static Ogre::SceneManager* mapSceneM_s;
- Ogre::SceneNode* CamNode_;
- Ogre::Camera* Cam_;
+ static Ogre::SceneNode* CamNode_;
+ static Ogre::Camera* Cam_;
+ static Ogre::MaterialPtr OverlayMaterial_;
+ static Ogre::Overlay* overlay_;
//Ogre::SceneNode* CamNodeHelper_;
Ogre::SceneNode* playerShipNode_;
Ogre::SceneNode* planeNode_;
More information about the Orxonox-commit
mailing list