22.删除
删除功能同样是设计软件的基础功能,可以方便的删除不需要的目标元素,结合选择功能的使用可以提高工作效率。
本节课程我们实现删除功能,支持删除当前选择的元素,如线、组件。功能实现的代码量比较少,同时逻辑较简单,我们来看下接口调用逻辑。
- 点击按钮调用
GLView.deleteSelected
,直接调用Model.DeleteSelectedElements
; Model.DeleteSelectedElements
调用DrawingLinesholder.deleteSelectedLines
和DrawingComponentHolder.deleteSelectedComponents
实现对选择元素的删除功能。
在本节课程中我们优化了ModelNode
的实现,将curveId
的类型改为了const CurveData*
,方便在删除目标线时删除相关的ModelNode
数据。
// delete nodes
for (auto itrItem = modelNodes.begin(); itrItem != modelNodes.end(); /*++itrItem*/)
{
auto itrFind = mapCurveData.find(itrItem->curveId);
if (itrFind != mapCurveData.end())
{
itrItem = modelNodes.erase(itrItem);
continue;
}
++itrItem;
}
运行和体验添加的新功能吧,有问题或疑问请查看工程代码或联系我。