Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 28, 2008, 8:37:09 PM (16 years ago)
Author:
landauf
Message:

some changes in Trigger and DistanceTrigger

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/objecthierarchy/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc

    r2027 r2029  
    4141    RegisterObject(DistanceTrigger);
    4242
    43     targetMask_.exclude(Class(BaseObject));
     43    this->distance_ = 100;
     44    this->targetMask_.exclude(Class(BaseObject));
    4445  }
    4546
    4647  DistanceTrigger::~DistanceTrigger()
    4748  {
     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);
    4857  }
    4958
     
    6170      COUT(4) << "Content of targetSet of trigger " << this << " :" << std::endl;
    6271      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)
    6473      {
    6574        COUT(4) << *it << std::endl;
     
    8796  {
    8897    // Iterate through all WorldEntities
    89     for(Iterator<WorldEntity> it = ObjectList<WorldEntity>::begin(); it; it++)
     98    for (Iterator<WorldEntity> it = ObjectList<WorldEntity>::begin(); it; ++it)
    9099    {
    91100      // check if WorldEntity is a target
    92       if(targetMask_.isIncluded(it->getIdentifier()))
     101      if (targetMask_.isIncluded(it->getIdentifier()))
    93102      {
    94103        Vector3 distanceVec = it->getNode()->getWorldPosition() - this->getNode()->getWorldPosition();
    95104        if (distanceVec.length() < this->distance_)
    96         {
    97105          return true;
    98         }
    99106      }
    100107    }
     
    103110  }
    104111
    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 
    118112  bool DistanceTrigger::isTriggered(TriggerMode mode)
    119113  {
    120     if(Trigger::isTriggered(mode))
     114    if (Trigger::isTriggered(mode))
    121115      return checkDistance();
    122116    else
Note: See TracChangeset for help on using the changeset viewer.