Changeset 621 for XIOS/trunk/src/filter/axis_inverse.cpp
- Timestamp:
- 06/22/15 13:36:21 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/filter/axis_inverse.cpp
r620 r621 4 4 5 5 CAxisInverse::CAxisInverse(CAxis* axisDestination, CAxis* axisSource) 6 : C AxisAlgorithmTransformation(axisDestination)6 : CConcreteAlgo() 7 7 { 8 8 if (axisDestination->size.getValue() != axisSource->size.getValue()) … … 14 14 } 15 15 16 16 17 axisDestGlobalSize_ = axisDestination->size.getValue(); 18 int niDest = axisDestination->ni.getValue(); 19 int ibeginDest = axisDestination->ibegin.getValue(); 17 20 18 this->computeIndexSourceMapping();21 for (int idx = 0; idx < niDest; ++idx) axisDestGlobalIndex_.push_back(ibeginDest+idx); 19 22 } 20 23 21 void CAxisInverse::computeIndexSourceMapping( )24 void CAxisInverse::computeIndexSourceMapping(const std::map<int, std::vector<int> >& transformationMappingOfPreviousAlgo) 22 25 { 23 26 std::map<int, std::vector<int> >& transMap = this->transformationMapping_; 24 if (!transMap.empty()) transMap.clear(); 25 26 int globalIndexSize = axisDestGlobalIndex_.size(); 27 for (int idx = 0; idx < globalIndexSize; ++idx) 28 transMap[axisDestGlobalIndex_[idx]].push_back(axisDestGlobalSize_-axisDestGlobalIndex_[idx]-1); 27 if (transformationMappingOfPreviousAlgo.empty()) 28 { 29 int globalIndexSize = axisDestGlobalIndex_.size(); 30 for (int idx = 0; idx < globalIndexSize; ++idx) 31 transMap[axisDestGlobalIndex_[idx]].push_back(axisDestGlobalSize_-axisDestGlobalIndex_[idx]-1); 32 } 33 else 34 { 35 std::map<int, std::vector<int> >::const_iterator itb = transformationMappingOfPreviousAlgo.begin(), it, 36 ite = transformationMappingOfPreviousAlgo.end(); 37 for (it = itb; it != ite; ++it) 38 { 39 transMap[it->first].push_back(axisDestGlobalSize_-it->first-1); 40 } 41 } 29 42 } 30 43 31 32 44 }
Note: See TracChangeset
for help on using the changeset viewer.