Salome HOME
untabify
[modules/geom.git] / src / GEOMAlgo / GEOMAlgo_WESScaler.hxx
1 // Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 // File:        GEOMAlgo_WESScaler.hxx
20 // Created:
21 // Author:
22 //              <pkv@VORTEX>
23
24 #ifndef _GEOMAlgo_WESScaler_HeaderFile
25 #define _GEOMAlgo_WESScaler_HeaderFile
26
27 #include <Standard.hxx>
28 #include <Standard_Macro.hxx>
29 #include <Standard_Real.hxx>
30 #include <TopoDS_Face.hxx>
31 #include <TopTools_ListOfShape.hxx>
32 #include <GEOMAlgo_DataMapOfOrientedShapeShape.hxx>
33 #include <TopoDS_Shape.hxx>
34 #include <GEOMAlgo_Algo.hxx>
35
36 //=======================================================================
37 //function : GEOMAlgo_WESScaler
38 //purpose  :
39 //=======================================================================
40 class GEOMAlgo_WESScaler  : public GEOMAlgo_Algo
41 {
42 public:
43   //! Empty constructor <br>
44   Standard_EXPORT
45     GEOMAlgo_WESScaler();
46
47   Standard_EXPORT
48     virtual ~GEOMAlgo_WESScaler();
49
50   //! Modifier <br>
51   Standard_EXPORT
52     void SetScale(const Standard_Real aWES) ;
53
54   //! Selector <br>
55   Standard_EXPORT
56     Standard_Real Scale() const;
57
58   Standard_EXPORT
59     void SetFace(const TopoDS_Face& aF) ;
60
61   Standard_EXPORT
62     const TopoDS_Face& Face() const;
63
64   Standard_EXPORT
65     void SetEdges(const TopTools_ListOfShape& aLE) ;
66
67   Standard_EXPORT
68     const TopTools_ListOfShape& Edges() const;
69
70   //!  Performs the algorithm <br>
71   Standard_EXPORT
72     virtual  void Perform() ;
73
74   Standard_EXPORT
75     const TopoDS_Face& FaceScaled() const;
76
77   Standard_EXPORT
78     const TopTools_ListOfShape& EdgesScaled() const;
79
80   Standard_EXPORT
81     const TopoDS_Shape& Image(const TopoDS_Shape& aS) const;
82
83   Standard_EXPORT
84     const TopoDS_Shape& Origin(const TopoDS_Shape& aS) const;
85
86   //! Selector <br>
87   Standard_EXPORT
88     const GEOMAlgo_DataMapOfOrientedShapeShape& Images() const;
89
90   //! Selector <br>
91   Standard_EXPORT
92     const GEOMAlgo_DataMapOfOrientedShapeShape& Origins() const;
93
94  protected:
95
96   //!  Performs the algorithm <br>
97   Standard_EXPORT   virtual  void CheckData() ;
98
99
100   Standard_Real myScale;
101   TopoDS_Face myFace;
102   TopTools_ListOfShape myEdges;
103   TopoDS_Face myFaceScaled;
104   TopTools_ListOfShape myEdgesScaled;
105   GEOMAlgo_DataMapOfOrientedShapeShape myImages;
106   GEOMAlgo_DataMapOfOrientedShapeShape myOrigins;
107   TopoDS_Shape myShapeTmp;
108 };
109
110 #endif