/* method: getYMax of class GeoExtent */ static int tolua_Lua_ScriptEngine_tolua_GeoExtent_getYMax00(lua_State* tolua_S) { #ifndef TOLUA_RELEASE tolua_Error tolua_err; if ( !tolua_isusertype(tolua_S,1,"GeoExtent",0,&tolua_err) || !tolua_isnoobj(tolua_S,2,&tolua_err) ) goto tolua_lerror; else #endif { GeoExtent* self = (GeoExtent*) tolua_tousertype(tolua_S,1,0); #ifndef TOLUA_RELEASE if (!self) tolua_error(tolua_S,"invalid 'self' in function 'getYMax'",NULL); #endif { double tolua_ret = (double) self->getYMax(); tolua_pushnumber(tolua_S,(double)tolua_ret); } } return 1; #ifndef TOLUA_RELEASE tolua_lerror: tolua_error(tolua_S,"#ferror in function 'getYMax'.",&tolua_err); return 0; #endif }
// Calculates a sub-extent of a larger extent, given the number of children and // the child number. This currently assumes the subdivision ordering used by // VirtualPlanetBuilder. GeoExtent TerrainUtils::getSubExtent(const GeoExtent& extent, int num_children, int child_no) { GeoPoint centroid = extent.getCentroid(); GeoExtent sub_extent; switch( num_children ) { case 0: case 1: sub_extent = extent; break; case 2: if ( child_no == 0 ) { sub_extent = GeoExtent( extent.getXMin(), extent.getYMin(), centroid.x(), extent.getYMax(), extent.getSRS() ); } else { sub_extent = GeoExtent( centroid.x(), extent.getYMin(), extent.getXMax(), extent.getYMax(), extent.getSRS() ); } break; case 4: if ( child_no == 2 ) { sub_extent = GeoExtent( extent.getXMin(), centroid.y(), centroid.x(), extent.getYMax(), extent.getSRS() ); } else if ( child_no == 3 ) { sub_extent = GeoExtent( centroid.x(), centroid.y(), extent.getXMax(), extent.getYMax(), extent.getSRS() ); } else if ( child_no == 0 ) { sub_extent = GeoExtent( extent.getXMin(), extent.getYMin(), centroid.x(), centroid.y(), extent.getSRS() ); } else if ( child_no == 1 ) { sub_extent = GeoExtent( centroid.x(), extent.getYMin(), extent.getXMax(), centroid.y(), extent.getSRS() ); } } return sub_extent; }