[Orxonox-commit 4067] r8738 - in code/trunk/src: modules/overlays/hud modules/weapons/projectiles orxonox/interfaces

landauf at orxonox.net landauf at orxonox.net
Sat Jul 9 19:45:15 CEST 2011


Author: landauf
Date: 2011-07-09 19:45:14 +0200 (Sat, 09 Jul 2011)
New Revision: 8738

Modified:
   code/trunk/src/modules/overlays/hud/HUDRadar.cc
   code/trunk/src/modules/weapons/projectiles/Rocket.cc
   code/trunk/src/modules/weapons/projectiles/Rocket.h
   code/trunk/src/modules/weapons/projectiles/SimpleRocket.cc
   code/trunk/src/modules/weapons/projectiles/SimpleRocket.h
   code/trunk/src/orxonox/interfaces/RadarViewable.cc
   code/trunk/src/orxonox/interfaces/RadarViewable.h
Log:
added "scale" for radar viewables. scale is relative, 1.0 means "normal".
rocket and simple rocket are now visible on the radar as small triangles.
greatly reduced lifetime of simple rocket.
fixed another possible cause for flashing hud radar.

Modified: code/trunk/src/modules/overlays/hud/HUDRadar.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDRadar.cc	2011-07-09 10:05:56 UTC (rev 8737)
+++ code/trunk/src/modules/overlays/hud/HUDRadar.cc	2011-07-09 17:45:14 UTC (rev 8738)
@@ -105,6 +105,7 @@
         // get right material
         panel->setMaterialName(TextureGenerator::getMaterialName(
             shapeMaterials_[object->getRadarObjectShape()], object->getRadarObjectColour()));
+        panel->hide();
         this->radarObjects_[object] = panel;
     }
 
@@ -165,7 +166,7 @@
             // set size to fit distance...
             float distance = (wePointer->getWorldPosition() - this->owner_->getPosition()).length();
             // calculate the size with 1/distance dependency for simplicity (instead of exp(-distance * lambda)
-            float size = maximumDotSize_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance);
+            float size = maximumDotSize_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance) * it->first->getRadarObjectScale();
             it->second->setDimensions(size, size);
 
             // calc position on radar...

Modified: code/trunk/src/modules/weapons/projectiles/Rocket.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/Rocket.cc	2011-07-09 10:05:56 UTC (rev 8737)
+++ code/trunk/src/modules/weapons/projectiles/Rocket.cc	2011-07-09 17:45:14 UTC (rev 8738)
@@ -51,7 +51,10 @@
     @brief
         Constructor. Registers the object and initializes some default values.
     */
-    Rocket::Rocket(BaseObject* creator) : ControllableEntity(creator), BasicProjectile()
+    Rocket::Rocket(BaseObject* creator)
+        : ControllableEntity(creator)
+        , BasicProjectile()
+        , RadarViewable(creator, static_cast<WorldEntity*>(this))
     {
         RegisterObject(Rocket);// - register the Rocket class to the core
 
@@ -105,6 +108,10 @@
         camPosition->setPosition(0,4,15);
         camPosition->setAllowMouseLook(true);
         this->addCameraPosition(camPosition);
+
+        this->setRadarObjectColour(ColourValue(1.0, 0.5, 0.0)); // orange
+        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectScale(0.5f);
     }
 
     /**

Modified: code/trunk/src/modules/weapons/projectiles/Rocket.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/Rocket.h	2011-07-09 10:05:56 UTC (rev 8737)
+++ code/trunk/src/modules/weapons/projectiles/Rocket.h	2011-07-09 17:45:14 UTC (rev 8738)
@@ -33,6 +33,7 @@
 
 #include "tools/Timer.h"
 #include "worldentities/ControllableEntity.h"
+#include "interfaces/RadarViewable.h"
 
 #include "BasicProjectile.h"
 
@@ -47,7 +48,7 @@
     @author
         Oli Scheuss
     */
