linearizedMembers.add( curveLinearizer.linearize( curve, crit ) );
linearized = (T) geomFac.createMultiCurve( geom.getId(), geom.getCoordinateSystem(), linearizedMembers );
} else if ( geom instanceof MultiPolygon ) {
MultiPolygon mp = (MultiPolygon) geom;
linearizedMembers.add( sfLinearizer.linearize( polygon, crit ) );
linearized = (T) geomFac.createMultiPolygon( geom.getId(), geom.getCoordinateSystem(), linearizedMembers );
} else if ( geom instanceof MultiSurface ) {
MultiSurface<Surface> ms = (MultiSurface<Surface>) geom;
linearizedMembers.add( sfLinearizer.linearize( polygon, crit ) );
linearized = (T) geomFac.createMultiSurface( geom.getId(), geom.getCoordinateSystem(), linearizedMembers );
} else {
List<Geometry> linearizedMembers = new ArrayList<Geometry>( geom.size() );
linearizedMembers.add( linearize( (Geometry) member, crit ) );
linearized = (T) geomFac.createMultiGeometry( geom.getId(), geom.getCoordinateSystem(), linearizedMembers );