Changeset 746 for XIOS/trunk/src/node
- Timestamp:
- 10/21/15 11:50:10 (9 years ago)
- Location:
- XIOS/trunk/src/node
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/node/field.cpp
r745 r746 651 651 std::pair<boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters; 652 652 // Check if a spatial transformation is needed 653 if ( !grid_ref.isEmpty() && !fieldRef->grid_ref.isEmpty() && grid_ref.getValue() != fieldRef->grid_ref.getValue())653 if (grid && grid != fieldRef->grid) 654 654 filters = CSpatialTransformFilter::buildFilterGraph(gc, fieldRef->grid, grid); 655 655 else … … 819 819 void CField::solveTransformedGrid() 820 820 { 821 if (!grid_ref.isEmpty() && hasDirectFieldReference() && !getDirectFieldReference()->grid_ref.isEmpty() 822 && grid_ref.getValue() != getDirectFieldReference()->grid_ref.getValue() && !grid->isTransformed()) 821 if (grid && !grid->isTransformed() && hasDirectFieldReference() && grid != getDirectFieldReference()->grid) 823 822 grid->transformGrid(getDirectFieldReference()->grid); 824 823 } … … 826 825 void CField::solveGenerateGrid() 827 826 { 828 if (!grid_ref.isEmpty() && hasDirectFieldReference() && !getDirectFieldReference()->grid_ref.isEmpty() 829 && grid_ref.getValue() != getDirectFieldReference()->grid_ref.getValue() && !grid->isTransformed()) 827 if (grid && !grid->isTransformed() && hasDirectFieldReference() && grid != getDirectFieldReference()->grid) 830 828 grid->completeGrid(getDirectFieldReference()->grid); 831 829 } -
XIOS/trunk/src/node/grid.cpp
r745 r746 1266 1266 void CGrid::completeGrid(CGrid* transformGridSrc) 1267 1267 { 1268 if (!transformGridSrc) 1269 ERROR("CGrid::completeGrid(CGrid* transformGridSrc)", 1270 << "Impossible to complete grid '" << getId() << "', the source grid is null."); 1271 1272 if (axis_domain_order.numElements() != transformGridSrc->axis_domain_order.numElements()) 1273 { 1274 ERROR("CGrid::completeGrid(CGrid* transformGridSrc)", 1275 << "Two grids have different dimension size" 1276 << "Dimension of grid destination " << this->getId() << " is " << axis_domain_order.numElements() << std::endl 1277 << "Dimension of grid source " << transformGridSrc->getId() << " is " << transformGridSrc->axis_domain_order.numElements()); 1278 } 1279 else 1280 { 1281 int ssize = axis_domain_order.numElements(); 1282 for (int i = 0; i < ssize; ++i) 1283 if (axis_domain_order(i) != (transformGridSrc->axis_domain_order)(i)) 1284 ERROR("CGrid::completeGrid(CGrid* transformGridSrc)", 1285 << "Grids " << this->getId() << " and " << transformGridSrc->getId() 1286 << " don't have elements in the same order"); 1287 } 1288 1289 CGridGenerate gridGenerate(this, transformGridSrc); 1290 gridGenerate.completeGrid(); 1291 } 1292 1293 void CGrid::transformGrid(CGrid* transformGridSrc) 1294 { 1295 if (!transformGridSrc) 1296 ERROR("CGrid::transformGrid(CGrid* transformGridSrc)", 1297 << "Impossible to transform grid '" << getId() << "', the source grid is null."); 1298 1299 if (isTransformed()) return; 1300 setTransformed(); 1268 1301 if (axis_domain_order.numElements() != transformGridSrc->axis_domain_order.numElements()) 1269 1302 { … … 1283 1316 } 1284 1317 1285 CGridGenerate gridGenerate(this, transformGridSrc);1286 gridGenerate.completeGrid();1287 }1288 1289 void CGrid::transformGrid(CGrid* transformGridSrc)1290 {1291 if (isTransformed()) return;1292 setTransformed();1293 if (axis_domain_order.numElements() != transformGridSrc->axis_domain_order.numElements())1294 {1295 ERROR("CGrid::transformGrid(CGrid* transformGridSrc)",1296 << "Two grids have different dimension size"1297 << "Dimension of grid destination " << this->getId() << " is " << axis_domain_order.numElements() << std::endl1298 << "Dimension of grid source " << transformGridSrc->getId() << " is " << transformGridSrc->axis_domain_order.numElements());1299 }1300 else1301 {1302 int ssize = axis_domain_order.numElements();1303 for (int i = 0; i < ssize; ++i)1304 if (axis_domain_order(i) != (transformGridSrc->axis_domain_order)(i))1305 ERROR("CGrid::transformGrid(CGrid* transformGridSrc)",1306 << "Grids " << this->getId() << " and " << transformGridSrc->getId()1307 << " don't have elements in the same order");1308 }1309 1310 1318 transformations_ = new CGridTransformation(this, transformGridSrc); 1311 1319 transformations_->computeAll();
Note: See TracChangeset
for help on using the changeset viewer.