[Orxonox-commit 6660] r11298 - code/branches/QuestGuide_HS16/src/modules/waypoints

ooguz at orxonox.net ooguz at orxonox.net
Mon Nov 21 15:55:43 CET 2016


Author: ooguz
Date: 2016-11-21 15:55:43 +0100 (Mon, 21 Nov 2016)
New Revision: 11298

Modified:
   code/branches/QuestGuide_HS16/src/modules/waypoints/Waypoint.h
   code/branches/QuestGuide_HS16/src/modules/waypoints/WaypointGroup.cc
   code/branches/QuestGuide_HS16/src/modules/waypoints/WaypointGroup.h
   code/branches/QuestGuide_HS16/src/modules/waypoints/Waypointarrow.cc
   code/branches/QuestGuide_HS16/src/modules/waypoints/Waypointarrow.h
Log:
Arrow movessvn add Waypoint.h!

Modified: code/branches/QuestGuide_HS16/src/modules/waypoints/Waypoint.h
===================================================================
--- code/branches/QuestGuide_HS16/src/modules/waypoints/Waypoint.h	2016-11-21 14:31:06 UTC (rev 11297)
+++ code/branches/QuestGuide_HS16/src/modules/waypoints/Waypoint.h	2016-11-21 14:55:43 UTC (rev 11298)
@@ -51,14 +51,13 @@
             }
 
             
+            bool waypoint_actived;
 
-
         private:
     
             //virtual bool isCollisionTypeLegal(CollisionType type) const override;
             Model* model;
             DistanceTrigger* distancetrigger;
-            bool waypoint_actived;
             int order;
             
             // network callbacks

