X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesAPI%2FFeaturesAPI_Scale.h;h=0ea718acc43b98a993000cb02b2e0f9446ad0ae9;hb=f64cb187ce9ab2190d8eff7c9be7dcfffc4242a0;hp=137763c62e642ee5972d9aebb82e51e17f399779;hpb=20bfce4045f146fa9fe16148628ac0b7f4e72a0e;p=modules%2Fshaper.git diff --git a/src/FeaturesAPI/FeaturesAPI_Scale.h b/src/FeaturesAPI/FeaturesAPI_Scale.h index 137763c62..0ea718acc 100644 --- a/src/FeaturesAPI/FeaturesAPI_Scale.h +++ b/src/FeaturesAPI/FeaturesAPI_Scale.h @@ -1,8 +1,21 @@ -// Copyright (C) 2014-201x CEA/DEN, EDF R&D --> - -// File: FeaturesAPI_Scale.h -// Created: 24 Jan 2017 -// Author: Clarisse Genrault (CEA) +// Copyright (C) 2014-2019 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 FEATURESAPI_SCALE_H_ #define FEATURESAPI_SCALE_H_ @@ -35,17 +48,34 @@ public: const ModelHighAPI_Selection& theCenterPoint, const ModelHighAPI_Double& theScaleFactor); + /// Constructor with values. + FEATURESAPI_EXPORT + explicit FeaturesAPI_Scale(const std::shared_ptr& theFeature, + const std::list& theMainObjects, + const ModelHighAPI_Selection& theCenterPoint, + const ModelHighAPI_Double& theScaleFactorX, + const ModelHighAPI_Double& theScaleFactorY, + const ModelHighAPI_Double& theScaleFactorZ); + /// Destructor. FEATURESAPI_EXPORT virtual ~FeaturesAPI_Scale(); - INTERFACE_3(FeaturesPlugin_Scale::ID(), + INTERFACE_7(FeaturesPlugin_Scale::ID(), + creationMethod, FeaturesPlugin_Scale::CREATION_METHOD(), + ModelAPI_AttributeString, /** Creation method */, mainObjects, FeaturesPlugin_Scale::OBJECTS_LIST_ID(), ModelAPI_AttributeSelectionList, /** Main objects */, centerPoint, FeaturesPlugin_Scale::CENTER_POINT_ID(), ModelAPI_AttributeSelection, /** Center point */, scaleFactor, FeaturesPlugin_Scale::SCALE_FACTOR_ID(), - ModelAPI_AttributeDouble, /** Scale factor */) + ModelAPI_AttributeDouble, /** Scale factor */, + scaleFactorX, FeaturesPlugin_Scale::SCALE_FACTOR_X_ID(), + ModelAPI_AttributeDouble, /** Scale factor in X */, + scaleFactorY, FeaturesPlugin_Scale::SCALE_FACTOR_Y_ID(), + ModelAPI_AttributeDouble, /** Scale factor in Y */, + scaleFactorZ, FeaturesPlugin_Scale::SCALE_FACTOR_Z_ID(), + ModelAPI_AttributeDouble, /** Scale factor in Z */) /// Set main objects. FEATURESAPI_EXPORT @@ -59,6 +89,13 @@ public: FEATURESAPI_EXPORT void setScaleFactor(const ModelHighAPI_Double& theScaleFactor); + /// Modify Creation Method and scale_factor_x, scale_factor_y and scale_factor_z + /// attributes of the feature. + FEATURESAPI_EXPORT + void setDimensions(const ModelHighAPI_Double& theScaleFactorX, + const ModelHighAPI_Double& theScaleFactorY, + const ModelHighAPI_Double& theScaleFactorZ); + /// Dump wrapped feature FEATURESAPI_EXPORT virtual void dump(ModelHighAPI_Dumper& theDumper) const; @@ -75,4 +112,14 @@ ScalePtr addScale(const std::shared_ptr& thePart, const ModelHighAPI_Selection& theCenterPoint, const ModelHighAPI_Double& theScaleFactor); +/// \ingroup CPPHighAPI +/// \brief Create Scale feature. +FEATURESAPI_EXPORT +ScalePtr addScale(const std::shared_ptr& thePart, + const std::list& theMainObjects, + const ModelHighAPI_Selection& theCenterPoint, + const ModelHighAPI_Double& theScaleFactorX, + const ModelHighAPI_Double& theScaleFactorY, + const ModelHighAPI_Double& theScaleFactorZ); + #endif // FEATURESAPI_SCALE_H_ \ No newline at end of file