/** * @param building * @return */ private DataObjectInfo<WorldRenderableObject> createDataObjectInfo( String uuid, String type, String name, WorldRenderableObject stage ) { Envelope envelope = stage.getBbox(); return new DataObjectInfo<WorldRenderableObject>( uuid, type, name, uuid, envelope, stage ); }
/** * Adds the given branch group to the scene and set the appropriate distance etc. After adding the branch group to * the rotation group which is controlled by the mouse rotator. * * @param b * a list of WorldRenderableObjects, can be <Code>null</Code>. */ public void addDataObjectToScene( WorldRenderableObject b ) { if ( b != null ) { Envelope env = b.getBbox(); if ( env != null ) { if ( isDefaultBBox() ) { bbox = env; } else { bbox = bbox.merge( env ); } } calcViewParameters(); worldRenderableObjects.add( b ); } }
/** * Method called while serializing this object * * @param out * to write to. * @throws IOException */ private void write( WorldRenderableObject wro, DataOutputStream out ) throws IOException { Envelope env = wro.getBbox(); writeEnvelope( out, env ); int numberOfQL = wro.getNumberOfQualityLevels(); if ( numberOfQL > 0 ) { out.writeInt( numberOfQL ); for ( int i = 0; i < numberOfQL; ++i ) { RenderableQualityModel rqm = wro.getQualityLevel( i ); if ( rqm != null ) { // was this qualitymodel not null? out.writeInt( i ); write( rqm, out ); } else { out.writeInt( -1 ); } } } else { out.write( -1 ); } }
@Override public List<WorldRenderableObject> importFromFile( String fileName, int numberOfQualityLevels, int qualityLevel ) throws IOException { FeatureCollection fc = null; try { fc = readGML( fileName ); } catch ( Exception e ) { throw new IOException( "Error while importing file: " + fileName + " because: " + e.getLocalizedMessage(), e ); } Map<String, WorldRenderableObject> bMap = new HashMap<String, WorldRenderableObject>( fc.size() ); for ( Feature f : fc ) { if ( BUILDING_QNAME.equals( f.getName() ) ) { WorldRenderableObject wro = createDataObjectWithMaterial( f, numberOfQualityLevels, qualityLevel ); if ( wro != null ) { if ( !bMap.containsKey( wro.getId() ) ) { bMap.put( wro.getId(), wro ); } else { LOG.warn( "Duplicate building with id: " + wro.getId() + " using first building with envelope: " + wro.getBbox().toString() ); } } } else { LOG.warn( "Unhandled feature type '" + f.getName() + "' -- skipping." ); } } List<WorldRenderableObject> result = new ArrayList<WorldRenderableObject>( bMap.size() ); result.addAll( bMap.values() ); return result; }
/** * @param wro * @return */ private RenderablePrototype createRenderablePrototype( WorldRenderableObject wro ) { RenderableQualityModel[] models = wro.getQualityLevels(); if ( models == null || models.length != 1 ) { return null; } return new RenderablePrototype( wro.getId(), wro.getTime(), wro.getBbox(), models[0] ); }
building.getName(), building.getExternalReference(), building.getBbox(), building ); insert.add( updated );
/** * @param building * @return the DataObjectInfo which holds values of the given building. */ private DataObjectInfo<WorldRenderableObject> createDataObjectInfo( WorldRenderableObject building ) { return new DataObjectInfo<WorldRenderableObject>( building.getId(), Type.BUILDING.getModelTypeName(), building.getName(), building.getExternalReference(), building.getBbox(), building ); }
building.getName(), building.getExternalReference(), building.getBbox(), building ); List<DataObjectInfo<WorldRenderableObject>> insert = new ArrayList<DataObjectInfo<WorldRenderableObject>>(
/** * @param building * @return the DataObjectInfo which holds values of the given building. */ private DataObjectInfo<RenderablePrototype> createDataObjectInfo( WorldRenderableObject building ) { RenderableQualityModel rqm = building.getQualityLevel( 0 ); if ( rqm == null ) { LOG.info( "Could not extract the quality level of the RenderablePrototype with id:" + building.getId() ); return null; } rqm = createScaledQualityModel( rqm ); Envelope env = new GeometryFactory().createEnvelope( new double[] { 0, 0, 0 }, new double[] { 1, 1, 1 }, null ); building.setBbox( env ); RenderablePrototype rp = new RenderablePrototype( building.getId(), building.getTime(), building.getBbox(), rqm ); return new DataObjectInfo<RenderablePrototype>( building.getId(), Type.PROTOTYPE.getModelTypeName(), building.getName(), building.getExternalReference(), building.getBbox(), rp ); }
null, null, obj.getBbox(), obj );