[Orxonox-commit 4001] r8675 - code/branches/presentation/src/modules/objects/triggers
dafrick at orxonox.net
dafrick at orxonox.net
Mon May 30 00:14:57 CEST 2011
Author: dafrick
Date: 2011-05-30 00:14:57 +0200 (Mon, 30 May 2011)
New Revision: 8675
Modified:
code/branches/presentation/src/modules/objects/triggers/DistanceMultiTrigger.cc
code/branches/presentation/src/modules/objects/triggers/DistanceMultiTrigger.h
code/branches/presentation/src/modules/objects/triggers/DistanceTrigger.cc
code/branches/presentation/src/modules/objects/triggers/DistanceTrigger.h
Log:
Fixing problems with beaconMask being NULL.
Modified: code/branches/presentation/src/modules/objects/triggers/DistanceMultiTrigger.cc
===================================================================
--- code/branches/presentation/src/modules/objects/triggers/DistanceMultiTrigger.cc 2011-05-29 22:01:33 UTC (rev 8674)
+++ code/branches/presentation/src/modules/objects/triggers/DistanceMultiTrigger.cc 2011-05-29 22:14:57 UTC (rev 8675)
@@ -52,13 +52,15 @@
@brief
Default Constructor. Registers the object and initializes default values.
*/
- DistanceMultiTrigger::DistanceMultiTrigger(BaseObject* creator) : MultiTrigger(creator), beaconMask_(NULL)
+ DistanceMultiTrigger::DistanceMultiTrigger(BaseObject* creator) : MultiTrigger(creator)
{
RegisterObject(DistanceMultiTrigger);
this->distance_ = 100.0f;
this->setBeaconModeDirect(distanceMultiTriggerBeaconMode::off);
this->targetName_ = "";
+ this->beaconMask_.exclude(Class(BaseObject));
+ this->beaconMask_.include(Class(DistanceTriggerBeacon));
}
/**
@@ -67,8 +69,7 @@
*/
DistanceMultiTrigger::~DistanceMultiTrigger()
{
- if(this->beaconMask_ != NULL)
- delete this->beaconMask_;
+
}
/**
@@ -134,7 +135,7 @@
ClassTreeMask targetMask = this->getTargetMask();
// If we are in identify-mode another target mask has to be applies to find the DistanceTriggerBeacons.
if(this->beaconMode_ == distanceMultiTriggerBeaconMode::identify)
- targetMask = *this->beaconMask_;
+ targetMask = this->beaconMask_;
// Iterate through all objects that are targets of the DistanceMultiTrigger.
for(ClassTreeMaskObjectIterator it = targetMask.begin(); it != targetMask.end(); ++it)
@@ -206,12 +207,6 @@
void DistanceMultiTrigger::setBeaconModeDirect(distanceMultiTriggerBeaconMode::Value mode)
{
this->beaconMode_ = mode;
- if(this->beaconMode_ == distanceMultiTriggerBeaconMode::identify && this->beaconMask_ == NULL)
- {
- this->beaconMask_ = new ClassTreeMask();
- this->beaconMask_->exclude(Class(BaseObject));
- this->beaconMask_->include(Class(DistanceTriggerBeacon));
- }
}
/**
Modified: code/branches/presentation/src/modules/objects/triggers/DistanceMultiTrigger.h
===================================================================
--- code/branches/presentation/src/modules/objects/triggers/DistanceMultiTrigger.h 2011-05-29 22:01:33 UTC (rev 8674)
+++ code/branches/presentation/src/modules/objects/triggers/DistanceMultiTrigger.h 2011-05-29 22:14:57 UTC (rev 8675)
@@ -151,7 +151,7 @@
distanceMultiTriggerBeaconMode::Value beaconMode_; //!< The beacon mode, the DistanceMultiTrigger is in.
std::string targetName_; //!< The target name, used in <em>single-target</em> mode.
- ClassTreeMask* beaconMask_; //!< A mask, that only accepts DistanceTriggerBeacons.
+ ClassTreeMask beaconMask_; //!< A mask, that only accepts DistanceTriggerBeacons.
std::map<WorldEntity*, WeakPtr<WorldEntity>* > range_; //!< The set of entities that currently are in range of the DistanceMultiTrigger.
Modified: code/branches/presentation/src/modules/objects/triggers/DistanceTrigger.cc
===================================================================
--- code/branches/presentation/src/modules/objects/triggers/DistanceTrigger.cc 2011-05-29 22:01:33 UTC (rev 8674)
+++ code/branches/presentation/src/modules/objects/triggers/DistanceTrigger.cc 2011-05-29 22:14:57 UTC (rev 8675)
@@ -56,13 +56,15 @@
@param creator
The creator of this trigger.
*/
- DistanceTrigger::DistanceTrigger(BaseObject* creator) : Trigger(creator), beaconMask_(NULL)
+ DistanceTrigger::DistanceTrigger(BaseObject* creator) : Trigger(creator)
{
RegisterObject(DistanceTrigger);
this->distance_ = 100;
this->targetMask_.exclude(Class(BaseObject));
this->targetName_ = "";
+ this->beaconMask_.exclude(Class(BaseObject));
+ this->beaconMask_.include(Class(DistanceTriggerBeacon));
}
/**
@@ -71,9 +73,7 @@
*/
DistanceTrigger::~DistanceTrigger()
{
- // Delete the beacon mask if it exists.
- if(this->beaconMask_ != NULL)
- delete this->beaconMask_;
+
}
/**
@@ -158,7 +158,7 @@
ClassTreeMask targetMask = this->targetMask_;
// If we are in identify-mode another target mask has to be applies to find the DistanceTriggerBeacons.
if(this->beaconMode_ == distanceTriggerBeaconMode::identify)
- targetMask = *this->beaconMask_;
+ targetMask = this->beaconMask_;
// Iterate through all objects that are targets of the DistanceTrigger.
for (ClassTreeMaskObjectIterator it = targetMask.begin(); it != targetMask.end(); ++it)
@@ -230,12 +230,6 @@
void DistanceTrigger::setBeaconModeDirect(distanceTriggerBeaconMode::Value mode)
{
this->beaconMode_ = mode;
- if(this->beaconMode_ == distanceTriggerBeaconMode::identify && this->beaconMask_ == NULL)
- {
- this->beaconMask_ = new ClassTreeMask();
- this->beaconMask_->exclude(Class(BaseObject));
- this->beaconMask_->include(Class(DistanceTriggerBeacon));
- }
}
/**
Modified: code/branches/presentation/src/modules/objects/triggers/DistanceTrigger.h
===================================================================
--- code/branches/presentation/src/modules/objects/triggers/DistanceTrigger.h 2011-05-29 22:01:33 UTC (rev 8674)
+++ code/branches/presentation/src/modules/objects/triggers/DistanceTrigger.h 2011-05-29 22:14:57 UTC (rev 8675)
@@ -161,7 +161,7 @@
distanceTriggerBeaconMode::Value beaconMode_; //!< The beacon mode.
std::string targetName_; //!< The name a DistanceTriggerBeacon needs to have to make the DistanceTrigger react to it if in beacon-mode.
- ClassTreeMask* beaconMask_; //!< A mask, that only accepts DistanceTriggerBeacons.
+ ClassTreeMask beaconMask_; //!< A mask, that only accepts DistanceTriggerBeacons.
WeakPtr<WorldEntity> cache_; //!< Caches the entity that triggered the DistanceTrigger last.
};
More information about the Orxonox-commit
mailing list