Holds polygon neighboring information.
- See also
- Neighbor::GetPolyInfo
Example:
The following code browses through all available edges:
return;
PolygonObject* pPolyObj =
ToPoly(pObj);
if (pPolyObj == nullptr)
return;
Neighbor neighbor;
const CPolygon* pPolyR = pPolyObj->GetPolygonR();
Int32 pointCount = pPolyObj->GetPointCount();
Int32 polyCount = pPolyObj->GetPolygonCount();
if (pPolyR == nullptr)
return;
if (!neighbor.Init(pointCount, pPolyR, polyCount, nullptr))
return;
for (
Int32 polyIdx = 0; polyIdx < polyCount; polyIdx++)
{
PolyInfo* polyInfo = neighbor.GetPolyInfo(polyIdx);
for (
Int32 edgeIdx = 0; edgeIdx < 4; edgeIdx++)
{
if (polyInfo->mark[edgeIdx] || (edgeIdx == 2 && pPolyR[polyIdx].c == pPolyR[polyIdx].d))
continue;
Int32 edgeA = -1, edgeB = -1;
switch (edgeIdx)
{
case 0: edgeA = pPolyR[polyIdx].a; edgeB = pPolyR[polyIdx].b; break;
case 1: edgeA = pPolyR[polyIdx].b; edgeB = pPolyR[polyIdx].c; break;
case 2: edgeA = pPolyR[polyIdx].c; edgeB = pPolyR[polyIdx].d; break;
case 3: edgeA = pPolyR[polyIdx].d; edgeB = pPolyR[polyIdx].a; break;
}
}
}
static String IntToString(Int32 v)
Definition: c4d_string.h:497
#define Opolygon
Polygon - PolygonObject.
Definition: ge_prepass.h:1041
MAXON_ATTRIBUTE_FORCE_INLINE const PolygonObject * ToPoly(const T *op)
Casts a BaseObject* to a PolygonObject*.
Definition: c4d_baseobject.h:2392
maxon::Int32 Int32
Definition: ge_sys_math.h:51
void GePrint(const maxon::String &str)