CPolygon Struct Reference

#include <c4d_baseobject.h>

Detailed Description

Represents a polygon that can be either a triangle or a quadrangle.

Public Member Functions

 CPolygon ()
 
 CPolygon (Int32 t_a, Int32 t_b, Int32 t_c)
 
 CPolygon (Int32 t_a, Int32 t_b, Int32 t_c, Int32 t_d)
 
Int32operator[] (Int32 index) const
 
Bool IsTriangle () const
 
Int32 Find (Int32 index) const
 
Int32 FindEdge (Int32 index1, Int32 index2) const
 
void EdgePoints (Int32 edge, Int32 &p1, Int32 &p2) const
 
Int32GetPoint (Int32 index) const
 

Public Attributes

Int32 a
 
Int32 b
 
Int32 c
 
Int32 d
 

Constructor & Destructor Documentation

◆ CPolygon() [1/3]

CPolygon ( )

Constructs a polygon by default.

◆ CPolygon() [2/3]

CPolygon ( Int32  t_a,
Int32  t_b,
Int32  t_c 
)

Constructs a triangle.

Parameters
[in]t_aIndex of the first point in the polygon.
[in]t_bIndex of the second point in the polygon.
[in]t_cIndex of the third point in the polygon.

◆ CPolygon() [3/3]

CPolygon ( Int32  t_a,
Int32  t_b,
Int32  t_c,
Int32  t_d 
)

Constructs a quadrangle.

Parameters
[in]t_aIndex of the first point in the polygon.
[in]t_bIndex of the second point in the polygon.
[in]t_cIndex of the third point in the polygon.
[in]t_dIndex of the fourth point in the polygon.

Member Function Documentation

◆ operator[]()

Int32& operator[] ( Int32  index) const

Vertex index array operator.
Accesses the polygon's vertex indices through their polygon vertex numbers (0 - 3) instead of a, b, c, d.

Parameters
[in]indexThe vertex index (0 - 3) to retrieve in the polygon.
Returns
The vertex index.

◆ IsTriangle()

Bool IsTriangle ( ) const

Checks if the polygon is a triangle.

Returns
true if the polygon is a triangle, otherwise false.

◆ Find()

Int32 Find ( Int32  index) const

Checks if one of the polygon vertex indices is equal to index and returns the found polygon vertex number (0 - 3, equals a - d).

Parameters
[in]indexThe vertex index to check.
Returns
The matching polygon vertex number (0 - 3, equals a - d). NOTOK is returned if there is no match.

◆ FindEdge()

Int32 FindEdge ( Int32  index1,
Int32  index2 
) const

Checks if the vertex indices index1 and index2 form an edge in the polygon. If so the polygon edge number is returned (0 - 3).

Parameters
[in]index1The vertex index of the first edge point.
[in]index2The vertex index of the second edge point.
Returns
The found polygon edge number (0 - 3), or NOTOK if there is no match.

◆ EdgePoints()

void EdgePoints ( Int32  edge,
Int32 p1,
Int32 p2 
) const

Gets the point indices for an edge index.

Parameters
[in]edgeThe edge index.
[out]p1Assigned the index of the first edge point.
[out]p2Assigned the index of the second edge point.

◆ GetPoint()

Int32& GetPoint ( Int32  index) const

Gets the point with modulo for the number of points in the polygon.
If the polygon is a triangle it goes a, b, c, a, b , c etc thus point 3 will be point a again, but with a quad it goes a, b, c, d, a, b, c, d... so point 3 will be d.

Parameters
[in]indexThe point index.
Returns
The point index.

Member Data Documentation

◆ a

Int32 a

Index of the first point in the polygon.

◆ b

Int32 b

Index of the second point in the polygon.

◆ c

Int32 c

Index of the third point in the polygon.

◆ d

Int32 d

Index of the fourth point in the polygon.