class EllipsoidGeometryBuilder extends AbstractGeometry.Builder {

    protected PolygonMeshGeometry.Builder<Position> generatePolygonMeshBuilder()
    {
        PolygonMeshGeometry.Builder<Position> builder = new PolygonMeshGeometry.Builder<>();

        List<List<Position>> vertices = myVertexGenerator.generateVertices(myQuality, myAxisAMeters, myAxisBMeters,
                myAxisCMeters);
        List<List<Vector3d>> normals = myNormalsGenerator.calculateNormals(vertices);

        List<Position> allVertices = New.list();
        for (List<Position> strip : vertices)
        {
            allVertices.addAll(strip);
        }

        List<Vector3d> allNormals = New.list();
        for (List<Vector3d> stripNormals : normals)
        {
            allNormals.addAll(stripNormals);
        }

        List<Color> colors = New.list();
        for (int i = 0; i < allNormals.size(); i++)
        {
            colors.add(myColor);
        }

        builder.setColors(colors);
        builder.setNormals(allNormals);
        builder.setPolygonVertexCount(AbstractRenderer.TRIANGLE_STRIP_VERTEX_COUNT);
        builder.setPositions(allVertices);
        builder.setDataModelId(getDataModelId());

        return builder;
    }

    public  EllipsoidGeometryBuilder(MapManager mapManager);

}