本文整理汇总了C++中ControlPoint::Delete方法的典型用法代码示例。如果您正苦于以下问题:C++ ControlPoint::Delete方法的具体用法?C++ ControlPoint::Delete怎么用?C++ ControlPoint::Delete使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ControlPoint
的用法示例。
在下文中一共展示了ControlPoint::Delete方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IsisMain
//.........这里部分代码省略.........
if (log) {
PvlKeyword &logKeyword = (imageAdded) ? added : omitted;
logKeyword.addValue(addList[img].baseName());
}
progress.CheckStatus();
}
if (log) {
// Add the list of modified points to the output log file
QList<QString> modifiedPointsList = g_modifications.keys();
for (int i = 0; i < modifiedPointsList.size(); i++)
pointsModified += modifiedPointsList[i];
results.addKeyword(added);
results.addKeyword(omitted);
results.addKeyword(pointsModified);
if (duplicates.size() > 0) {
results.addKeyword(duplicates);
}
results.write(logFile.expanded());
}
// List the modified points
if (ui.WasEntered("MODIFIEDPOINTS")) {
FileName pointList(ui.GetFileName("MODIFIEDPOINTS"));
// Set up the output file for writing
std::ofstream out_stream;
out_stream.open(pointList.expanded().toAscii().data(), std::ios::out);
out_stream.seekp(0, std::ios::beg); //Start writing from beginning of file
QList<QString> modifiedPointsList = g_modifications.keys();
for (int i = 0; i < modifiedPointsList.size(); i++)
out_stream << modifiedPointsList[i].toStdString() << std::endl;
out_stream.close();
}
// Modify the inNet to only have modified points/measures
if (ui.GetString("EXTRACT") == "MODIFIED") {
for (int cp = inNet.GetNumPoints() - 1; cp >= 0; cp--) {
ControlPoint *point = inNet.GetPoint(cp);
// If the point was not modified, delete
// Even get rid of edit locked points in this case
if (!g_modifications.contains(point->GetId())) {
point->SetEditLock(false);
inNet.DeletePoint(cp);
}
// Else, remove the unwanted measures from the modified point
else {
for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) {
ControlMeasure *measure = point->GetMeasure(cm);
// Even get rid of edit locked measures in this case
if (point->GetRefMeasure() != measure &&
!g_modifications[point->GetId()].contains(
measure->GetCubeSerialNumber())) {
measure->SetEditLock(false);
point->Delete(cm);
}
}
}
}
}
// Generate the TOLIST if wanted
if (ui.WasEntered("TOLIST")) {
SerialNumberList toList;
SerialNumberList addSerials(ui.GetFileName("ADDLIST"));
const QList<QString> snList = inNet.GetCubeSerials();
for (int i = 0; i < snList.size(); i++) {
QString sn = snList[i];
if (addSerials.HasSerialNumber(sn))
toList.Add(addSerials.FileName(sn));
else if (fromSerials->HasSerialNumber(sn))
toList.Add(fromSerials->FileName(sn));
}
IString name(ui.GetFileName("TOLIST"));
std::fstream out_stream;
out_stream.open(name.c_str(), std::ios::out);
out_stream.seekp(0, std::ios::beg); //Start writing from beginning of file
for (int f = 0; f < (int) toList.Size(); f++)
out_stream << toList.FileName(f) << std::endl;
out_stream.close();
}
inNet.Write(outNetFile.expanded());
delete fromSerials;
}
示例2: if
ControlNet * CnetEditorWidget::filteredNetwork() const {
ControlNet * filteredCnet = new ControlNet(*m_controlNet);
QList<AbstractTreeItem *> networkItems = m_pointModel->getItems(0, -1,
AbstractTreeModel::MeasureItems | AbstractTreeModel::PointItems, true);
// Iterate through our copy of the cnet, deleting anything that doesn't
// exactly match our networkItems.
for (int pointIndex = filteredCnet->GetNumPoints() - 1;
pointIndex >= 0;
pointIndex--) {
if (networkItems.isEmpty()) {
ControlPoint *cp = filteredCnet->GetPoint(pointIndex);
cp->SetEditLock(false);
for (int measureIndex = 0;
measureIndex < cp->GetNumMeasures();
measureIndex++) {
cp->GetMeasure(measureIndex)->SetEditLock(false);
}
filteredCnet->DeletePoint(cp);
}
else if (networkItems.last()->getPointerType() ==
AbstractTreeItem::Point) {
ControlPoint *networkItemsCp =
(ControlPoint *)networkItems.last()->getPointer();
ControlPoint *cp = filteredCnet->GetPoint(pointIndex);
if (cp->GetId() != networkItemsCp->GetId()) {
cp->SetEditLock(false);
for (int measureIndex = 0;
measureIndex < cp->GetNumMeasures();
measureIndex++) {
cp->GetMeasure(measureIndex)->SetEditLock(false);
}
filteredCnet->DeletePoint(cp);
}
else {
networkItems.removeLast();
}
}
else if (networkItems.last()->getPointerType() ==
AbstractTreeItem::Measure) {
ControlPoint *cp = filteredCnet->GetPoint(pointIndex);
ControlMeasure *networkItemsCm =
(ControlMeasure *)networkItems.last()->getPointer();
if (cp->GetId() != networkItemsCm->Parent()->GetId()) {
cp->SetEditLock(false);
for (int measureIndex = 0;
measureIndex < cp->GetNumMeasures();
measureIndex++) {
cp->GetMeasure(measureIndex)->SetEditLock(false);
}
filteredCnet->DeletePoint(cp);
}
else {
// Our CP stays, figure out which CMs stay.
for (int measureIndex = cp->GetNumMeasures() - 1;
networkItemsCm && measureIndex >= 0;
measureIndex--) {
ControlMeasure *cm = cp->GetMeasure(measureIndex);
if (cm->GetCubeSerialNumber() !=
networkItemsCm->GetCubeSerialNumber()) {
cm->SetEditLock(false);
cp->Delete(cm);
}
else {
networkItems.removeLast();
networkItemsCm = NULL;
if (networkItems.last()->getPointerType() ==
AbstractTreeItem::Measure) {
networkItemsCm =
(ControlMeasure *)networkItems.last()->getPointer();
}
}
}
// We still need to verify the copied CP at this index... although
// nothing should go wrong, we know things do go wrong so do
// the verify instead of just tossing the last networkItems item.
pointIndex++;
}
}
}
return filteredCnet;
}