GeometryCursor prepareVector_ ( VertexDescription descr , int dimensionMask , Geometry [ ] res_vec ) { int inext = 0 ; if ( ( dimensionMask & 1 ) != 0 ) { if ( res_vec [ 0 ] == null ) res_vec [ 0 ] = new MultiPoint ( descr ) ; inext ++ ; } else { for ( int i = 0 ; i < res_vec . length - 1 ; i ++ ) res_vec [ i ] = res_vec [ i + 1 ] ; } if ( ( dimensionMask & 2 ) != 0 ) { if ( res_vec [ inext ] == null ) res_vec [ inext ] = new Polyline ( descr ) ; inext ++ ; } else { for ( int i = inext ; i < res_vec . length - 1 ; i ++ ) res_vec [ i ] = res_vec [ i + 1 ] ; } if ( ( dimensionMask & 4 ) != 0 ) { if ( res_vec [ inext ] == null ) res_vec [ inext ] = new Polygon ( descr ) ; inext ++ ; } else { for ( int i = inext ; i < res_vec . length - 1 ; i ++ ) res_vec [ i ] = res_vec [ i + 1 ] ; } if ( inext != 3 ) { Geometry [ ] r = new Geometry [ inext ] ; for ( int i = 0 ; i < inext ; i ++ ) r [ i ] = res_vec [ i ] ; return new SimpleGeometryCursor ( r ) ; } else { return new SimpleGeometryCursor ( res_vec ) ; } }
as indicated with the dimensionMask