本文整理汇总了C++中ControlPoint::IsIgnored方法的典型用法代码示例。如果您正苦于以下问题:C++ ControlPoint::IsIgnored方法的具体用法?C++ ControlPoint::IsIgnored怎么用?C++ ControlPoint::IsIgnored使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ControlPoint
的用法示例。
在下文中一共展示了ControlPoint::IsIgnored方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FindCnetRef
/**
* FindCnetRef traverses all the control points and measures in the network and checks for
* valid Measure which passes the Emission Incidence Angle, DN value tests and chooses the
* measure with the best Resolution criteria as the reference. Creates a new control network
* with these adjustments.
*
* @author Sharmila Prasad (5/25/2010)
* @history 2010-10-04 Sharmila Prasad - Modified for Binary CNet (Edit Lock)
*
* @param pNewNet - Modified output Control Net
*
*/
void CnetRefByResolution::FindCnetRef(ControlNet &pNewNet) {
// Process each existing control point in the network
int iPointsModified = 0;
int iMeasuresModified = 0;
int iRefChanged = 0;
//Status Report
mStatus.SetText("Choosing Reference by Resolution...");
mStatus.SetMaximumSteps(pNewNet.GetNumPoints());
mStatus.CheckStatus();
//mPvlLog += GetStdOptions();
for (int point = 0; point < pNewNet.GetNumPoints(); ++point) {
ControlPoint *newPnt = pNewNet.GetPoint(point);
bool bError = false;
// Create a copy of original control point
const ControlPoint origPnt(*newPnt);
mdResVector.clear();
// Logging
PvlObject pvlPointObj("PointDetails");
pvlPointObj += Isis::PvlKeyword("PointId", newPnt->GetId());
// Edit Lock Option
bool bPntEditLock = newPnt->IsEditLocked();
if (!bPntEditLock) {
newPnt->SetDateTime(Application::DateTime());
}
else {
pvlPointObj += Isis::PvlKeyword("Reference", "No Change, PointEditLock");
}
int iNumMeasuresLocked = newPnt->GetNumLockedMeasures();
bool bRefLocked = newPnt->GetRefMeasure()->IsEditLocked();
int numMeasures = newPnt->GetNumMeasures();
int iRefIndex = -1;
if (newPnt->IsReferenceExplicit())
iRefIndex = newPnt->IndexOfRefMeasure();
QString istrTemp;
std::vector <PvlGroup> pvlGrpVector;
int iBestIndex = 0;
// Only perform the interest operation on points of type "Free" and
// Points having atleast 1 measure and Point is not Ignored
// Check for EditLock in the Measures and also verfify that
// only a Reference Measure can be Locked else error
if (!newPnt->IsIgnored() && newPnt->GetType() == ControlPoint::Free && numMeasures > 0 &&
(iNumMeasuresLocked == 0 || (iNumMeasuresLocked > 0 && bRefLocked))) {
int iNumIgnore = 0;
QString istrTemp;
for (int measure = 0; measure < newPnt->GetNumMeasures(); ++measure) {
ControlMeasure *newMsr = newPnt->GetMeasure(measure);
bool bMeasureLocked = newMsr->IsEditLocked();
double dSample = newMsr->GetSample();
double dLine = newMsr->GetLine();
QString sn = newMsr->GetCubeSerialNumber();
if (!bPntEditLock && !bMeasureLocked) {
newMsr->SetDateTime(Application::DateTime());
newMsr->SetChooserName("Application cnetref(Resolution)");
}
// Log
PvlGroup pvlMeasureGrp("MeasureDetails");
pvlMeasureGrp += Isis::PvlKeyword("SerialNum", sn);
pvlMeasureGrp += Isis::PvlKeyword("OriginalLocation", LocationString(dSample, dLine));
if (bMeasureLocked)
pvlMeasureGrp += Isis::PvlKeyword("EditLock", "True");
if (!newMsr->IsIgnored()) {
Cube *measureCube = mCubeMgr.OpenCube(mSerialNumbers.FileName(sn));
MeasureValidationResults results =
ValidStandardOptions(newMsr, measureCube, &pvlMeasureGrp);
if (!results.isValid()) {
if (bPntEditLock) {
pvlMeasureGrp += Isis::PvlKeyword("UnIgnored", "Failed Validation Test but not Ignored as Point EditLock is True");
}
else if (bMeasureLocked) {
pvlMeasureGrp += Isis::PvlKeyword("UnIgnored", "Failed Validation Test but not Ignored as Measure EditLock is True");
}
else {
pvlMeasureGrp += Isis::PvlKeyword("Ignored", "Failed Validation Test");
//.........这里部分代码省略.........
示例2: IsisMain
/** The ISIS smtk main application */
void IsisMain() {
UserInterface &ui = Application::GetUserInterface();
// Open the first cube. It is the left hand image.
Cube lhImage;
CubeAttributeInput &attLeft = ui.GetInputAttribute("FROM");
vector<QString> bandLeft = attLeft.bands();
lhImage.setVirtualBands(bandLeft);
lhImage.open(ui.GetFileName("FROM"),"r");
// Open the second cube, it is geomertricallty altered. We will be matching the
// first to this one by attempting to compute a sample/line offsets
Cube rhImage;
CubeAttributeInput &attRight = ui.GetInputAttribute("MATCH");
vector<QString> bandRight = attRight.bands();
rhImage.setVirtualBands(bandRight);
rhImage.open(ui.GetFileName("MATCH"),"r");
// Ensure only single bands
if (lhImage.bandCount() != 1 || rhImage.bandCount() != 1) {
QString msg = "Input Cubes must have only one band!";
throw IException(IException::User,msg,_FILEINFO_);
}
// Both images must have a Camera and can also have a Projection. We will
// only deal with a Camera, however as a projected, non-mosaicked image
// uses a Projection internal to the Camera object.
Camera *lhCamera = NULL;
Camera *rhCamera = NULL;
try {
lhCamera = lhImage.camera();
rhCamera = rhImage.camera();
}
catch (IException &ie) {
QString msg = "Both input images must have a camera";
throw IException(ie, IException::User, msg, _FILEINFO_);
}
// Since we are generating a DEM, we must turn off any existing
// DEM that may have been initialized with spiceinit.
lhCamera->IgnoreElevationModel(true);
rhCamera->IgnoreElevationModel(true);
// Get serial number
QString serialLeft = SerialNumber::Compose(lhImage, true);
QString serialRight = SerialNumber::Compose(rhImage, true);
// This still precludes band to band registrations.
if (serialLeft == serialRight) {
QString sLeft = FileName(lhImage.fileName()).name();
QString sRight = FileName(rhImage.fileName()).name();
if (sLeft == sRight) {
QString msg = "Cube Serial Numbers must be unique - FROM=" + serialLeft +
", MATCH=" + serialRight;
throw IException(IException::User,msg,_FILEINFO_);
}
serialLeft = sLeft;
serialRight = sRight;
}
Progress prog;
prog.SetText("Finding Initial Seeds");
int nl = lhImage.lineCount();
int ns = lhImage.sampleCount();
BigInt numAttemptedInitialPoints = 0;
// Declare Gruen matcher
SmtkMatcher matcher(ui.GetFileName("REGDEF"), &lhImage, &rhImage);
// Get line/sample linc/sinc parameters
int space = ui.GetInteger("SPACE");
int linc (space), sinc(space);
// Do we have a seed points from a control net file?
bool useseed = ui.WasEntered("CNET");
// Base points on an input cnet
SmtkQStack gstack;
double lastEigen(0.0);
if (useseed) {
ControlNet cnet(ui.GetFileName("CNET"));
prog.SetMaximumSteps(cnet.GetNumPoints());
prog.CheckStatus();
gstack.reserve(cnet.GetNumPoints());
for (int cpIndex = 0; cpIndex < cnet.GetNumPoints(); cpIndex ++) {
ControlPoint *cp = cnet.GetPoint(cpIndex);
if (!cp->IsIgnored()) {
ControlMeasure *cmLeft(0), *cmRight(0);
for(int cmIndex = 0; cmIndex < cp->GetNumMeasures(); cmIndex ++) {
ControlMeasure *cm = cp->GetMeasure(cmIndex);
if (!cm->IsIgnored()) {
if (cm->GetCubeSerialNumber() == serialLeft)
cmLeft = cp->GetMeasure(cmIndex);
if (cm->GetCubeSerialNumber() == serialRight)
cmRight = cp->GetMeasure(cmIndex);
//.........这里部分代码省略.........