Changeset 621 for XIOS/trunk/src/filter/axis_algorithm_transformation.cpp
- Timestamp:
- 06/22/15 13:36:21 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/filter/axis_algorithm_transformation.cpp
r620 r621 1 1 #include "axis_algorithm_transformation.hpp" 2 #include "axis_inverse.hpp" 3 #include "axis_zoom.hpp" 2 4 3 5 namespace xios { 4 6 5 CAxisAlgorithmTransformation::CAxisAlgorithmTransformation(CAxis* axisDestination )7 CAxisAlgorithmTransformation::CAxisAlgorithmTransformation(CAxis* axisDestination, CAxis* axisSource, std::vector<ETranformationType>& algos) 6 8 : CGenericAlgorithmTransformation() 7 9 { 8 int niDest = axisDestination->ni.getValue(); 9 int ibeginDest = axisDestination->ibegin.getValue(); 10 for (int idx = 0; idx < algos.size(); ++idx) 11 { 12 switch (algos[idx]) 13 { 14 case TRANS_ZOOM_AXIS: 15 algosOfAnAxis_.push_back(new CAxisZoom(axisDestination, axisSource)); 16 break; 17 case TRANS_INVERSE_AXIS: 18 algosOfAnAxis_.push_back(new CAxisInverse(axisDestination, axisSource)); 19 break; 20 default: 21 break; 22 } 23 } 24 computeIndexSourceMapping(); 25 } 10 26 11 for (int idx = 0; idx < niDest; ++idx) axisDestGlobalIndex_.push_back(ibeginDest+idx); 27 CAxisAlgorithmTransformation::~CAxisAlgorithmTransformation() 28 { 29 for (int idx = 0; idx < algosOfAnAxis_.size(); ++idx) delete algosOfAnAxis_[idx]; 30 } 31 32 void CAxisAlgorithmTransformation::computeIndexSourceMapping() 33 { 34 if (!algosOfAnAxis_.empty()) 35 { 36 algosOfAnAxis_[0]->computeIndexSourceMapping(this->transformationMapping_); 37 for (int idx = 1; idx < algosOfAnAxis_.size(); ++idx) 38 { 39 algosOfAnAxis_[idx]->computeIndexSourceMapping(algosOfAnAxis_[idx-1]->getTransformationMapping()); 40 } 41 this->transformationMapping_ = algosOfAnAxis_[algosOfAnAxis_.size()-1]->getTransformationMapping(); 42 } 12 43 } 13 44
Note: See TracChangeset
for help on using the changeset viewer.