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