X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFiltersAPI%2FFiltersAPI_Filter.cpp;h=f98e9efcb4e0d9d13c3cbaeefcb0e9761fe3f046;hb=fc72d43b677baa05ae7fd317346fd8b723b799ed;hp=c39d0c7caca0577a938cd4ae065b3df47621ae98;hpb=48437a8cb93ea1854212cedc3097c462b5c4c350;p=modules%2Fshaper.git diff --git a/src/FiltersAPI/FiltersAPI_Filter.cpp b/src/FiltersAPI/FiltersAPI_Filter.cpp index c39d0c7ca..f98e9efcb 100644 --- a/src/FiltersAPI/FiltersAPI_Filter.cpp +++ b/src/FiltersAPI/FiltersAPI_Filter.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2019 CEA/DEN, EDF R&D +// Copyright (C) 2014-2023 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -38,15 +39,16 @@ FiltersAPI_Filter::FiltersAPI_Filter(const std::string& theName, const std::list& theArguments) : myName(theName) { - for (std::list::const_iterator anArgIt = theArguments.begin(); - anArgIt != theArguments.end(); ++anArgIt) { - AttributeBooleanPtr aBoolAttr = + std::list::const_iterator anArgIt = theArguments.begin(); + // first attribute is usually for reversing the filter + AttributeBooleanPtr aBoolAttr = std::dynamic_pointer_cast(*anArgIt); - if (aBoolAttr) { - myReversed = aBoolAttr->value(); - continue; - } + if (aBoolAttr) { + myReversed = aBoolAttr->value(); + ++anArgIt; + } + for (; anArgIt != theArguments.end(); ++anArgIt) { AttributeSelectionListPtr aSelList = std::dynamic_pointer_cast(*anArgIt); if (aSelList) { @@ -71,6 +73,12 @@ FiltersAPI_Filter::FiltersAPI_Filter(const std::string& theName, continue; } + AttributeDoublePtr aDouble = std::dynamic_pointer_cast(*anArgIt); + if (aDouble) { + myFilterArguments.push_back(FiltersAPI_Argument(aDouble->value())); + continue; + } + AttributeBooleanPtr aBoolean = std::dynamic_pointer_cast(*anArgIt); if (aBoolean) { myFilterArguments.push_back(FiltersAPI_Argument(aBoolean->value()));