/** * @param in * @return * @throws IOException */ private RenderableQualityModel readQualityModel( DataInputStream in ) throws IOException { int rqNull = in.readInt(); RenderableQualityModel result = null; if ( rqNull != -1 ) { int qlType = in.readInt(); if ( qlType == QL_PROTO ) { PrototypeReference pr = readPrototypeReference( in ); result = new RenderableQualityModel( pr ); } else { int size = in.readInt(); if ( size != -1 ) { ArrayList<RenderableQualityModelPart> qmps = new ArrayList<RenderableQualityModelPart>( size ); for ( int i = 0; i < size; ++i ) { RenderableQualityModelPart p = readRenderableQMPart( in ); if ( p != null ) { qmps.add( p ); } } result = new RenderableQualityModel( qmps ); } } } return result; }
/** * @param mappedColumns * @param values * @return */ private WorldRenderableObject createWRO( Map<Column, Integer> mappedColumns, String[] values ) { float height = parseFloatingPoint( values[mappedColumns.get( Column.HEIGHT )], Column.HEIGHT ); float width = 1; float depth = 1; float northing = parseFloatingPoint( values[mappedColumns.get( Column.NORTHING )], Column.NORTHING ); northing += wpvsTranslationVector[1]; float easting = parseFloatingPoint( values[mappedColumns.get( Column.EASTING )], Column.EASTING ); easting += wpvsTranslationVector[0]; float groundLevel = parseFloatingPoint( values[mappedColumns.get( Column.GROUND_LEVEL )], Column.GROUND_LEVEL ); String protoTypeRef = values[mappedColumns.get( Column.PROTOTYPE )]; float[] location = new float[] { easting, northing, groundLevel }; PrototypeReference reference = new PrototypeReference( protoTypeRef, 0, location, width, height, depth ); RenderableQualityModel[] qualityLevels = new RenderableQualityModel[numberOfLevels]; Envelope env = getEnvelope( location, width, height, depth ); qualityLevels[qualityLevel] = new RenderableQualityModel( reference ); WorldRenderableObject result = new WorldRenderableObject( values[mappedColumns.get( Column.ID )], null, env, qualityLevels ); return result; }
return new RenderableQualityModel( results );
/** * @param coordinates * @param bbox */ private RenderableQualityModel createRenderableGeometry( Coordinate[] coordinates, float minz, float maxz ) { RenderableQualityModel result = new RenderableQualityModel(); for ( int i = 0; i < coordinates.length - 1; ++i ) { result.addQualityModelPart( createVerticalGeometry( coordinates[i], coordinates[i + 1], minz, maxz ) ); } // the bottom is of no use // result.addQualityModelPart( createHorizontalGeometry( coordinates, minz ) ); // and the top result.addQualityModelPart( createHorizontalGeometry( coordinates, maxz ) ); return result; }
if ( fileName != null ) { if ( group.getCapability( Group.ALLOW_CHILDREN_READ ) ) { result = new RenderableQualityModel(); Transform3D initialMatrix = new Transform3D(); if ( doUserRotation ) {
private static RenderablePrototype createBoxPrototype() { RenderableQualityModel rqm = new RenderableQualityModel(); RenderableGeometry rg = new BOXGeometry(); rqm.addQualityModelPart( rg ); Envelope env = new GeometryFactory().createEnvelope( 0, 0, 1, 1, null ); return new RenderablePrototype( "box", "yeah", env, rqm ); }
modelQL.setPrototype( pr ); } else { modelQL = new RenderableQualityModel( pr );
/** * @param rqm * @param bbox * @return */ private RenderableQualityModel createPrototypeReference( RegressionForm form ) { // get 2D projection of 3D object required for calculating convex hull // Coordinate[] coordinates = projectToPlane( rqm ); float angle = form.getRotationAngle(); float width = form.getWidth(); float depth = form.getDepth(); float height = form.getHeight(); return new RenderableQualityModel( new PrototypeReference( "box", angle, form.getCentroid(), width, height, depth ) ); }