X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesAPI%2FFeaturesAPI_Pipe.cpp;h=0c3cf0dc242c1d7846a47e46b682b5f5bc649eaf;hb=a55586483e5dccc5466d6ec241e2147e210d839f;hp=3ca9a4e54e78263ea85fd030522843c8feeee35e;hpb=f98f887290d4e2b4bd6618389911e82b6b9674f3;p=modules%2Fshaper.git diff --git a/src/FeaturesAPI/FeaturesAPI_Pipe.cpp b/src/FeaturesAPI/FeaturesAPI_Pipe.cpp index 3ca9a4e54..0c3cf0dc2 100644 --- a/src/FeaturesAPI/FeaturesAPI_Pipe.cpp +++ b/src/FeaturesAPI/FeaturesAPI_Pipe.cpp @@ -1,11 +1,26 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> - -// File: FeaturesAPI_Pipe.cpp -// Created: 09 June 2016 -// Author: Dmitry Bobylev +// Copyright (C) 2014-2017 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 +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or +// email : webmaster.salome@opencascade.com +// #include "FeaturesAPI_Pipe.h" +#include #include //================================================================================================== @@ -22,8 +37,7 @@ FeaturesAPI_Pipe::FeaturesAPI_Pipe(const std::shared_ptr& theF : ModelHighAPI_Interface(theFeature) { if(initialize()) { - fillAttribute(theBaseObjects, mybaseObjects); - setPath(thePath); + setByBasePath(theBaseObjects, thePath); } } @@ -85,9 +99,10 @@ void FeaturesAPI_Pipe::setByBasePath(const std::list& th } //================================================================================================== -void FeaturesAPI_Pipe::setByBasePathBiNormal(const std::list& theBaseObjects, - const ModelHighAPI_Selection& thePath, - const ModelHighAPI_Selection& theBiNoramal) +void FeaturesAPI_Pipe::setByBasePathBiNormal( + const std::list& theBaseObjects, + const ModelHighAPI_Selection& thePath, + const ModelHighAPI_Selection& theBiNoramal) { fillAttribute(FeaturesPlugin_Pipe::CREATION_METHOD_BINORMAL(), mycreationMethod); fillAttribute(theBaseObjects, mybaseObjects); @@ -98,9 +113,10 @@ void FeaturesAPI_Pipe::setByBasePathBiNormal(const std::list& theBaseObjects, - const ModelHighAPI_Selection& thePath, - const std::list& theLocations) +void FeaturesAPI_Pipe::setByBasePathLocations( + const std::list& theBaseObjects, + const ModelHighAPI_Selection& thePath, + const std::list& theLocations) { fillAttribute(FeaturesPlugin_Pipe::CREATION_METHOD_LOCATIONS(), mycreationMethod); fillAttribute(theBaseObjects, mybaseObjects); @@ -110,6 +126,37 @@ void FeaturesAPI_Pipe::setByBasePathLocations(const std::listdocument()); + + AttributeSelectionListPtr anAttrObjects = + aBase->selectionList(FeaturesPlugin_Pipe::BASE_OBJECTS_ID()); + AttributeSelectionPtr anAttrPath = aBase->selection(FeaturesPlugin_Pipe::PATH_OBJECT_ID()); + + theDumper << aBase << " = model.addPipe(" << aDocName << ", " + << anAttrObjects << ", " << anAttrPath; + + std::string aCreationMethod = aBase->string(FeaturesPlugin_Pipe::CREATION_METHOD())->value(); + + if(aCreationMethod == FeaturesPlugin_Pipe::CREATION_METHOD_SIMPLE()) { + // Do nothing; + } else if(aCreationMethod == FeaturesPlugin_Pipe::CREATION_METHOD_BINORMAL()) { + AttributeSelectionPtr anAttrBiNormal = aBase->selection(FeaturesPlugin_Pipe::BINORMAL_ID()); + + theDumper << ", " << anAttrBiNormal; + } else if(aCreationMethod == FeaturesPlugin_Pipe::CREATION_METHOD_LOCATIONS()) { + AttributeSelectionListPtr anAttrLocations = + aBase->selectionList(FeaturesPlugin_Pipe::LOCATIONS_ID()); + + theDumper << ", " << anAttrLocations; + } + + theDumper << ")" << std::endl; +} + //================================================================================================== PipePtr addPipe(const std::shared_ptr& thePart, const std::list& theBaseObjects,