last ...
This commit is contained in:
@@ -1908,7 +1908,7 @@ void SortZones(
|
||||
if (!hasLast)
|
||||
{
|
||||
//
|
||||
idx = GetYoungest(source);
|
||||
idx = GetOldest(source);
|
||||
hasLast = IsValidIndex(idx);
|
||||
if (hasLast)
|
||||
{
|
||||
@@ -1923,7 +1923,7 @@ void SortZones(
|
||||
//
|
||||
Add(
|
||||
last,
|
||||
source //
|
||||
tmpItems //
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1946,7 +1946,7 @@ void SortZones(
|
||||
|
||||
//
|
||||
T *item = NULL;
|
||||
idx = GetYoungest(source);
|
||||
idx = GetOldest(source);
|
||||
has = IsValidIndex(idx);
|
||||
if (!has)
|
||||
{
|
||||
@@ -3548,7 +3548,7 @@ void Sort(
|
||||
if (!hasLast)
|
||||
{
|
||||
//
|
||||
idx = GetYoungest(source);
|
||||
idx = GetOldest(source);
|
||||
hasLast = IsValidIndex(idx);
|
||||
if (hasLast)
|
||||
{
|
||||
@@ -3563,7 +3563,7 @@ void Sort(
|
||||
//
|
||||
AddRef(
|
||||
last,
|
||||
source //
|
||||
tmpItems //
|
||||
);
|
||||
}
|
||||
|
||||
@@ -3580,13 +3580,13 @@ void Sort(
|
||||
if (!hasLast)
|
||||
{
|
||||
//
|
||||
ZeroMemory(last);
|
||||
last.Clean();
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
XOBFVG item;
|
||||
idx = GetYoungest(source);
|
||||
idx = GetOldest(source);
|
||||
has = IsValidIndex(idx);
|
||||
if (!has)
|
||||
{
|
||||
|
||||
@@ -6639,6 +6639,196 @@ struct XOBFVG
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
void UpdateZones(
|
||||
XPOIState &state //
|
||||
)
|
||||
{
|
||||
//
|
||||
Clean(supplyZones);
|
||||
Clean(demandZones);
|
||||
Clean(supportZones);
|
||||
Clean(resistanceZones);
|
||||
|
||||
//
|
||||
bool isValid =
|
||||
IsValid() &&
|
||||
state.HasChild();
|
||||
if (!isValid)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
int count = 0;
|
||||
bool has = false;
|
||||
bool isPassed = false;
|
||||
|
||||
//
|
||||
// Supply Zones ...
|
||||
has = state.HasSupplyZones();
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
count = state.CountSupplyZones();
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
//
|
||||
XCSupplyZone *iZone = state.supplyZones[i];
|
||||
|
||||
//
|
||||
isPassed = iZone.From() > ob.From();
|
||||
if (!isPassed)
|
||||
{
|
||||
//
|
||||
ZeroMemory(iZone);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
isPassed = IsInsideDiff(
|
||||
iZone,
|
||||
ob //
|
||||
);
|
||||
if (!isPassed)
|
||||
{
|
||||
//
|
||||
ZeroMemory(iZone);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
Add(
|
||||
iZone,
|
||||
supplyZones //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Demand Zones ...
|
||||
has = state.HasDemandZones();
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
count = state.CountDemandZones();
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
//
|
||||
XCDemandZone *iZone = state.demandZones[i];
|
||||
|
||||
//
|
||||
isPassed = iZone.From() > ob.From();
|
||||
if (!isPassed)
|
||||
{
|
||||
//
|
||||
ZeroMemory(iZone);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
isPassed = IsInsideDiff(
|
||||
iZone,
|
||||
ob //
|
||||
);
|
||||
if (!isPassed)
|
||||
{
|
||||
//
|
||||
ZeroMemory(iZone);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
Add(
|
||||
iZone,
|
||||
demandZones //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Support Zones ...
|
||||
has = state.HasSupportZones();
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
count = state.CountSupportZones();
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
//
|
||||
XCSupportZone *iZone = state.supportZones[i];
|
||||
|
||||
//
|
||||
isPassed = iZone.From() > ob.From();
|
||||
if (!isPassed)
|
||||
{
|
||||
//
|
||||
ZeroMemory(iZone);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
isPassed = IsInsideDiff(
|
||||
iZone,
|
||||
ob //
|
||||
);
|
||||
if (!isPassed)
|
||||
{
|
||||
//
|
||||
ZeroMemory(iZone);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
Add(
|
||||
iZone,
|
||||
supportZones //
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Resistance Zones ...
|
||||
has = state.HasResistanceZones();
|
||||
if (has)
|
||||
{
|
||||
//
|
||||
count = state.CountResistanceZones();
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
//
|
||||
XCResistanceZone *iZone = state.resistanceZones[i];
|
||||
|
||||
//
|
||||
isPassed = iZone.From() > ob.From();
|
||||
if (!isPassed)
|
||||
{
|
||||
//
|
||||
ZeroMemory(iZone);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
isPassed = IsInsideDiff(
|
||||
iZone,
|
||||
ob //
|
||||
);
|
||||
if (!isPassed)
|
||||
{
|
||||
//
|
||||
ZeroMemory(iZone);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
Add(
|
||||
iZone,
|
||||
resistanceZones //
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
void UpdateTo(datetime value = NULL)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user