Ignore:
Timestamp:
04/26/11 13:21:35 (13 years ago)
Author:
hozdoba
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/dev_rv/src/xmlio/node/domain.cpp

    r183 r184  
    4141   { 
    4242      return (this->relFiles); 
     43   } 
     44 
     45   //---------------------------------------------------------------- 
     46    
     47   bool CDomain::hasZoom(void) const 
     48   { 
     49      return ((this->zoom_ni.getValue() != this->ni_glo.getValue()) &&  
     50              (this->zoom_nj.getValue() != this->nj_glo.getValue())); 
     51   } 
     52    
     53   //---------------------------------------------------------------- 
     54    
     55   bool CDomain::isEmpty(void) const 
     56   { 
     57      return ((this->zoom_ni_loc.getValue() == 0) ||  
     58              (this->zoom_nj_loc.getValue() == 0)); 
    4359   } 
    4460 
     
    196212      if (!zoom_ibegin.isEmpty()) 
    197213      { 
    198          int zoom_iend = zoom_jbegin.getValue() + zoom_nj.getValue() - 1; 
     214         int zoom_iend = zoom_ibegin.getValue() + zoom_ni.getValue() - 1; 
    199215         int zoom_jend = zoom_jbegin.getValue() + zoom_nj.getValue() - 1; 
    200216          
     
    203219         iend_mask   = min (iend.getValue(), zoom_iend); 
    204220         jend_mask   = min (jend.getValue(), zoom_jend); 
    205           
     221                  
    206222         ibegin_mask -= ibegin.getValue(); 
    207223         jbegin_mask -= jbegin.getValue(); 
     
    211227       
    212228      //~ std::cout << "-------------------" << std::endl 
    213       //~           << "zoom : " << std::boolalpha << (!zoom_ibegin.isEmpty()) << std::endl 
    214       //~           << "size : " << ni.getValue()  << " X " << nj.getValue()   << std::endl 
    215       //~           << "i : " << ibegin_mask << ", " << iend_mask << std::endl 
    216       //~           << "j : " << jbegin_mask << ", " << jend_mask << std::endl 
    217       //~           << "-------------------" << std::endl; 
     229                //~ << "zoom : " << std::boolalpha << this->hasZoom() << std::endl 
     230                //~ << "size : " << ni.getValue()  << " X " << nj.getValue()   << std::endl 
     231                //~ << "it : " << ibegin.getValue() << ", " << iend.getValue() << std::endl 
     232                //~ << "jt : " << jbegin.getValue() << ", " << jend.getValue() << std::endl 
     233                //~ << "im : " << ibegin_mask << ", " << iend_mask << std::endl 
     234                //~ << "jm : " << jbegin_mask << ", " << jend_mask << std::endl 
     235                //~ << "-------------------" << std::endl; 
    218236 
    219237      if (!mask.isEmpty()) 
     
    250268            } 
    251269         } 
    252                 
    253270                
    254271         mask.setValue(__arr); 
     
    436453   void CDomain::checkZoom(void) 
    437454   { 
     455      // Résolution et vérification des données globales de zoom. 
    438456      if (!this->zoom_ni.isEmpty() || !this->zoom_nj.isEmpty() || 
    439457          !this->zoom_ibegin.isEmpty() || !this->zoom_jbegin.isEmpty()) 
     
    447465         else 
    448466         { 
    449             int zoom_iend = zoom_jbegin.getValue() + zoom_nj.getValue() - 1; 
     467            int zoom_iend = zoom_ibegin.getValue() + zoom_ni.getValue() - 1; 
    450468            int zoom_jend = zoom_jbegin.getValue() + zoom_nj.getValue() - 1; 
    451469                 
    452470            if (zoom_ibegin.getValue() < 1  || zoom_jbegin.getValue() < 1 || 
    453                 zoom_iend > iend.getValue() || zoom_jend > jend.getValue()) 
     471                zoom_iend > ni_glo.getValue() || zoom_jend > nj_glo.getValue()) 
    454472               ERROR("CDomain::checkZoom(void)", 
    455473                     << "Zoom mal défini," 
    456474                     << " vérifiez les valeurs zoom_ni, zoom_nj, zoom_ibegin, zoom_ibegin") ; 
    457475         } 
    458       }    
     476      } 
     477      else 
     478      { 
     479         this->zoom_ni.setValue(this->ni_glo.getValue());  
     480         this->zoom_nj.setValue(this->nj_glo.getValue()); 
     481         this->zoom_ibegin.setValue(1); 
     482         this->zoom_jbegin.setValue(1); 
     483      } 
     484      // Résolution des données locales de zoom. 
     485      { 
     486         int zoom_iend = zoom_ibegin.getValue() + zoom_ni.getValue() - 1; 
     487         int zoom_jend = zoom_jbegin.getValue() + zoom_nj.getValue() - 1; 
     488          
     489         if ((zoom_ibegin.getValue() > iend.getValue()) ||  
     490             (zoom_iend < ibegin.getValue())) 
     491         { 
     492            zoom_ni_loc.setValue(0); 
     493            zoom_ibegin_loc.setValue(-1); 
     494         } 
     495         else 
     496         { 
     497            int zoom_ibegin_loc_ = (zoom_ibegin.getValue() > ibegin.getValue())  
     498                                 ? zoom_ibegin.getValue() 
     499                                 : ibegin.getValue(); 
     500            int zoom_iend_loc_  = (zoom_iend < iend.getValue())  
     501                                 ? zoom_iend 
     502                                 : iend.getValue(); 
     503            int zoom_ni_loc_ = zoom_iend_loc_ - zoom_ibegin_loc_ + 1; 
     504             
     505            zoom_ni_loc.setValue(zoom_ni_loc_); 
     506            zoom_ibegin_loc.setValue(zoom_ibegin_loc_-ibegin.getValue()+1); 
     507         } 
     508          
     509         if ((zoom_jbegin.getValue() > jend.getValue()) ||  
     510             (zoom_jend < jbegin.getValue())) 
     511         { 
     512            zoom_nj_loc.setValue(0); 
     513            zoom_jbegin_loc.setValue(-1); 
     514         } 
     515         else 
     516         { 
     517            int zoom_jbegin_loc_ = (zoom_jbegin.getValue() > jbegin.getValue())  
     518                                 ? zoom_jbegin.getValue() 
     519                                 : jbegin.getValue(); 
     520            int zoom_jend_loc_  = (zoom_jend < jend.getValue())  
     521                                 ? zoom_jend 
     522                                 : jend.getValue(); 
     523            int zoom_nj_loc_ = zoom_jend_loc_ - zoom_jbegin_loc_ + 1; 
     524             
     525            zoom_nj_loc.setValue(zoom_nj_loc_); 
     526            zoom_jbegin_loc.setValue(zoom_jbegin_loc_-jbegin.getValue()+1); 
     527         } 
     528      } 
    459529   } 
    460530 
Note: See TracChangeset for help on using the changeset viewer.