945 lines
31 KiB
Plaintext
945 lines
31 KiB
Plaintext
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
else if (isPriceRejected)
|
|
{
|
|
//
|
|
bool hasRejectedOB = rejectedOB != NULL;
|
|
bool hasRejectedFVG = rejectedFVG != NULL;
|
|
|
|
// //
|
|
// if (hasRejectedOB)
|
|
// {
|
|
// //
|
|
// DrawX121SMCXSupDemOBSOrderBlock(
|
|
// rejectedOB,
|
|
// consolidationCycleHelper.mPOIDrawer //
|
|
// );
|
|
// }
|
|
|
|
// //
|
|
// if (hasRejectedFVG)
|
|
// {
|
|
// //
|
|
// DrawX121SMCXSupDemOBSFairValueGap(
|
|
// rejectedFVG,
|
|
// consolidationCycleHelper.mPOIDrawer //
|
|
// );
|
|
// }
|
|
|
|
// //
|
|
// if (!hasRejectedOB &&
|
|
// !hasRejectedFVG)
|
|
// {
|
|
// //
|
|
// if (hasInsideSupDemZone)
|
|
// {
|
|
// //
|
|
// double min = 0;
|
|
// double max = 0;
|
|
// bool canSetMin = false;
|
|
// bool canSetMax = false;
|
|
|
|
// //
|
|
// if (swingBar.IsValid())
|
|
// {
|
|
// //
|
|
// canSetMin =
|
|
// min == 0 || min > swingBar.low;
|
|
// if (canSetMin)
|
|
// {
|
|
// min = swingBar.low;
|
|
// }
|
|
|
|
// //
|
|
// canSetMax =
|
|
// max == 0 || max < swingBar.high;
|
|
// if (canSetMax)
|
|
// {
|
|
// max = swingBar.high;
|
|
// }
|
|
// }
|
|
|
|
// //
|
|
// if (rejectBar.IsValid())
|
|
// {
|
|
// //
|
|
// canSetMin =
|
|
// min == 0 || min > rejectBar.low;
|
|
// if (canSetMin)
|
|
// {
|
|
// min = rejectBar.low;
|
|
// }
|
|
|
|
// //
|
|
// canSetMax =
|
|
// max == 0 || max < rejectBar.high;
|
|
// if (canSetMax)
|
|
// {
|
|
// max = rejectBar.high;
|
|
// }
|
|
// }
|
|
|
|
// //
|
|
// if (breakerBar.IsValid())
|
|
// {
|
|
// //
|
|
// canSetMin =
|
|
// min == 0 || min > breakerBar.low;
|
|
// if (canSetMin)
|
|
// {
|
|
// min = breakerBar.low;
|
|
// }
|
|
|
|
// //
|
|
// canSetMax =
|
|
// max == 0 || max < breakerBar.high;
|
|
// if (canSetMax)
|
|
// {
|
|
// max = breakerBar.high;
|
|
// }
|
|
// }
|
|
|
|
// //
|
|
// if (momentumBar.IsValid())
|
|
// {
|
|
// //
|
|
// canSetMin =
|
|
// min == 0 || min > momentumBar.low;
|
|
// if (canSetMin)
|
|
// {
|
|
// min = momentumBar.low;
|
|
// }
|
|
|
|
// //
|
|
// canSetMax =
|
|
// max == 0 || max < momentumBar.high;
|
|
// if (canSetMax)
|
|
// {
|
|
// max = momentumBar.high;
|
|
// }
|
|
// }
|
|
|
|
// //
|
|
// upper = max;
|
|
// lower = min;
|
|
|
|
// //
|
|
// if (hasInsideSupplyZone)
|
|
// {
|
|
// //
|
|
// isInsideZoneDirectionBullish = false;
|
|
// isInsideZoneDirectionBearish = true;
|
|
|
|
// //
|
|
// lower = GetEntry(
|
|
// conditions.symbol,
|
|
// POSITION_TYPE_SELL //
|
|
// );
|
|
// }
|
|
|
|
// //
|
|
// if (hasInsideDemandZone)
|
|
// {
|
|
// //
|
|
// isInsideZoneDirectionBullish = true;
|
|
// isInsideZoneDirectionBearish = false;
|
|
|
|
// //
|
|
// upper = GetEntry(
|
|
// conditions.symbol,
|
|
// POSITION_TYPE_BUY //
|
|
// );
|
|
// }
|
|
// }
|
|
// }
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
if (!hasInsideZone &&
|
|
!hasRejectedZone &&
|
|
hasInsideSupDemZone)
|
|
{
|
|
//
|
|
// Check Supply and Demand Zone Rejection ...
|
|
if (hasInsideSupplyZone)
|
|
{
|
|
//
|
|
isPriceRejected = IsReject(
|
|
X_DIRECTION_BEARISH,
|
|
decisionZBar,
|
|
insideSupplyZone,
|
|
decisionState,
|
|
swingBar,
|
|
rejectBar,
|
|
breakerBar,
|
|
momentumBar,
|
|
false //
|
|
);
|
|
}
|
|
else if (hasInsideDemandZone)
|
|
{
|
|
//
|
|
isPriceRejected = IsReject(
|
|
X_DIRECTION_BULLISH,
|
|
decisionZBar,
|
|
insideDemandZone,
|
|
decisionState,
|
|
swingBar,
|
|
rejectBar,
|
|
breakerBar,
|
|
momentumBar,
|
|
false //
|
|
);
|
|
}
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// //
|
|
// // Detect Overal Trend ...
|
|
// ENUM_X_DIRECTION trend;
|
|
// bool hasTrend = mConditions.DetectTrend(
|
|
// trend,
|
|
// zIndex //
|
|
// );
|
|
// bool hasBullishTrend =
|
|
// //
|
|
// hasTrend &&
|
|
// IsBullish(trend)
|
|
// //
|
|
// ;
|
|
// bool hasBearishTrend =
|
|
// //
|
|
// hasTrend &&
|
|
// IsBearish(trend)
|
|
// //
|
|
// ;
|
|
// result = hasTrend;
|
|
// if (!result)
|
|
// {
|
|
// return result;
|
|
// }
|
|
|
|
// //
|
|
// // Now We Have to Detect at least One OrderBlock with FVG ...
|
|
// // for Trend Approvement ...
|
|
// bool hasOrderBlock = mConditions.HasOrderBlock();
|
|
// bool hasFairValueGap = mConditions.HasFairValueGap();
|
|
// if (!hasOrderBlock &&
|
|
// !hasFairValueGap)
|
|
// {
|
|
// //
|
|
// int count = 0;
|
|
// bool has = false;
|
|
|
|
// //
|
|
// XCFVG *fvg = NULL;
|
|
// XCOrderBlock *ob = NULL;
|
|
|
|
// //
|
|
// if (hasBullishTrend)
|
|
// {
|
|
// //
|
|
// has = consolidationState.HasBullishOrderBlocks();
|
|
// count = consolidationState.CountBullishOrderBlocks();
|
|
|
|
// //
|
|
// if (has)
|
|
// {
|
|
// //
|
|
// // Check Order Block ...
|
|
// for (int i = 0; i < count; i++)
|
|
// {
|
|
// //
|
|
// XCOrderBlock *iOB = consolidationState.bullishOrderBlocks[i];
|
|
|
|
// //
|
|
// iOB.To(cTime);
|
|
|
|
// //
|
|
// // Check From Passes ...
|
|
// bool isFromPassed = iOB.From() > mConditions.demandZone.From();
|
|
// if (!isFromPassed)
|
|
// {
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Must inside DemandZone ...
|
|
// bool isInsideDemand = IsInsideDiff(
|
|
// iOB,
|
|
// mConditions.demandZone //
|
|
// );
|
|
// if (!isInsideDemand)
|
|
// {
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Check Started ...
|
|
// XOHCL startedBar;
|
|
// ENUM_X_DIRECTION startedDir;
|
|
// bool isStarted = iOB.IsStarted(
|
|
// X_DIRECTION_BULLISH,
|
|
// startedBar,
|
|
// startedDir //
|
|
// );
|
|
// if (!isStarted)
|
|
// {
|
|
// //
|
|
// startedBar.Clean();
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Converts to Box ...
|
|
// XBoxZone obBox;
|
|
// bool hasOBBox = ToBox(
|
|
// obBox,
|
|
// iOB //
|
|
// );
|
|
// if (!hasOBBox)
|
|
// {
|
|
// //
|
|
// obBox.Clean();
|
|
// startedBar.Clean();
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Check Zone Must not Used before ...
|
|
// bool isUsed = IsBoxUsed(
|
|
// obBox,
|
|
// startedBar.Index() - 1,
|
|
// zIndex //
|
|
// );
|
|
// if (isUsed)
|
|
// {
|
|
// //
|
|
// obBox.Clean();
|
|
// startedBar.Clean();
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// ob = iOB;
|
|
|
|
// //
|
|
// obBox.Clean();
|
|
// startedBar.Clean();
|
|
|
|
// //
|
|
// break;
|
|
// }
|
|
|
|
// //
|
|
// // Detect Fair Value Gap ...
|
|
// if (ob != NULL &&
|
|
// ob.IsValid())
|
|
// {
|
|
// //
|
|
// has = analyseState.HasBullishFairValueGaps();
|
|
// count = analyseState.CountBullishFairValueGaps();
|
|
// if (has)
|
|
// {
|
|
// //
|
|
// // Check Fir Value Gap ...
|
|
// for (int i = 0; i < count; i++)
|
|
// {
|
|
// //
|
|
// XCFVG *iFVG = analyseState.bullishFairValueGaps[i];
|
|
|
|
// //
|
|
// iFVG.To(cTime);
|
|
|
|
// //
|
|
// // Check From Passes ...
|
|
// bool isFromPassed = iFVG.From() > ob.From();
|
|
// if (!isFromPassed)
|
|
// {
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Check Started ...
|
|
// XOHCL startedBar;
|
|
// ENUM_X_DIRECTION startedDir;
|
|
// bool isStarted = iFVG.IsStarted(
|
|
// X_DIRECTION_BULLISH,
|
|
// startedBar,
|
|
// startedDir //
|
|
// );
|
|
// if (!isStarted)
|
|
// {
|
|
// //
|
|
// startedBar.Clean();
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Converts to Box ...
|
|
// XBoxZone fvgBox;
|
|
// bool hasFVGBox = ToBox(
|
|
// fvgBox,
|
|
// iFVG //
|
|
// );
|
|
// if (!hasFVGBox)
|
|
// {
|
|
// //
|
|
// fvgBox.Clean();
|
|
// startedBar.Clean();
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Check Inside Order Block ...
|
|
// bool isInside = IsInsideDiff(
|
|
// iFVG,
|
|
// ob,
|
|
// true // Force Side Out ...
|
|
// );
|
|
// if (!isInside)
|
|
// {
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// fvg = iFVG;
|
|
|
|
// //
|
|
// fvgBox.Clean();
|
|
// startedBar.Clean();
|
|
|
|
// //
|
|
// break;
|
|
// }
|
|
// }
|
|
// else
|
|
// {
|
|
// //
|
|
// ob = NULL;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// else if (hasBearishTrend)
|
|
// {
|
|
// //
|
|
// has = consolidationState.HasBearishOrderBlocks();
|
|
// count = consolidationState.CountBearishOrderBlocks();
|
|
|
|
// //
|
|
// if (has)
|
|
// {
|
|
// //
|
|
// // Check Order Block ...
|
|
// for (int i = 0; i < count; i++)
|
|
// {
|
|
// //
|
|
// XCOrderBlock *iOB = consolidationState.bearishOrderBlocks[i];
|
|
|
|
// //
|
|
// iOB.To(cTime);
|
|
|
|
// //
|
|
// // Check From Passes ...
|
|
// bool isFromPassed = iOB.From() > mConditions.supplyZone.From();
|
|
// if (!isFromPassed)
|
|
// {
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Must inside DemandZone ...
|
|
// bool isInsideDemand = IsInsideDiff(
|
|
// iOB,
|
|
// mConditions.supplyZone //
|
|
// );
|
|
// if (!isInsideDemand)
|
|
// {
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Check Started ...
|
|
// XOHCL startedBar;
|
|
// ENUM_X_DIRECTION startedDir;
|
|
// bool isStarted = iOB.IsStarted(
|
|
// X_DIRECTION_BEARISH,
|
|
// startedBar,
|
|
// startedDir //
|
|
// );
|
|
// if (!isStarted)
|
|
// {
|
|
// //
|
|
// startedBar.Clean();
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Converts to Box ...
|
|
// XBoxZone obBox;
|
|
// bool hasOBBox = ToBox(
|
|
// obBox,
|
|
// iOB //
|
|
// );
|
|
// if (!hasOBBox)
|
|
// {
|
|
// //
|
|
// obBox.Clean();
|
|
// startedBar.Clean();
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Check Zone Must not Used before ...
|
|
// bool isUsed = IsBoxUsed(
|
|
// obBox,
|
|
// startedBar.Index() - 1,
|
|
// zIndex //
|
|
// );
|
|
// if (isUsed)
|
|
// {
|
|
// //
|
|
// obBox.Clean();
|
|
// startedBar.Clean();
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// ob = iOB;
|
|
|
|
// //
|
|
// obBox.Clean();
|
|
// startedBar.Clean();
|
|
|
|
// //
|
|
// break;
|
|
// }
|
|
|
|
// //
|
|
// // Detect Fair Value Gap ...
|
|
// if (ob != NULL &&
|
|
// ob.IsValid())
|
|
// {
|
|
// //
|
|
// has = analyseState.HasBearishFairValueGaps();
|
|
// count = analyseState.CountBearishFairValueGaps();
|
|
// if (has)
|
|
// {
|
|
// //
|
|
// // Check Fir Value Gap ...
|
|
// for (int i = 0; i < count; i++)
|
|
// {
|
|
// //
|
|
// XCFVG *iFVG = analyseState.bearishFairValueGaps[i];
|
|
|
|
// //
|
|
// iFVG.To(cTime);
|
|
|
|
// //
|
|
// // Check From Passes ...
|
|
// bool isFromPassed = iFVG.From() > ob.From();
|
|
// if (!isFromPassed)
|
|
// {
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Check Started ...
|
|
// XOHCL startedBar;
|
|
// ENUM_X_DIRECTION startedDir;
|
|
// bool isStarted = iFVG.IsStarted(
|
|
// X_DIRECTION_BEARISH,
|
|
// startedBar,
|
|
// startedDir //
|
|
// );
|
|
// if (!isStarted)
|
|
// {
|
|
// //
|
|
// startedBar.Clean();
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Converts to Box ...
|
|
// XBoxZone fvgBox;
|
|
// bool hasFVGBox = ToBox(
|
|
// fvgBox,
|
|
// iFVG //
|
|
// );
|
|
// if (!hasFVGBox)
|
|
// {
|
|
// //
|
|
// fvgBox.Clean();
|
|
// startedBar.Clean();
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// // Check Inside Order Block ...
|
|
// bool isInside = IsInsideDiff(
|
|
// iFVG,
|
|
// ob,
|
|
// true // Force Side Out ...
|
|
// );
|
|
// if (!isInside)
|
|
// {
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// fvg = iFVG;
|
|
|
|
// //
|
|
// fvgBox.Clean();
|
|
// startedBar.Clean();
|
|
|
|
// //
|
|
// break;
|
|
// }
|
|
// }
|
|
// else
|
|
// {
|
|
// //
|
|
// ob = NULL;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// //
|
|
// if (ob != NULL &&
|
|
// fvg != NULL)
|
|
// {
|
|
// //
|
|
// mConditions.orderBlock = ob;
|
|
// mConditions.fairValueGap = fvg;
|
|
// }
|
|
|
|
// //
|
|
// hasOrderBlock = mConditions.HasOrderBlock();
|
|
// hasFairValueGap = mConditions.HasFairValueGap();
|
|
// }
|
|
|
|
// //
|
|
// bool isTrendApproved = hasOrderBlock &&
|
|
// hasFairValueGap;
|
|
// result = isTrendApproved;
|
|
// if (!result)
|
|
// {
|
|
// return result;
|
|
// }
|
|
|
|
// //
|
|
// mConditions.UpdateTo(cTime);
|
|
|
|
// //
|
|
// // TODO: Remove ...
|
|
// RemoveDraws();
|
|
// DrawConditions(
|
|
// mConditions,
|
|
// visionCycleHelper.mPOIDrawer //
|
|
// );
|
|
|
|
// //
|
|
// // Now We have to Detect Start Zones ...
|
|
// int count = 0;
|
|
// bool has = false;
|
|
|
|
//
|
|
|
|
// //
|
|
// XBoxZone targetBoxes[];
|
|
// if (hasBullishTrend)
|
|
// {
|
|
// //
|
|
// //
|
|
// }
|
|
// else if (hasBearishTrend)
|
|
// {
|
|
// //
|
|
// // Demand Zones ...
|
|
// has = consolidationState.HasDemandZones();
|
|
// count = consolidationState.CountDemandZones();
|
|
// XBoxZone demandBox;
|
|
|
|
// //
|
|
// if (has)
|
|
// {
|
|
// //
|
|
// XCDemandZone *demands[];
|
|
// for (int i = 0; i < count; i++)
|
|
// {
|
|
// //
|
|
// XCDemandZone *iZone = consolidationState.demandZones[i];
|
|
|
|
// //
|
|
// iZone.To(cTime);
|
|
|
|
// //
|
|
// // Check Price ...
|
|
// bool isPricePassed = decisionCBar.low > iZone.Upper();
|
|
// if (!isPricePassed)
|
|
// {
|
|
// continue;
|
|
// }
|
|
|
|
// //
|
|
// XBoxZone iBox;
|
|
// bool hasBox = ToBox(
|
|
// iBox,
|
|
// iZone //
|
|
// );
|
|
// if (!hasBox)
|
|
// {
|
|
// //
|
|
// iBox.Clean();
|
|
// continue;
|
|
// }
|
|
|
|
// // //
|
|
// // XCDemandZoneObject *iObj;
|
|
// // bool isCreated = visionCycleHelper
|
|
// // .mPOIDrawer
|
|
// // .CreateDemandZone(
|
|
// // iZone,
|
|
// // iObj //
|
|
// // );
|
|
|
|
// //
|
|
// Add(
|
|
// iZone,
|
|
// demands //
|
|
// );
|
|
|
|
// //
|
|
// // AddRef(
|
|
// // iBox,
|
|
// // targetBoxes //
|
|
// // );
|
|
|
|
// //
|
|
// iBox.Clean();
|
|
// }
|
|
|
|
// //
|
|
// count = ArraySize(demands);
|
|
// has = IsValidSize(count);
|
|
// if (has)
|
|
// {
|
|
// //
|
|
// int lowestIDX = GetLowest(demands);
|
|
// int highestIDX = GetHighest(demands);
|
|
// int youngestIDX = GetYoungest(demands);
|
|
// bool hasHighAndLow =
|
|
// IsValidIndex(lowestIDX) &&
|
|
// IsValidIndex(highestIDX) &&
|
|
// IsValidIndex(youngestIDX);
|
|
// if (hasHighAndLow)
|
|
// {
|
|
// //
|
|
// XBoxZone box;
|
|
|
|
// //
|
|
// box.symbol = demands[highestIDX].GetSymbol();
|
|
// box.period = demands[highestIDX].GetPeriod();
|
|
|
|
// //
|
|
// box.to = cTime;
|
|
// box.dir = X_DIRECTION_BULLISH;
|
|
// box.from = demands[youngestIDX].From();
|
|
// box.type = demands[highestIDX].TypeAsString();
|
|
|
|
// //
|
|
// box.upper = demands[highestIDX].Upper();
|
|
// box.lower = demands[lowestIDX].Lower();
|
|
|
|
// //
|
|
// bool isValid = box.IsValid();
|
|
// if (isValid)
|
|
// {
|
|
// // //
|
|
// // XCBoxObject *iBoxObj;
|
|
// // bool isCreated = visionCycleHelper
|
|
// // .mPOIDrawer
|
|
// // .CreateBox(
|
|
// // box,
|
|
// // iBoxObj //
|
|
// // );
|
|
|
|
// // //
|
|
// // if (isCreated)
|
|
// // {
|
|
// // //
|
|
// // color boxColor =
|
|
// // IsBullish(box.dir)
|
|
// // ? clrAqua
|
|
// // : clrMagenta;
|
|
|
|
// // //
|
|
// // ENUM_LINE_STYLE boxStyle = STYLE_DOT;
|
|
|
|
// // //
|
|
// // iBoxObj.BoxColor(boxColor);
|
|
// // iBoxObj.BoxStyle(boxStyle);
|
|
|
|
// // //
|
|
// // Print("BOX ...");
|
|
|
|
// // }
|
|
|
|
// //
|
|
// demandBox = box;
|
|
// }
|
|
|
|
// //
|
|
// box.Clean();
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// //
|
|
// // Bullish Order Blocks ...
|
|
// // has = consolidationState.HasBullishOrderBlocks();
|
|
// // count = consolidationState.CountBullishOrderBlocks();
|
|
|
|
// //
|
|
// // if (has)
|
|
// // {
|
|
// // //
|
|
// // for (int i = 0; i < count; i++)
|
|
// // {
|
|
// // //
|
|
// // XCOrderBlock *iZone = consolidationState.bullishOrderBlocks[i];
|
|
|
|
// // //
|
|
// // iZone.To(cTime);
|
|
|
|
// // //
|
|
// // // Check Price ...
|
|
// // bool isPricePassed = decisionCBar.low > iZone.Upper();
|
|
// // if (!isPricePassed)
|
|
// // {
|
|
// // continue;
|
|
// // }
|
|
|
|
// // //
|
|
// // XBoxZone iBox;
|
|
// // bool hasBox = ToBox(
|
|
// // iBox,
|
|
// // iZone //
|
|
// // );
|
|
// // if (!hasBox)
|
|
// // {
|
|
// // //
|
|
// // iBox.Clean();
|
|
// // continue;
|
|
// // }
|
|
|
|
// // //
|
|
// // AddRef(
|
|
// // iBox,
|
|
// // targetBoxes //
|
|
// // );
|
|
|
|
// // //
|
|
// // iBox.Clean();
|
|
// // }
|
|
// // }
|
|
|
|
// //
|
|
// // Bullish Fair Value Gaps ...
|
|
// // has = consolidationState.HasBullishFairValueGaps();
|
|
// // count = consolidationState.CountBullishFairValueGaps();
|
|
|
|
// //
|
|
// // if (has)
|
|
// // {
|
|
// // //
|
|
// // for (int i = 0; i < count; i++)
|
|
// // {
|
|
// // //
|
|
// // XCFVG *iZone = consolidationState.bullishFairValueGaps[i];
|
|
|
|
// // //
|
|
// // iZone.To(cTime);
|
|
|
|
// // //
|
|
// // // Check Price ...
|
|
// // bool isPricePassed = decisionCBar.low > iZone.Upper();
|
|
// // if (!isPricePassed)
|
|
// // {
|
|
// // continue;
|
|
// // }
|
|
|
|
// // //
|
|
// // XBoxZone iBox;
|
|
// // bool hasBox = ToBox(
|
|
// // iBox,
|
|
// // iZone //
|
|
// // );
|
|
// // if (!hasBox)
|
|
// // {
|
|
// // //
|
|
// // iBox.Clean();
|
|
// // continue;
|
|
// // }
|
|
|
|
// // //
|
|
// // AddRef(
|
|
// // iBox,
|
|
// // targetBoxes //
|
|
// // );
|
|
|
|
// // //
|
|
// // iBox.Clean();
|
|
// // }
|
|
// // }
|
|
// }
|
|
|
|
// //
|
|
// count = ArraySize(targetBoxes);
|
|
// has = IsValidSize(count);
|
|
// if (has)
|
|
// {
|
|
// //
|
|
// for (int i = 0; i < count; i++)
|
|
// {
|
|
// //
|
|
// XBoxZone iBox = targetBoxes[i];
|
|
|
|
// //
|
|
// XCBoxObject *iBoxObj;
|
|
// bool isCreated = visionCycleHelper
|
|
// .mPOIDrawer
|
|
// .CreateBox(
|
|
// iBox,
|
|
// iBoxObj //
|
|
// );
|
|
|
|
// //
|
|
// iBox.Clean();
|
|
// }
|
|
// }
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|