/// <summary>
            /// Creates a cell geometry group
            /// </summary>
            /// <returns>New cell geometry group</returns>
            public EnvironmentGraphicsData.CellGeometryGroup Create( )
            {
                ITechnique technique = m_Material.Technique;

                ITexture2d[] textures = new ITexture2d[ m_Material.Textures.Length ];

                for ( int textureIndex = 0; textureIndex < textures.Length; ++textureIndex )
                {
                    textures[ textureIndex ] = m_Material.Textures[ textureIndex ];
                }

                EnvironmentGraphicsData.CellGeometryGroup group = new EnvironmentGraphicsData.CellGeometryGroup( m_Indices.ToArray( ), technique, textures );
                return group;
            }
        private static EnvironmentGraphicsData.CellGeometryGroup[] CreateGroups( GroupListBuilder builder )
        {
            EnvironmentGraphicsData.CellGeometryGroup[] groups = new EnvironmentGraphicsData.CellGeometryGroup[ builder.Groups.Count ];

            for ( int groupIndex = 0; groupIndex < groups.Length; ++groupIndex )
            {
                groups[ groupIndex ] = builder.Groups[ groupIndex ].Create( );
            }

            return groups;
        }