last ...
This commit is contained in:
@@ -674,6 +674,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
// Tools ...
|
||||
|
||||
//
|
||||
virtual void Default()
|
||||
{
|
||||
//
|
||||
@@ -3376,6 +3377,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
|
||||
//
|
||||
void Validate(
|
||||
XBoxZone &unAvailableBoxes[],
|
||||
int barIndex = 0 //
|
||||
)
|
||||
{
|
||||
@@ -3424,6 +3426,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3461,6 +3464,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3498,6 +3502,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3535,6 +3540,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3572,6 +3578,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3609,6 +3616,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3646,6 +3654,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3683,6 +3692,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3720,6 +3730,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3757,6 +3768,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3794,6 +3806,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3831,6 +3844,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3868,6 +3882,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3905,6 +3920,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3942,6 +3958,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -3979,6 +3996,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -4016,6 +4034,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -4053,6 +4072,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -4090,6 +4110,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -4127,6 +4148,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -4164,6 +4186,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -4201,6 +4224,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
@@ -4214,6 +4238,160 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
}
|
||||
Clean(tmp);
|
||||
}
|
||||
|
||||
//
|
||||
has = HasRSICrossedOverOSPivots();
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
Copy(
|
||||
rsiCrossedOverOSPivots,
|
||||
tmp //
|
||||
);
|
||||
Clean(rsiCrossedOverOSPivots);
|
||||
while (HasChild(tmp))
|
||||
{
|
||||
//
|
||||
XCAPivot iPivot = tmp[0];
|
||||
ArrayRemove(
|
||||
tmp,
|
||||
0,
|
||||
1 //
|
||||
);
|
||||
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
{
|
||||
//
|
||||
AddRef(
|
||||
iPivot,
|
||||
rsiCrossedOverOSPivots //
|
||||
);
|
||||
}
|
||||
}
|
||||
Clean(tmp);
|
||||
}
|
||||
|
||||
//
|
||||
has = HasRSICrossedUnderOBPivots();
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
Copy(
|
||||
rsiCrossedUnderOBPivots,
|
||||
tmp //
|
||||
);
|
||||
Clean(rsiCrossedUnderOBPivots);
|
||||
while (HasChild(tmp))
|
||||
{
|
||||
//
|
||||
XCAPivot iPivot = tmp[0];
|
||||
ArrayRemove(
|
||||
tmp,
|
||||
0,
|
||||
1 //
|
||||
);
|
||||
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
{
|
||||
//
|
||||
AddRef(
|
||||
iPivot,
|
||||
rsiCrossedUnderOBPivots //
|
||||
);
|
||||
}
|
||||
}
|
||||
Clean(tmp);
|
||||
}
|
||||
|
||||
//
|
||||
has = HasCCICrossedOverOSPivots();
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
Copy(
|
||||
cciCrossedOverOSPivots,
|
||||
tmp //
|
||||
);
|
||||
Clean(cciCrossedOverOSPivots);
|
||||
while (HasChild(tmp))
|
||||
{
|
||||
//
|
||||
XCAPivot iPivot = tmp[0];
|
||||
ArrayRemove(
|
||||
tmp,
|
||||
0,
|
||||
1 //
|
||||
);
|
||||
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
{
|
||||
//
|
||||
AddRef(
|
||||
iPivot,
|
||||
cciCrossedOverOSPivots //
|
||||
);
|
||||
}
|
||||
}
|
||||
Clean(tmp);
|
||||
}
|
||||
|
||||
//
|
||||
has = HasCCICrossedUnderOBPivots();
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
Copy(
|
||||
cciCrossedUnderOBPivots,
|
||||
tmp //
|
||||
);
|
||||
Clean(cciCrossedUnderOBPivots);
|
||||
while (HasChild(tmp))
|
||||
{
|
||||
//
|
||||
XCAPivot iPivot = tmp[0];
|
||||
ArrayRemove(
|
||||
tmp,
|
||||
0,
|
||||
1 //
|
||||
);
|
||||
|
||||
//
|
||||
has = IsPivotBreaked(
|
||||
iPivot,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!has)
|
||||
{
|
||||
//
|
||||
AddRef(
|
||||
iPivot,
|
||||
cciCrossedUnderOBPivots //
|
||||
);
|
||||
}
|
||||
}
|
||||
Clean(tmp);
|
||||
}
|
||||
|
||||
//
|
||||
}
|
||||
|
||||
//
|
||||
@@ -4508,7 +4686,8 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
|
||||
//
|
||||
has = HasRSICrossedOverOSPivots();
|
||||
if (has) {
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
count = CountRSICrossedOverOSPivots();
|
||||
for (int i = 0; i < count; i++)
|
||||
@@ -4532,7 +4711,8 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
|
||||
//
|
||||
has = HasCCICrossedOverOSPivots();
|
||||
if (has) {
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
count = CountCCICrossedOverOSPivots();
|
||||
for (int i = 0; i < count; i++)
|
||||
@@ -4853,7 +5033,8 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
|
||||
//
|
||||
has = HasRSICrossedUnderOBPivots();
|
||||
if (has) {
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
count = CountRSICrossedUnderOBPivots();
|
||||
for (int i = 0; i < count; i++)
|
||||
@@ -4877,7 +5058,8 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
|
||||
//
|
||||
has = HasCCICrossedUnderOBPivots();
|
||||
if (has) {
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
count = CountCCICrossedUnderOBPivots();
|
||||
for (int i = 0; i < count; i++)
|
||||
@@ -5346,6 +5528,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
bool CheckPivotCommons(
|
||||
XCAPivot &pivot,
|
||||
XBoxZone &box,
|
||||
XBoxZone &unAvailableBoxes[],
|
||||
int barIndex = 0 //
|
||||
)
|
||||
{
|
||||
@@ -5384,6 +5567,47 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
result = CheckPivotIsAvailable(
|
||||
box,
|
||||
unAvailableBoxes //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
box.Clean();
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool CheckPivotIsAvailable(
|
||||
XBoxZone &pivotBox,
|
||||
XBoxZone &unAvailableBoxes[] //
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
result = pivotBox.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
int idx = -1;
|
||||
bool isExists = FindBoxIndex(
|
||||
idx,
|
||||
pivotBox,
|
||||
unAvailableBoxes //
|
||||
);
|
||||
result = !isExists;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
@@ -5391,6 +5615,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
//
|
||||
bool IsPivotBreaked(
|
||||
XCAPivot &pivot,
|
||||
XBoxZone &unAvailableBoxes[],
|
||||
int barIndex = 0 //
|
||||
)
|
||||
{
|
||||
@@ -5402,6 +5627,7 @@ class XCXCAEAPOIDetector : public XCBase
|
||||
result = CheckPivotCommons(
|
||||
pivot,
|
||||
iBox,
|
||||
unAvailableBoxes,
|
||||
barIndex //
|
||||
);
|
||||
if (!result)
|
||||
|
||||
Reference in New Issue
Block a user