This commit is contained in:
2025-09-28 15:28:06 +03:30
parent 8432cd369b
commit ca1b313e4c
3 changed files with 759 additions and 40 deletions
@@ -4253,6 +4253,115 @@ bool IsInside(
return result;
}
/**
* Check a Bar is Inside a Zone or not ...
*
* @param index: int, reference to holds detected index ...
* @param bar: reference to Specified Bar ...
* @param source: reference collection to provide source ...
*
* @return ( bool )
*/
bool HasInside(
int &index,
XOHCL &bar,
XBoxZone &source[] //
)
{
//
bool result = false;
//
// Prepare ...
index = -1;
//
// Validate ...
result = bar.IsValid() &&
HasChild(source);
if (!result)
{
return result;
}
//
int count = ArraySize(source);
for (int i = 0; i < count; i++)
{
//
result = IsInside(
bar,
source[i] //
);
if (result)
{
//
index = i;
break;
}
}
//
return result;
}
/**
* Extract all Items which Specified Bar is inside them ...
*
* @param bar: reference to Specified Bar ...
* @param dest: reference to result ...
* @param source: reference collection to provide source ...
*
* @return ( int )
*/
int ExtractInsides(
XOHCL &bar,
XBoxZone &dest[],
XBoxZone &source[] //
)
{
//
int result = 0;
//
// Prepare ...
SpecifiedClean(dest);
//
// Validate ...
bool has = bar.IsValid() &&
HasChild(source);
if (!result)
{
return result;
}
//
int count = ArraySize(source);
for (int i = 0; i < count; i++)
{
//
has = IsInside(
bar,
source[i] //
);
if (has)
{
//
AddIfNotExists(
source[i],
dest //
);
}
}
//
result = ArraySize(dest);
//
return result;
}
/**
* Collect all Bars which Breakes Specified Zone ...
*