-    class _WeaponsExport Rocket : public ControllableEntity, public BasicProjectile
+    class _WeaponsExport Rocket : public ControllableEntity, public BasicProjectile, public RadarViewable
     {
         public:
             Rocket(BaseObject* creator);

Modified: code/trunk/src/modules/weapons/projectiles/SimpleRocket.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/SimpleRocket.cc	2011-07-09 10:05:56 UTC (rev 8737)
+++ code/trunk/src/modules/weapons/projectiles/SimpleRocket.cc	2011-07-09 17:45:14 UTC (rev 8738)
@@ -47,12 +47,15 @@
 
     CreateFactory(SimpleRocket);
 
-    SimpleRocket::SimpleRocket(BaseObject* creator) : ControllableEntity(creator), BasicProjectile()
+    SimpleRocket::SimpleRocket(BaseObject* creator)
+        : ControllableEntity(creator)
+        , BasicProjectile()
+        , RadarViewable(creator, static_cast<WorldEntity*>(this))
     {
         RegisterObject(SimpleRocket);// - register the SimpleRocket class to the core
 
         this->localAngularVelocity_ = 0;
-        this->lifetime_ = 120;
+        this->lifetime_ = 10;
 
         this->setMass(15);
 //        COUT(4) << "simplerocket constructed\n";
@@ -85,6 +88,9 @@
             this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&SimpleRocket::destroyObject, this)));
         }
 
+        this->setRadarObjectColour(ColourValue(1.0, 1.0, 0.0)); // yellow
+        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectScale(0.5f);
     }
 
 

Modified: code/trunk/src/modules/weapons/projectiles/SimpleRocket.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/SimpleRocket.h	2011-07-09 10:05:56 UTC (rev 8737)
+++ code/trunk/src/modules/weapons/projectiles/SimpleRocket.h	2011-07-09 17:45:14 UTC (rev 8738)
@@ -34,6 +34,7 @@
 #include "tools/Timer.h"
 #include "worldentities/ControllableEntity.h"
 #include "graphics/ParticleSpawner.h"
+#include "interfaces/RadarViewable.h"
 
 #include "BasicProjectile.h"
 
@@ -47,7 +48,7 @@
     @author
        Gabriel Nadler (Original file: Oli Scheuss)
     */
-    class _WeaponsExport SimpleRocket : public ControllableEntity, public BasicProjectile
+    class _WeaponsExport SimpleRocket : public ControllableEntity, public BasicProjectile, public RadarViewable
     {
         public:
             SimpleRocket(BaseObject* creator);

Modified: code/trunk/src/orxonox/interfaces/RadarViewable.cc
===================================================================
--- code/trunk/src/orxonox/interfaces/RadarViewable.cc	2011-07-09 10:05:56 UTC (rev 8737)
+++ code/trunk/src/orxonox/interfaces/RadarViewable.cc	2011-07-09 17:45:14 UTC (rev 8738)
@@ -49,6 +49,7 @@
         , radarObjectCamouflage_(0.0f)
         , radarObjectShape_(Dot)
         , radarObjectDescription_("staticObject")
+        , scale_(1.0f)
     {
         RegisterRootObject(RadarViewable);
 

Modified: code/trunk/src/orxonox/interfaces/RadarViewable.h
===================================================================
--- code/trunk/src/orxonox/interfaces/RadarViewable.h	2011-07-09 10:05:56 UTC (rev 8737)
+++ code/trunk/src/orxonox/interfaces/RadarViewable.h	2011-07-09 17:45:14 UTC (rev 8738)
@@ -112,6 +112,18 @@
             }
         inline Shape getRadarObjectShape() const
             { return this->radarObjectShape_; }
+
+        inline void setRadarObjectScale(float scale)
+            {
+                if(this->scale_ != scale)
+                {
+                    this->scale_ = scale;
+                    this->settingsChanged();
+                }
+            }
+        inline float getRadarObjectScale() const
+            { return this->scale_; }
+
         void settingsChanged();
 
 
@@ -138,7 +150,7 @@
         Shape radarObjectShape_;
         std::string radarObjectDescription_;
         ColourValue radarObjectColour_;
-
+        float scale_;
     };
 }
 




More information about the Orxonox-commit mailing list