Changeset 888 for XIOS/trunk/src/transformation/grid_transformation.cpp
- Timestamp:
- 07/05/16 15:59:10 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/transformation/grid_transformation.cpp
r887 r888 8 8 */ 9 9 #include "grid_transformation.hpp" 10 #include "reduce_axis_to_scalar.hpp" 11 #include "scalar_algorithm_reduce_axis.hpp" 10 12 #include "axis_algorithm_inverse.hpp" 11 13 #include "axis_algorithm_zoom.hpp" … … 42 44 void CGridTransformation::selectScalarAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder) 43 45 { 44 46 int scalarSrcIndex = -1, axisSrcIndex = -1, domainSrcIndex = -1; 47 std::vector<CScalar*> scaListDestP = gridDestination_->getScalars(); 48 std::vector<CScalar*> scaListSrcP = gridSource_->getScalars(); 49 std::vector<CAxis*> axisListSrcP = gridSource_->getAxis(); 50 std::vector<CDomain*> domainListSrcP = gridSource_->getDomains(); 51 52 int scalarDstIndex = elementPositionInGridDst2ScalarPosition_[elementPositionInGrid]; 53 CScalar::TransMapTypes trans = scaListDestP[scalarDstIndex]->getAllTransformations(); 54 CScalar::TransMapTypes::const_iterator it = trans.begin(); 55 56 for (int i = 0; i < transformationOrder; ++i, ++it) {} // Find the correct transformation 57 58 CReduceAxisToScalar* reduceAxis = 0; 59 CGenericAlgorithmTransformation* algo = 0; 60 switch (transType) 61 { 62 case TRANS_REDUCE_AXIS_TO_SCALAR: 63 reduceAxis = dynamic_cast<CReduceAxisToScalar*> (it->second); 64 axisSrcIndex = elementPositionInGridSrc2AxisPosition_[elementPositionInGrid]; 65 algo = new CScalarAlgorithmReduceScalar(scaListDestP[scalarDstIndex], axisListSrcP[axisSrcIndex], reduceAxis); 66 break; 67 default: 68 break; 69 } 70 algoTransformation_.push_back(algo); 45 71 } 46 72 … … 53 79 void CGridTransformation::selectAxisAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder) 54 80 { 81 int axisSrcIndex = -1, domainSrcIndex = -1; 55 82 std::vector<CAxis*> axisListDestP = gridDestination_->getAxis(); 56 83 std::vector<CAxis*> axisListSrcP = gridSource_->getAxis(); 57 58 int axisIndex = elementPositionInGridDst2AxisPosition_[elementPositionInGrid]; 59 CAxis::TransMapTypes trans = axisListDestP[axisIndex]->getAllTransformations(); 84 std::vector<CDomain*> domainListSrcP = gridSource_->getDomains(); 85 86 int axisDstIndex = elementPositionInGridDst2AxisPosition_[elementPositionInGrid]; 87 CAxis::TransMapTypes trans = axisListDestP[axisDstIndex]->getAllTransformations(); 60 88 CAxis::TransMapTypes::const_iterator it = trans.begin(); 61 89 … … 69 97 case TRANS_INTERPOLATE_AXIS: 70 98 interpAxis = dynamic_cast<CInterpolateAxis*> (it->second); 71 algo = new CAxisAlgorithmInterpolate(axisListDestP[axisIndex], axisListSrcP[axisIndex], interpAxis); 99 axisSrcIndex = elementPositionInGridSrc2AxisPosition_[elementPositionInGrid]; 100 algo = new CAxisAlgorithmInterpolate(axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpAxis); 72 101 break; 73 102 case TRANS_ZOOM_AXIS: 74 103 zoomAxis = dynamic_cast<CZoomAxis*> (it->second); 75 algo = new CAxisAlgorithmZoom(axisListDestP[axisIndex], axisListSrcP[axisIndex], zoomAxis); 104 axisSrcIndex = elementPositionInGridSrc2AxisPosition_[elementPositionInGrid]; 105 algo = new CAxisAlgorithmZoom(axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], zoomAxis); 76 106 break; 77 107 case TRANS_INVERSE_AXIS: 78 algo = new CAxisAlgorithmInverse(axisListDestP[axisIndex], axisListSrcP[axisIndex]); 108 axisSrcIndex = elementPositionInGridSrc2AxisPosition_[elementPositionInGrid]; 109 algo = new CAxisAlgorithmInverse(axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex]); 79 110 break; 80 111 default: … … 159 190 case TRANS_INVERSE_AXIS: 160 191 axisIndex = elementPositionInGridDst2AxisPosition_[elementPositionInGrid]; 192 break; 193 194 case TRANS_REDUCE_AXIS_TO_SCALAR: 195 scalarIndex = elementPositionInGridDst2ScalarPosition_[elementPositionInGrid]; 161 196 break; 162 197 default: … … 233 268 case TRANS_INVERSE_AXIS: 234 269 axisIndex = elementPositionInGridDst2AxisPosition_[elementPositionInGrid]; 270 break; 271 272 case TRANS_REDUCE_AXIS_TO_SCALAR: 273 scalarIndex = elementPositionInGridDst2ScalarPosition_[elementPositionInGrid]; 235 274 break; 236 275 default:
Note: See TracChangeset
for help on using the changeset viewer.