本文整理汇总了C++中PathObject::update方法的典型用法代码示例。如果您正苦于以下问题:C++ PathObject::update方法的具体用法?C++ PathObject::update怎么用?C++ PathObject::update使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PathObject
的用法示例。
在下文中一共展示了PathObject::update方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: removeLastPointFromSelectedPath
bool DrawPathTool::removeLastPointFromSelectedPath()
{
if (editingInProgress() || map()->getNumSelectedObjects() != 1)
{
return false;
}
Object* object = map()->getFirstSelectedObject();
if (object->getType() != Object::Path)
{
return false;
}
PathObject* path = object->asPath();
if (path->parts().size() != 1)
{
return false;
}
int points_on_path = 0;
int num_coords = path->getCoordinateCount();
for (int i = 0; i < num_coords && points_on_path < 3; ++i)
{
++points_on_path;
if (path->getCoordinate(i).isCurveStart())
{
i += 2; // Skip the control points.
}
}
if (points_on_path < 3)
{
// Too few points after deleting the last: delete the whole object.
map()->deleteSelectedObjects();
return true;
}
ReplaceObjectsUndoStep* undo_step = new ReplaceObjectsUndoStep(map());
Object* undo_duplicate = object->duplicate();
undo_duplicate->setMap(map());
undo_step->addObject(object, undo_duplicate);
map()->push(undo_step);
updateDirtyRect();
path->parts().front().setClosed(false);
path->deleteCoordinate(num_coords - 1, false);
path->update();
map()->setObjectsDirty();
map()->emitSelectionEdited();
return true;
}
示例2: undo
UndoStep* SwitchDashesUndoStep::undo()
{
int const part_index = getPartIndex();
SwitchDashesUndoStep* undo_step = new SwitchDashesUndoStep(map);
undo_step->setPartIndex(part_index);
MapPart* part = map->getPart(part_index);
for (ObjectList::iterator it = modified_objects.begin(), end = modified_objects.end(); it != end; ++it)
{
PathObject* object = reinterpret_cast<PathObject*>(part->getObject(*it));
object->reverse();
object->update();
undo_step->addObject(*it);
}
return undo_step;
}