Changeset 644
- Timestamp:
- 07/17/15 13:58:14 (9 years ago)
- Location:
- XIOS/trunk/src
- Files:
-
- 2 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/node/field.cpp
r643 r644 22 22 #include "lex_parser.hpp" 23 23 #include "temporal_filter.hpp" 24 #include "spatial_transform_filter.hpp" 24 25 25 26 namespace xios{ … … 629 630 { 630 631 areAllReferenceSolved = true; 632 631 633 if (context->hasClient) 632 634 { 633 635 solveRefInheritance(true); 634 636 solveBaseReference(); 637 if (hasDirectFieldReference()) getDirectFieldReference()->solveAllReferenceEnabledField(false); 635 638 } 636 639 … … 786 789 else if (!field_ref.isEmpty()) 787 790 { 788 boost::shared_ptr<CPassThroughFilter> passThroughFilter(new CPassThroughFilter(gc));789 instantDataFilter = passThroughFilter;790 791 CField* fieldRef = CField::get(field_ref); 791 792 fieldRef->buildFilterGraph(gc, false); 792 fieldRef->getInstantDataFilter()->connectOutput(passThroughFilter, 0); 793 794 std::pair<boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters; 795 // Check if a spatial transformation is needed 796 if (!grid_ref.isEmpty() && !fieldRef->grid_ref.isEmpty() && grid_ref.getValue() != fieldRef->grid_ref.getValue()) 797 filters = CSpatialTransformFilter::buildFilterGraph(gc, fieldRef->grid, grid); 798 else 799 filters.first = filters.second = boost::shared_ptr<CFilter>(new CPassThroughFilter(gc)); 800 801 fieldRef->getInstantDataFilter()->connectOutput(filters.first, 0); 802 instantDataFilter = filters.second; 793 803 } 794 804 // Check if the data is to be read from a file … … 975 985 void CField::solveTransformedGrid() 976 986 { 977 if (!grid_ref.isEmpty() && (!field_ref.isEmpty())) 987 if (!grid_ref.isEmpty() && hasDirectFieldReference() && !getDirectFieldReference()->grid_ref.isEmpty() 988 && grid_ref.getValue() != getDirectFieldReference()->grid_ref.getValue() && !grid->isTransformed()) 989 grid->transformGrid(getDirectFieldReference()->grid); 990 991 /*if (!grid_ref.isEmpty() && (!field_ref.isEmpty())) 978 992 { 979 993 CField* fieldRef = this; … … 1008 1022 filterSources_.push_back(fieldRef); 1009 1023 } 1010 } 1024 }*/ 1011 1025 } 1012 1026
Note: See TracChangeset
for help on using the changeset viewer.