void VisionPerceptor::AddSense(oxygen::Predicate& predicate, ObjectData& od) const { ParameterList& element = predicate.parameter.AddList(); element.AddValue(od.mObj->GetPerceptName()); // if(od.mObj->GetPerceptName() == "Player") if(od.mObj->GetPerceptName() == "P") { ParameterList player; player.AddValue(std::string("team")); player.AddValue (std::string (od.mObj->GetPerceptName(ObjectState::PT_Player) ) ); element.AddValue(player); } if (!od.mObj->GetID().empty()) { ParameterList id; id.AddValue(std::string("id")); id.AddValue(od.mObj->GetID()); element.AddValue(id); } ParameterList& position = element.AddList(); position.AddValue(std::string("pol")); position.AddValue(od.mDist); position.AddValue(od.mTheta); position.AddValue(od.mPhi); }
void Capsule::SetParams(float radius, float length) { ParameterList parameter; parameter.AddValue(radius); parameter.AddValue(length); Load("StdCapsule",parameter); mRadius = radius; mLength = length; }
void getParameterList(VALUE args, ParameterList& params) { int argc = RARRAY_LEN(args); for (int i = 0; i<argc; ++i) { VALUE argument = rb_ary_entry(args, i); boost::any var; // do type conversion switch (TYPE(argument)) { case T_STRING: { char *c = STR2CSTR(argument); var = c; //printf("string: '%s'\n",boost::any_cast<char*>(var)); } break; case T_FIXNUM: { int i = FIX2INT(argument); var = i; //printf("int: '%d'\n", boost::any_cast<int>(var)); } break; case T_FLOAT: { float f = (float)NUM2DBL(argument); var = f; //printf("float: '%f'\n", boost::any_cast<float>(var)); } break; case T_TRUE: { var = true; //printf("bool: 'true'\n"); } break; case T_FALSE: { var = false; //printf("bool: 'false'\n"); } break; } params.AddValue(var); } }
void SexpParser::SexpToList(ParameterList& arguments, const sexp_t* const sexp) { sexp_t* s = const_cast<sexp_t*>(sexp); while (s != 0) { if (s->ty == SEXP_VALUE) { arguments.AddValue(string(s->val)); } else { ParameterList& elem = arguments.AddList(); SexpToList(elem,s->list); } s = s->next; } }
void RestrictedVisionPerceptor::AddSense(Predicate& predicate, boost::shared_ptr<BaseNode> node, TObjectList& objectList) const { if (objectList.empty()) { return; } boost::shared_ptr<AgentAspect> agent_aspect = dynamic_pointer_cast<AgentAspect>(node); if (agent_aspect != 0) { boost::shared_ptr<AgentAspect> aspect = agent_aspect->FindParentSupportingClass<AgentAspect>().lock(); if (aspect != 0) { agent_aspect = aspect; } boost::shared_ptr<AgentState> agent_state = static_pointer_cast<AgentState> (agent_aspect->GetChildOfClass("AgentState",true)); if (agent_state.get() == 0 || (agent_state->GetPerceptName(ObjectState::PT_Player).empty()) ) { return; } ParameterList& element = predicate.parameter.AddList(); element.AddValue(std::string("P")); ParameterList player; player.AddValue(std::string("team")); player.AddValue (std::string (agent_state->GetPerceptName(ObjectState::PT_Player) ) ); element.AddValue(player); if (! agent_state->GetID().empty()) { ParameterList id; id.AddValue(std::string("id")); id.AddValue(agent_state->GetID()); element.AddValue(id); } for (TObjectList::iterator j = objectList.begin(); j != objectList.end(); ++j) { ObjectData& od = (*j); if (!od.mObj->GetID().empty()) { ParameterList id; id.AddValue(od.mObj->GetID()); ParameterList position; position.AddValue(std::string("pol")); position.AddValue(od.mDist); position.AddValue(od.mTheta); position.AddValue(od.mPhi); id.AddValue(position); element.AddValue(id); } } } else { for (TObjectList::iterator j = objectList.begin(); j != objectList.end(); ++j) { ObjectData& od = (*j); ParameterList& element = predicate.parameter.AddList(); element.AddValue(od.mObj->GetPerceptName()); ParameterList& position = element.AddList(); position.AddValue(std::string("pol")); position.AddValue(od.mDist); position.AddValue(od.mTheta); position.AddValue(od.mPhi); } } }