# CSLXSIPolygonList Class Reference

`#include <XSIPolygonList.h>`

Inheritance diagram for CSLXSIPolygonList:

List of all members.

## Public Types
typedef CSLArrayProxy< SI_Int, SI_Int, 1 > | CSLIntArray
## Public Member Functions
| CSLXSIPolygonList (CSLScene *in_pScene, CSLModel *in_pModel, CdotXSITemplate *in_pTemplate)
virtual | ~CSLXSIPolygonList ()
virtual ETemplateType | Type ()
CSLBaseMaterial * | GetMaterial ()
CSIBCString | GetMaterialName ()
SI_Void | SetMaterial (CSLBaseMaterial *in_pNewMaterial)
SI_Void | SetMaterialName (const CSIBCString &in_szNewMaterialName)
SI_Int | GetPolygonCount ()
CSLIntArray * | GetPolygonNodeCountArray ()
CSLIntArray * | GetVertexIndices ()
SI_Error | Synchronize ()
virtual SI_Error | SetCount (SI_Int)
CSLXSIIndexList * | ConnectIndexList (CSLXSIIndexList *in_pNewXSIIndexList)
virtual CSLXSIIndexList * | AddIndexList ()
CSLXSIIndexList * | GetIndexList ()
SI_Error | RemoveIndexList ()

## Detailed Description

Describes a list of n-sided polygons for dotXSI 5.0+ (see the XSI_PolygonList template reference). The polynodes in this list can have `n` number of attibutes like vertex, normals, UV and color information.

Tip:
  You can use GetVertexIndices() to get the mandatory vertex index attributes and the parent class (CSLXSISubComponentList) functionality to get the other generic attributes index.
  You can use GetPolygonCount() to get the number of polygons in the list.
  To find out how many vertices a particular polygon uses, use GetPolygonNodeCountArray() to get the list of polygon vertices.

## Member Typedef Documentation

typedef CSLArrayProxy<SI_Int, SI_Int, 1> CSLIntArray

Proxy class that allows modifying a list of SI_Int like an array.

Reimplemented from CSLXSISubComponentList.

## Constructor & Destructor Documentation

CSLXSIPolygonList | ( | CSLScene * | in_pScene,
|  | CSLModel * | in_pModel,
|  | CdotXSITemplate * | in_pTemplate |
| ) |  |  |

Constructor

Parameters:

  | in_pScene | Parent scene
  | in_pModel | Parent model
  | in_pTemplate | Refered template

Returns:
  an instance of CSLXSIPolygonList

virtual ~CSLXSIPolygonList | ( |  | ) | `[virtual]`

Destructor

## Member Function Documentation

virtual ETemplateType Type | ( |  | ) | `[inline, virtual]`

Returns the type of this template (XSI_POLYGON_LIST)

Returns:
  CSLTemplate::ETemplateType The type of this template (XSI_POLYGON_LIST)

Implements CSLTemplate.

CSLBaseMaterial* GetMaterial | ( |  | ) | `[inline]`

Return the material object of the polygon list.

Returns:
  CSLBaseMaterial* Material object.

CSIBCString GetMaterialName | ( |  | ) |

Return the material object name of the polygon list or an empty string if there's none.

Returns:
  CSIBCString Material object name.

SI_Void SetMaterial | ( | CSLBaseMaterial * | in_pNewMaterial | ) |

Change the material object of the polygon list.

Parameters:

  | CSLBaseMaterial* | New material object.

Returns:
  None

SI_Void SetMaterialName | ( | const CSIBCString & | in_szNewMaterialName | ) |

Change the material object name of the polygon list. Should ONLY be called if we don't export the material.

Parameters:

  | const | CSIBCString& New material object name.

Returns:
  None

SI_Int GetPolygonCount | ( |  | ) |

Get the number of polygon.

Returns:
  SI_Int Number of polygon.

CSLIntArray* GetPolygonNodeCountArray | ( |  | ) |

Get the polygon count array.

Returns:
  CSLIntArray Array of polygon node count.

CSLIntArray* GetVertexIndices | ( |  | ) |

Get the polynode vertex indices array.

Returns:
  CSLIntArray Array of polynode vertex indices.

SI_Error Synchronize | ( |  | ) | `[virtual]`

Commit the current template information

Returns:
  SI_Error Whether or not the commit was successful

Reimplemented from CSLTemplate.

virtual SI_Error SetCount | ( | SI_Int |  | ) | `[virtual]`

Set the number of polynode in this polygon list.

Returns:
  SI_Error Error code.

Reimplemented from CSLXSISubComponentList.

CSLXSIIndexList* ConnectIndexList | ( | CSLXSIIndexList * | in_pNewXSIIndexList | ) |

Connect a new index list.

Returns:
  CSLXSIIndexList The newly connected index list.

virtual CSLXSIIndexList* AddIndexList | ( |  | ) | `[virtual]`

Add a new index list. If an index list already exists, it will be deleted, and replaced.

Returns:
  CSLXSIIndexList* Pointer to the newly created index list.

CSLXSIIndexList* GetIndexList | ( |  | ) |

Get the index list. May return NULL if it does not exist.

Returns:
  CSLXSIIndexList* Pointer to the index list.

SI_Error RemoveIndexList | ( |  | ) |

Remove the index list.

Returns:
  SI_Error Error code.

The documentation for this class was generated from the following file:

- XSIPolygonList.h