Modified: code/branches/QuestGuide_HS16/src/modules/waypoints/WaypointGroup.cc
===================================================================
--- code/branches/QuestGuide_HS16/src/modules/waypoints/WaypointGroup.cc	2016-11-21 14:31:06 UTC (rev 11297)
+++ code/branches/QuestGuide_HS16/src/modules/waypoints/WaypointGroup.cc	2016-11-21 14:55:43 UTC (rev 11298)
@@ -15,6 +15,8 @@
     WaypointGroup::WaypointGroup(Context* context) : StaticEntity(context)
     {
         RegisterObject(WaypointGroup);
+        activeWaypoint = nullptr;
+
         //model = new Model(this->getContext());
         //model->setMeshSource("cube.mesh");  // Name of the arrow file for now bottle
         //is->attach(model);
@@ -59,16 +61,26 @@
 
 
     Waypoint* WaypointGroup::getActive(){
-          for (Waypoint* object : this->waypoints_){
+          if (activeWaypoint == nullptr){
+                                    orxout() << "OOOOOOOOOO" << endl;
+
+            activateNext();
+
+          }            
+          return activeWaypoint;
+    }
+
+    Waypoint* WaypointGroup::activateNext(){
+        for (Waypoint* object : this->waypoints_){
             if(!(object->waypoint_actived)){
                 object->enable_waypoint();
-                return object;
+                activeWaypoint = object;
             }
         }
+        return activeWaypoint;
     }
 
 
-
     
 
     void WaypointGroup::XMLPort(Element& xmlelement, XMLPort::Mode mode){

Modified: code/branches/QuestGuide_HS16/src/modules/waypoints/WaypointGroup.h
===================================================================
--- code/branches/QuestGuide_HS16/src/modules/waypoints/WaypointGroup.h	2016-11-21 14:31:06 UTC (rev 11297)
+++ code/branches/QuestGuide_HS16/src/modules/waypoints/WaypointGroup.h	2016-11-21 14:55:43 UTC (rev 11298)
@@ -44,8 +44,10 @@
         void setWaypoint(Waypoint* object);
 
 
-        
+        Waypoint* getActive();
+          
 
+        Waypoint* activateNext();
 
            
 
@@ -57,6 +59,7 @@
             //virtual bool isCollisionTypeLegal(CollisionType type) const override;
          
         std::set<Waypoint*> waypoints_;
+        Waypoint* activeWaypoint;
 
             // network callbacks
     };

Modified: code/branches/QuestGuide_HS16/src/modules/waypoints/Waypointarrow.cc
===================================================================
--- code/branches/QuestGuide_HS16/src/modules/waypoints/Waypointarrow.cc	2016-11-21 14:31:06 UTC (rev 11297)
+++ code/branches/QuestGuide_HS16/src/modules/waypoints/Waypointarrow.cc	2016-11-21 14:55:43 UTC (rev 11298)
@@ -18,6 +18,7 @@
         model->setScale(3);
        // model->setOrientation(Vector3(0,0,-1));
         model->setPosition(Vector3(0,15,0));
+        waypoints_ = nullptr;
         
     }
 
@@ -25,11 +26,59 @@
     {
     }
 
+   /*  
+    Waypoint* WaypointGroup::getActive(){
+          for (Waypoint* object : this->waypoints_){
+            if(!(object->waypoint_actived)){
+                object->enable_waypoint();
+                return object;
+            }
+        }
+    }
+
+
+    void tick::getActive
+*/
+
+
+    WaypointGroup* Waypointarrow::getWaypointgroup()
+    {
+        if (waypoints_ == nullptr){
+
+            for (WaypointGroup* group : ObjectList<WaypointGroup>())
+                waypoints_ = group;
+        
+        }
+
+        return waypoints_;
+    }
+
+
+
+
+    void Waypointarrow::tick(float dt){
      
+        if (getWaypointgroup() == nullptr){
+                    orxout() << "Second" << endl;
 
+            return;
+        }     
+               
+        waypoints_ = getWaypointgroup();
+               
+        waypoint = waypoints_->getActive();
+                       
+        Vector3 waypoint_position = waypoint->getWorldPosition();
+     
+        orxout() << "dsfsf" << waypoint_position.x << endl;
+        model->lookAt(waypoint_position - this->getWorldPosition());
 
+        
+    }
+
     void Waypointarrow::XMLPort(Element& xmlelement, XMLPort::Mode mode){
         SUPER(Waypointarrow, XMLPort, xmlelement, mode); // From the SpaceShip.cc file
+        
         //XMLPortParamTemplate(WorldEntity, "orientation", setOrientation, getOrientation, xmlelement, mode, Vector3)
 
         //XMLPortObject(SpaceShip, Engine, "engines", addEngine, getEngine, xmlelement, mode); // TRY ADDING THE WAYPOINT ARROW LIKE AN ENGINE

Modified: code/branches/QuestGuide_HS16/src/modules/waypoints/Waypointarrow.h
===================================================================
--- code/branches/QuestGuide_HS16/src/modules/waypoints/Waypointarrow.h	2016-11-21 14:31:06 UTC (rev 11297)
+++ code/branches/QuestGuide_HS16/src/modules/waypoints/Waypointarrow.h	2016-11-21 14:55:43 UTC (rev 11298)
@@ -30,24 +30,26 @@
         A StaticEntity can only have the collisition type WorldEntity::None or WorldEntity::Static. The collsion types WorldEntity::Dynamic and WorldEntity::Kinematic are illegal.
     */
 
-    class _OrxonoxExport Waypointarrow : public StaticEntity {
+    class _OrxonoxExport Waypointarrow : public StaticEntity, public Tickable {
         
         public:
 
             Waypointarrow(Context* context);
             virtual ~Waypointarrow();
+            WaypointGroup* getWaypointgroup();
 
 
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
+            virtual void tick(float dt);
 
 
-
         private:
     
             //virtual bool isCollisionTypeLegal(CollisionType type) const override;
             Model* model;
-            //Waypoint* waypoint;
+            WaypointGroup* waypoints_;
+            Waypoint* waypoint;
             // network callbacks
     };
 }




More information about the Orxonox-commit mailing list