X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGeomValidators%2FGeomValidators_ShapeType.h;h=d7cb899e3c7c8c6788849bc254a9e791580d73e3;hb=fc72d43b677baa05ae7fd317346fd8b723b799ed;hp=ce3232d61b5074674f621dbff70dcc28a26d23b1;hpb=5352bbb1915f98d1f02b1cb953a2de19b286a28c;p=modules%2Fshaper.git diff --git a/src/GeomValidators/GeomValidators_ShapeType.h b/src/GeomValidators/GeomValidators_ShapeType.h index ce3232d61..d7cb899e3 100644 --- a/src/GeomValidators/GeomValidators_ShapeType.h +++ b/src/GeomValidators/GeomValidators_ShapeType.h @@ -1,8 +1,21 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D - -// File: GeomValidators_ShapeType.h -// Created: 19 Mar 2015 -// Author: Natalia ERMOLAEVA +// 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 +// 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 GeomValidators_ShapeType_H #define GeomValidators_ShapeType_H @@ -10,6 +23,8 @@ #include "GeomValidators.h" #include "ModelAPI_AttributeValidator.h" +#include + #include /** @@ -21,29 +36,65 @@ class GeomValidators_ShapeType : public ModelAPI_AttributeValidator { public: - // the edge type + /// Type of shape enum TypeOfShape { - AnyShape, + Empty, Vertex, + Edge, Line, - Circle + Circle, + Wire, + Face, + Plane, + Shell, + Solid, + CompSolid, + Compound, + AnyShape }; public: GEOMVALIDATORS_EXPORT GeomValidators_ShapeType() {} - //! returns true if attribute is valid - //! \param theAttribute the checked attribute - //! \param theArguments arguments of the attribute + //! Returns true if attribute has shape type listed in the parameter arguments + //! \param[in] theAttribute the checked attribute + //! \param[in] theArguments arguments of the attribute + //! \param[out] theError error message. GEOMVALIDATORS_EXPORT virtual bool isValid(const AttributePtr& theAttribute, - const std::list& theArguments) const; -protected: + const std::list& theArguments, + Events_InfoMessage& theError) const; + /// Convert string to TypeOfShape value /// \param theType a string value - static TypeOfShape shapeType(const std::string& theType); + GEOMVALIDATORS_EXPORT static TypeOfShape shapeType(const std::string& theType); + +protected: + /// Returns true if the attibute's object type satisfies the argument value + /// \param[in] theAttribute a checked attribute + /// \param[in] theShapeType a type of shape + /// \param[out] theError error message. + GEOMVALIDATORS_EXPORT + bool isValidAttribute(const AttributePtr& theAttribute, + const TypeOfShape theShapeType, + Events_InfoMessage& theError) const; + + /// Returns true if the attibute's object type satisfies the argument value + /// \param[in] theObject a checked object + /// \param[in] theShapeType a shape type + /// \param[out] theError error message. + bool isValidObject(const ObjectPtr& theObject, + const TypeOfShape theShapeType, + const bool theIsGeometricalSelection, + Events_InfoMessage& theError) const; - bool isValidArgument(const AttributePtr& theAttribute, - const std::string& theArgument) const; + /// Returns true if the attibute's object type satisfies the argument value + /// \param[in] theShape a checked shape + /// \param[in] theShapeType a shape type + /// \param[out] theError error message. + bool isValidShape(const GeomShapePtr theShape, + const TypeOfShape theShapeType, + const bool theIsGeometricalSelection, + Events_InfoMessage& theError) const; };