void TSRGeometryContainer::ProcessPolygonsArrayDOM( const domMeshRef& _mesh )
{
    // there will be multiple triangles to process
    domPolygons_Array& polygons_array = _mesh->getPolygons_array();

    unsigned int PolygonsCount = (unsigned int)polygons_array.getCount();

    // loop on each group of triangles groups...
    // same should be done when there are polygons..
    for ( unsigned int i = 0; i < PolygonsCount; i++ )
    {
        TSRModelGeometryTriangleSet newSet;
        newSet.m_uiStartIndex = ( int )m_pTwisterGeometry->GetIndexCount();
        newSet.m_uiMaterialIndex = 0;
        domPolygonsRef currPolygons = polygons_array[ i ];
        xsNCName materialName =  currPolygons->getMaterial();
        int materialIndex = m_pExporter->FindMaterialIndexByName( materialName );
        // material 0 is the default if no material was found...
        if ( materialIndex > -1 )
        {
            newSet.m_uiMaterialIndex = materialIndex + 1;
        }
        ProcessPolygonsDOM( currPolygons );
        newSet.m_uiIndexCount = ( int ) m_pTwisterGeometry->GetIndexCount()  - newSet.m_uiStartIndex;
        m_pTwisterGeometry->m_TriangleSets.push_back( newSet );
    }
}