本文整理汇总了C++中ItemContainer::updatePosition方法的典型用法代码示例。如果您正苦于以下问题:C++ ItemContainer::updatePosition方法的具体用法?C++ ItemContainer::updatePosition怎么用?C++ ItemContainer::updatePosition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ItemContainer
的用法示例。
在下文中一共展示了ItemContainer::updatePosition方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parse
void MessageParser::parse() {
QDomElement docElem = doc.documentElement();
QDomNode n = docElem.firstChild();
while (!n.isNull()) {
QDomElement e = n.toElement();
if (!e.isNull()) {
if (e.tagName() == "timestep") {
// not implemented
// QString timestep = e.attribute("value", "0");
// QImage img(1024,768,QImage::Format_ARGB32_Premultiplied);
// QPainter p(&img);
// scene->render(&p);
// p.end();
// img.save("output/" + timestep + ".png");
}
if (e.tagName() == "reset") {
agentcontainer.for_each(scene_remove_item);
agentcontainer.for_each(delete_item);
agentcontainer.clear();
obstaclecontainer.for_each(scene_remove_item);
obstaclecontainer.for_each(delete_item);
obstaclecontainer.clear();
}
if (e.tagName() == "position") {
std::string type = e.attribute("type", "").toStdString().c_str();
QString id = e.attribute("id", "0");
double x = atof(e.attribute("x", "0.0").toStdString().c_str());
double y = atof(e.attribute("y", "0.0").toStdString().c_str());
if (type == "agent") {
if (!agentcontainer.contains(id)) {
Agent *agent = new Agent;
scene->addItem(agent);
agentcontainer.addItem(id, agent);
}
agentcontainer.updatePosition(id, x, y);
}
if (type == "obstacle") {
if (!obstaclecontainer.contains(id)) {
Obstacle *obstacle = new Obstacle;
scene->addItem(obstacle);
obstaclecontainer.addItem(id, obstacle);
}
double dx = atof(e.attribute("dx", "0.0").toStdString().c_str());
double dy = atof(e.attribute("dy", "0.0").toStdString().c_str());
obstaclecontainer.updatePosition(id, x, y, dx, dy);
}
}
}
n = n.nextSibling();
}
}