[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