#include <c4d_baseobject.h>
Holds polygon neighboring information.
See also Neighbor::GetPolyInfo
Example:
The following code browses through all available edges:
return ;
if (pPolyObj == nullptr )
return ;
if (pPolyR == nullptr )
return ;
if (!neighbor.
Init (pointCount, pPolyR, polyCount,
nullptr ))
return ;
for (
Int32 polyIdx = 0; polyIdx < polyCount; 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 ;
}
}
}
◆ face
The neighboring polygons.
Note If NOTOK it then means there is no neighbor.
◆ edge
The edges of the polygon.
◆ mark
false if that polygon "generated" an edge.
For example think of 2 polygons that share an edge, one has set mark = false for the edge because it was the first and "built" the edge and the other(s) will set mark = true as no new edge had to be generated.
#define Opolygon
Polygon - PolygonObject.
Definition: ge_prepass.h:967
Int32 b
Index of the second point in the polygon.
Definition: c4d_baseobject.h:41
Int32 GetPointCount(void) const
Definition: c4d_baseobject.h:1379
PolyInfo * GetPolyInfo(Int32 poly)
Definition: c4d_baseobject.h:2631
Definition: c4d_baseobject.h:2483
Represents a polygon that can be either a triangle or a quadrangle.
Definition: c4d_baseobject.h:39
const CPolygon * GetPolygonR(void)
Definition: c4d_baseobject.h:1678
Int32 d
Index of the fourth point in the polygon.
Definition: c4d_baseobject.h:41
void GePrint(const maxon::String &str)
#define ToPoly(op)
Casts a BaseObject* to a PolygonObject*.
Definition: c4d_baseobject.h:2239
static String IntToString(Int32 v)
Definition: c4d_string.h:493
maxon::Int32 Int32
Definition: ge_sys_math.h:45
Definition: c4d_baseobject.h:1537
Int32 c
Index of the third point in the polygon.
Definition: c4d_baseobject.h:41
Char mark[4]
Definition: c4d_baseobject.h:2487
virtual Bool Init(Int32 pcnt, const CPolygon *vadr, Int32 vcnt, BaseSelect *bs)
Definition: c4d_baseobject.h:2524
Int32 GetType() const
Definition: c4d_baselist.h:1304
Int32 a
Index of the first point in the polygon.
Definition: c4d_baseobject.h:41
Int32 GetPolygonCount(void)
Definition: c4d_baseobject.h:1692