# CollisionPolygon

```from panda3d.core import CollisionPolygon
```
class CollisionPolygon

Bases:

Bases: `CollisionPlane`

Inheritance diagram

__init__(a: LVecBase3, b: LVecBase3, c: LVecBase3)
__init__(a: LVecBase3, b: LVecBase3, c: LVecBase3, d: LVecBase3)
property concave bool

Returns true if the `CollisionPolygon` appears to be concave, or false if it is safely convex.

static getClassType()
getNumPoints() int

Returns the number of vertices of the `CollisionPolygon`.

getPoint(n: int)

Returns the nth vertex of the `CollisionPolygon`, expressed in 3-D space.

getPoints() list
isConcave() bool

Returns true if the `CollisionPolygon` appears to be concave, or false if it is safely convex.

isValid() bool

Returns true if the `CollisionPolygon` is valid (that is, it has at least three vertices), or false otherwise.

property points

Returns the nth vertex of the `CollisionPolygon`, expressed in 3-D space.

property valid bool

Returns true if the `CollisionPolygon` is valid (that is, it has at least three vertices), or false otherwise.

static verifyPoints(a: LPoint3, b: LPoint3, c: LPoint3) bool

Verifies that the indicated set of points will define a valid CollisionPolygon: that is, at least three non-collinear points, with no points repeated.

static verifyPoints(a: LPoint3, b: LPoint3, c: LPoint3, d: LPoint3) bool

Verifies that the indicated set of points will define a valid CollisionPolygon: that is, at least three non-collinear points, with no points repeated.