- // calculate approximate distance from view point
- sgdCopyVec3( abs_view_pos,
- globals->get_current_view()->get_abs_view_pos() );
-
- FG_LOG( FG_TERRAIN, FG_DEBUG, "DIST Abs view pos = "
- << abs_view_pos[0] << ","
- << abs_view_pos[1] << ","
- << abs_view_pos[2] );
- FG_LOG( FG_TERRAIN, FG_DEBUG,
- " ref point = " << e->center );
-
- sgdVec3 center;
- sgdSetVec3( center, e->center.x(), e->center.y(), e->center.z() );
- dist = sgdDistanceVec3( center, abs_view_pos );
-
- FG_LOG( FG_TERRAIN, FG_DEBUG, " distance = " << dist );
-
- if ( dist > max_dist ) {
- max_dist = dist;
- max_index = index;
- }
+ if ( e->is_loaded() && (e->get_pending_models() == 0) ) {
+ // calculate approximate distance from view point
+ sgdCopyVec3( abs_view_pos,
+ globals->get_current_view()->get_absolute_view_pos() );
+
+ SG_LOG( SG_TERRAIN, SG_DEBUG, "DIST Abs view pos = "
+ << abs_view_pos[0] << ","
+ << abs_view_pos[1] << ","
+ << abs_view_pos[2] );
+ SG_LOG( SG_TERRAIN, SG_DEBUG,
+ " ref point = " << e->center );
+
+ sgdVec3 center;
+ sgdSetVec3( center,
+ e->center.x(), e->center.y(), e->center.z() );
+ dist = sgdDistanceVec3( center, abs_view_pos );
+
+ SG_LOG( SG_TERRAIN, SG_DEBUG, " distance = " << dist );
+
+ if ( dist > max_dist ) {
+ max_dist = dist;
+ max_index = index;
+ }
+ } else {
+ SG_LOG( SG_TERRAIN, SG_INFO, "loaded = " << e->is_loaded()
+ << " pending models = " << e->get_pending_models() );
+ }