示例#1
0
文件: Model.cpp 项目: jojo-/influenza
void Model::providePackage(Individual * agent, std::vector<IndividualPackage>& out) {

	AgentId id = agent->getId();
	IndividualPackage package = { id.id(), id.startingRank(), id.agentType(), id.currentRank(),
			agent->getAgenda(), agent->getCurAct(), agent->getAgeCl(), agent->getGender(), agent->getSocioProStatus(),
			agent->getEduLevel(), agent->getState(), agent->getTimeTransition() };
	out.push_back(package);

}
void ZombieObserver::provideContent(RelogoAgent* agent, std::vector<AgentPackage>& out) {
	AgentId id = agent->getId();
	AgentPackage content = { id.id(), id.startingRank(), id.agentType(), id.currentRank(), 0, false };
	if (id.agentType() == humanType) {
		Human* human = static_cast<Human*> (agent);
		content.infected = human->infected();
		content.infectionTime = human->infectionTime();
	}
	out.push_back(content);
}
void ZombieObserver::provideContent(const repast::AgentRequest& request, std::vector<AgentPackage>& out) {
	const vector<AgentId>& ids = request.requestedAgents();
	for (int i = 0, n = ids.size(); i < n; i++) {
		AgentId id = ids[i];
		AgentPackage content = { id.id(), id.startingRank(), id.agentType(), id.currentRank(), 0, false };
		if (id.agentType() == humanType) {
			Human* human = who<Human> (id);
			content.infected = human->infected();
			content.infectionTime = human->infectionTime();
		}
		out.push_back(content);
	}
}