[Orxonox-commit 1767] r6485 - code/branches/pickup3/src/orxonox/worldentities
dafrick at orxonox.net
dafrick at orxonox.net
Sun Mar 7 23:16:04 CET 2010
Author: dafrick
Date: 2010-03-07 23:16:03 +0100 (Sun, 07 Mar 2010)
New Revision: 6485
Modified:
code/branches/pickup3/src/orxonox/worldentities/WorldEntity.cc
code/branches/pickup3/src/orxonox/worldentities/WorldEntity.h
Log:
Added changedActivity and changedVisibility method to WorldEntity, such that, when either is changed it is changed for all attached objects as well.
If this is already implemented somehow and somehwere, my mistake, but I looked and found nothing.
Modified: code/branches/pickup3/src/orxonox/worldentities/WorldEntity.cc
===================================================================
--- code/branches/pickup3/src/orxonox/worldentities/WorldEntity.cc 2010-03-07 22:00:05 UTC (rev 6484)
+++ code/branches/pickup3/src/orxonox/worldentities/WorldEntity.cc 2010-03-07 22:16:03 UTC (rev 6485)
@@ -200,6 +200,34 @@
// Attach to parent if necessary
registerVariable(this->parentID_, VariableDirection::ToClient, new NetworkCallback<WorldEntity>(this, &WorldEntity::networkcallback_parentChanged));
}
+
+ /**
+ @brief
+ When the activity is changed, it is changed for all attached objects as well.
+ */
+ void WorldEntity::changedActivity(void)
+ {
+ SUPER(WorldEntity, changedActivity);
+
+ for (std::set<WorldEntity*>::const_iterator it = this->getAttachedObjects().begin(); it != this->getAttachedObjects().end(); it++)
+ {
+ (*it)->setActive(this->isActive());
+ }
+ }
+
+ /**
+ @brief
+ When the visibility is changed, it is changed for all attached objects as well.
+ */
+ void WorldEntity::changedVisibility(void)
+ {
+ SUPER(WorldEntity, changedVisibility);
+
+ for (std::set<WorldEntity*>::const_iterator it = this->getAttachedObjects().begin(); it != this->getAttachedObjects().end(); it++)
+ {
+ (*it)->setVisible(this->isVisible());
+ }
+ }
/**
@brief
Modified: code/branches/pickup3/src/orxonox/worldentities/WorldEntity.h
===================================================================
--- code/branches/pickup3/src/orxonox/worldentities/WorldEntity.h 2010-03-07 22:00:05 UTC (rev 6484)
+++ code/branches/pickup3/src/orxonox/worldentities/WorldEntity.h 2010-03-07 22:16:03 UTC (rev 6485)
@@ -105,6 +105,9 @@
static const Vector3 RIGHT;
static const Vector3 DOWN;
static const Vector3 UP;
+
+ virtual void changedActivity(void);
+ virtual void changedVisibility(void);
virtual void setPosition(const Vector3& position) = 0;
inline void setPosition(float x, float y, float z)
More information about the Orxonox-commit
mailing list