@Override public Surface getExteriorSurface() { return getReferencedObject().getExteriorSurface(); }
/** * Map the given geometry to a {@link GeometryQualityModel} by extracting it's 'surfacepatches'. * * @param geom * to extract the geometries from. * @param qm * to add the extracted geometries to. * @param min * will contain the minimum of all geometries of the given geometry * @param max * will contain the maximum of all geometries in the given geometry */ private void extractGeometries( Solid geom, GeometryQualityModel qm, double[] min, double[] max ) { // gml 3.1: if in eucledian 3d space the exterior will be a Composite surface. CompositeSurface exterior = (CompositeSurface) geom.getExteriorSurface(); extractGeometries( exterior, qm, min, max ); }
private void traverseSolid( Solid s ) { SolidType st = s.getSolidType(); switch ( st ) { case CompositeSolid: { for ( Solid member : ( (CompositeSolid) s ) ) { traverse( member ); } break; } case Solid: { if ( s.getExteriorSurface() != null ) { traverse( s.getExteriorSurface() ); } for ( Surface inner : s.getInteriorSurfaces() ) { traverse( inner ); } break; } } }
startGeometry( "Solid", solid ); Surface exSurface = solid.getExteriorSurface(); writer.writeStartElement( gmlNs, "exterior" ); exportSurface( exSurface );
private Solid transform( Solid solid, Transformation trans ) throws TransformationException { SolidType type = solid.getSolidType(); Solid result = null; switch ( type ) { case CompositeSolid: result = transform( (CompositeSolid) solid, trans ); break; case Solid: Surface ext = solid.getExteriorSurface(); Surface tExt = transform( ext, trans ); List<Surface> inter = solid.getInteriorSurfaces(); List<Surface> tInter = new LinkedList<Surface>(); if ( inter != null && !inter.isEmpty() ) { for ( Surface in : inter ) { if ( in != null ) { Surface tIn = transform( in, trans ); tInter.add( tIn ); } } } result = geomFactory.createSolid( solid.getId(), getTargetCRS(), tExt, tInter ); break; } return result; }