# ConcretePolyList

Engine/source/collision/concretePolyList.h

A concrete, renderable PolyList.

More...

## Public Types

```Vector< U32 >
```
```IndexList
```
```Vector< PlaneF >
```
```PlaneList
```
```Vector< Poly >
```
```PolyList
```
```Vector< Point3F >
```
```VertexList
```

## Public Attributes

```IndexList
```
```mIndexList
```
```PolyList
```
```mPolyList
```
```PlaneList
```
```mPolyPlaneList
```
```VertexList
```
```mVertexList
```

## Public Functions

```ConcretePolyList()
```
```~ConcretePolyList()
```
```U32
```
```addPlane(const PlaneF & plane)
```

Adds a plane to the poly list, and returns an ID number for that point.

```U32
```
```addPoint(const Point3F & p)
```

Adds a point to the poly list, and returns an ID number for that point.

```void
```
```begin(BaseMatInstance * material, U32 surfaceKey)
```

Start a surface.

```void
```
```clear()
```
```void
```
```end()
```

Mark the end of a surface.

```bool
```
```isEmpty()
```

Are we empty of data?

```void
```
```plane(const PlaneF & p)
```

Indicate the plane of the surface.

```void
```
```plane(const U32 index)
```

Indicate the plane of the surface.

```void
```
```plane(U32 v1, U32 v2, U32 v3)
```

Indicate the plane of the surface.

```void
```
```render()
```
```void
```
```triangulate()
```

This breaks all polys in the polylist into triangles.

```void
```
```vertex(U32 vi)
```

Reference a vertex which is in this surface.

## Protected Functions

```const PlaneF &
```
```getIndexedPlane(const U32 index)
```

A helper function to convert a plane index to a PlaneF structure.

## Detailed Description

A concrete, renderable PolyList.

This class is used to store geometry from a PolyList query.

It allows you to render this data, as well.

## Public Types

```typedef Vector< U32 > IndexList
```
```typedef Vector< PlaneF > PlaneList
```
```typedef Vector< Poly > PolyList
```
```typedef Vector< Point3F > VertexList
```

## Public Attributes

```IndexList mIndexList
```
```PolyList mPolyList
```
```PlaneList mPolyPlaneList
```
```VertexList mVertexList
```

## Public Functions

```ConcretePolyList()
```

```~ConcretePolyList()
```

```addPlane(const PlaneF & plane)
```

Reimplemented from: AbstractPolyList

```addPoint(const Point3F & p)
```

Reimplemented from: AbstractPolyList

```begin(BaseMatInstance * material, U32 surfaceKey)
```

Reimplemented from: AbstractPolyList

```clear()
```

```end()
```

Reimplemented from: AbstractPolyList

```isEmpty()
```

Reimplemented from: AbstractPolyList

```plane(const PlaneF & p)
```

Reimplemented from: AbstractPolyList

```plane(const U32 index)
```

Reimplemented from: AbstractPolyList

```plane(U32 v1, U32 v2, U32 v3)
```

Reimplemented from: AbstractPolyList

```render()
```

```triangulate()
```

This breaks all polys in the polylist into triangles.

```vertex(U32 vi)
```

Reimplemented from: AbstractPolyList

## Protected Functions

```getIndexedPlane(const U32 index)
```

Reimplemented from: AbstractPolyList