00001 #include "AgentEvalOp.h" 00002 00003 00004 class IfWallAhead : public Tree::Primitives::Primitive 00005 { 00006 public: 00007 00008 IfWallAhead() 00009 { 00010 nArguments_ = 2; 00011 name_ = "ifa"; 00012 } 00013 00014 void execute(void* evalOp, Tree::Tree& tree) 00015 { 00016 00017 AgentEvalOp* ant = (AgentEvalOp*) evalOp; 00018 00019 00020 if(ant->checkFrontWall()) 00021 { 00022 getNextArgument(evalOp, tree); 00023 tree.iNode_ += tree[tree.iNode_ + 1]->size_; 00024 } 00025 else 00026 { 00027 tree.iNode_ += tree[tree.iNode_ + 1]->size_; 00028 getNextArgument(evalOp, tree); 00029 } 00030 } 00031 00032 ~IfWallAhead() 00033 { } 00034 };