Changeset 2029 for code/branches/objecthierarchy/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc
- Timestamp:
- Oct 28, 2008, 8:37:09 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/objecthierarchy/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc
r2027 r2029 41 41 RegisterObject(DistanceTrigger); 42 42 43 targetMask_.exclude(Class(BaseObject)); 43 this->distance_ = 100; 44 this->targetMask_.exclude(Class(BaseObject)); 44 45 } 45 46 46 47 DistanceTrigger::~DistanceTrigger() 47 48 { 49 } 50 51 void DistanceTrigger::XMLPort(Element& xmlelement, XMLPort::Mode mode) 52 { 53 SUPER(DistanceTrigger, XMLPort, xmlelement, mode); 54 55 XMLPortParam(DistanceTrigger, "distance", setDistance, getDistance, xmlelement, mode).defaultValues(100.0f); 56 XMLPortParamLoadOnly(DistanceTrigger, "target", addTargets, xmlelement, mode); 48 57 } 49 58 … … 61 70 COUT(4) << "Content of targetSet of trigger " << this << " :" << std::endl; 62 71 std::set<Ogre::Node*>::iterator it; 63 for (it = this->targetSet_.begin(); it != this->targetSet_.end(); it++)72 for (it = this->targetSet_.begin(); it != this->targetSet_.end(); ++it) 64 73 { 65 74 COUT(4) << *it << std::endl; … … 87 96 { 88 97 // Iterate through all WorldEntities 89 for (Iterator<WorldEntity> it = ObjectList<WorldEntity>::begin(); it; it++)98 for (Iterator<WorldEntity> it = ObjectList<WorldEntity>::begin(); it; ++it) 90 99 { 91 100 // check if WorldEntity is a target 92 if (targetMask_.isIncluded(it->getIdentifier()))101 if (targetMask_.isIncluded(it->getIdentifier())) 93 102 { 94 103 Vector3 distanceVec = it->getNode()->getWorldPosition() - this->getNode()->getWorldPosition(); 95 104 if (distanceVec.length() < this->distance_) 96 {97 105 return true; 98 }99 106 } 100 107 } … … 103 110 } 104 111 105 void DistanceTrigger::setDistance(float dist)106 {107 this->distance_ = dist;108 }109 110 void DistanceTrigger::XMLPort(Element& xmlelement, XMLPort::Mode mode)111 {112 Trigger::XMLPort(xmlelement, mode);113 114 XMLPortParamLoadOnly(DistanceTrigger, "distance", setDistance, xmlelement, mode);115 XMLPortParamLoadOnly(DistanceTrigger, "target", addTargets, xmlelement, mode);116 }117 118 112 bool DistanceTrigger::isTriggered(TriggerMode mode) 119 113 { 120 if (Trigger::isTriggered(mode))114 if (Trigger::isTriggered(mode)) 121 115 return checkDistance(); 122 116 else
Note: See TracChangeset
for help on using the changeset viewer.