ITreeNode::TResult CalculateAvoidanceDestiny::Run()
{
	Entity * enemy;
	context->GetValueEntity(TreeContext::KEY_THREAT, &enemy);

	Vec2D direction, threat;
	float projection;
	direction.x = DegCos(owner->rotation - 90)*linearSpeed;
	direction.y = DegSin(owner->rotation - 90)*-linearSpeed;

	threat.x = enemy->x - owner->x;
	threat.y = enemy->y - owner->y;

	projection=threat.Dot(direction);

	direction.normalize();


	
	return TResult();
}
        virtual bool eat(std::vector<unsigned char>& data)
        {
            result = TResult(); //clear

            Iterator iter = data.begin();
            Iterator end = data.end();

            if (qi::parse(iter, end, grammar, result))
            {
                data.erase(data.begin(), iter);

                if (callback)
                {
                    callback(result);
                }

                return true;
            }

            return false;
        }