-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
-
-// File: FeaturesPlugin_Pipe.h
-// Created: 16 March 2016
-// Author: Dmitry Bobylev
+// Copyright (C) 2014-2023 CEA, EDF
+//
+// 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
+//
#ifndef FeaturesPlugin_Pipe_H_
#define FeaturesPlugin_Pipe_H_
/// \class FeaturesPlugin_Pipe
/// \ingroup Plugins
/// \brief Feature for creation of extrusion along a path.
-/// Pipe creates extrusion of objects along a path. It produces the following results from objects:\n
+/// Pipe creates extrusion of objects along a path.
+/// It produces the following results from objects:\n
/// Vertex -> Edge\n
/// Edge -> Face\n
/// Wire -> Shell\n
return MY_CREATION_METHOD;
}
+ /// Attribute name for creation method.
+ inline static const std::string& CREATION_METHOD_SIMPLE()
+ {
+ static const std::string MY_CREATION_METHOD("simple");
+ return MY_CREATION_METHOD;
+ }
+
+ /// Attribute name for creation method.
+ inline static const std::string& CREATION_METHOD_BINORMAL()
+ {
+ static const std::string MY_CREATION_METHOD("binormal");
+ return MY_CREATION_METHOD;
+ }
+
+ /// Attribute name for creation method.
+ inline static const std::string& CREATION_METHOD_LOCATIONS()
+ {
+ static const std::string MY_CREATION_METHOD("locations");
+ return MY_CREATION_METHOD;
+ }
+
/// Attribute name of base objects.
inline static const std::string& BASE_OBJECTS_ID()
{
return MY_KIND;
}
- /// Creates a new part document if needed
+ /// Performs the algorithm and stores results it in the data structure.
FEATURESPLUGIN_EXPORT virtual void execute();
/// Request for initialization of data model of the feature: adding all attributes
private:
void storeResult(const std::shared_ptr<GeomAPI_Shape> theBaseShape,
- GeomAlgoAPI_Pipe& thePipeAlgo,
+ const std::shared_ptr<GeomAPI_Shape> thePathShape,
+ const std::shared_ptr<GeomAlgoAPI_Pipe> thePipeAlgo,
const int theResultIndex = 0);
void storeResult(const ListOfShape& theBaseShapes,
- GeomAlgoAPI_Pipe& thePipeAlgo,
+ const std::shared_ptr<GeomAPI_Shape> thePathShape,
+ const std::shared_ptr<GeomAlgoAPI_Pipe> thePipeAlgo,
const int theResultIndex = 0);
void storeShapes(ResultBodyPtr theResultBody,
const GeomAPI_Shape::ShapeType theBaseShapeType,
- const std::shared_ptr<GeomAPI_DataMapOfShapeShape> theMapOfSubShapes,
const ListOfShape& theShapes,
- const std::string theName,
- int& theTag);
+ const std::string theName);
};
#endif