]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Mantis issue 0020894: EDF 1421 GEOM: Partition Bug with big geometrical objects....
authorjfa <jfa@opencascade.com>
Thu, 17 Jun 2010 07:24:36 +0000 (07:24 +0000)
committerjfa <jfa@opencascade.com>
Thu, 17 Jun 2010 07:24:36 +0000 (07:24 +0000)
16 files changed:
src/GEOMAlgo/GEOMAlgo.cdl
src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx [new file with mode: 0644]
src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape_0.cxx [new file with mode: 0644]
src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx [new file with mode: 0644]
src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_0.cxx [new file with mode: 0644]
src/GEOMAlgo/GEOMAlgo_DataMapOfOrientedShapeShape.hxx [new file with mode: 0644]
src/GEOMAlgo/GEOMAlgo_DataMapOfOrientedShapeShape_0.cxx [new file with mode: 0644]
src/GEOMAlgo/GEOMAlgo_Tools_1.cxx
src/GEOMAlgo/GEOMAlgo_WESCorrector.cxx
src/GEOMAlgo/GEOMAlgo_WESScaler.cdl [new file with mode: 0644]
src/GEOMAlgo/GEOMAlgo_WESScaler.cxx [new file with mode: 0644]
src/GEOMAlgo/GEOMAlgo_WESScaler.hxx [new file with mode: 0644]
src/GEOMAlgo/GEOMAlgo_WESScaler.ixx [new file with mode: 0644]
src/GEOMAlgo/GEOMAlgo_WESScaler.jxx [new file with mode: 0644]
src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx [new file with mode: 0644]
src/GEOMAlgo/Makefile.am

index a9349ecabba0a761bc67d6be0f957120e64f5dae..fc40c3f6eeaee58c739db4d553a8bb5c19708ddb 100755 (executable)
@@ -1,30 +1,27 @@
---  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
+-- Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+-- 
+-- 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.
+-- 
+-- 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.
 --
---  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
---  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+-- 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
 --
---  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.
+-- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 --
---  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
---
-
 -- File:       GEOMAlgo.cdl
 -- Created:    Sat Dec 04 12:36:22 2004
 -- Author:     Peter KURNEV
 --             <peter@PREFEX>
---
+
 package GEOMAlgo 
 
        ---Purpose: 
@@ -117,7 +114,7 @@ is
     deferred class Clsf;
     class ClsfSurf; 
     class ClsfBox; 
-    class FinderShapeOn2; 
+    --class FinderShapeOn2; 
     class PassKeyShapeMapHasher; 
     -- 
     --  classes 
@@ -131,7 +128,8 @@ is
     --  gluer               
     class Gluer; 
     class Gluer1;  
-    class GlueAnalyser; 
+    class GlueAnalyser;  
+    
     class CoupleOfShapes; 
     class PassKey;  
     class PassKeyMapHasher; 
@@ -146,20 +144,14 @@ is
     class ShellSolid; 
     class VertexSolid; 
     class SolidSolid; 
-    class FinderShapeOn; 
+    --class FinderShapeOn; 
     -- 
-    class FinderShapeOn1;
+    --class FinderShapeOn1;
     class StateCollector; 
-    --  adds
-    deferred class HAlgo;
-    deferred class Clsf;
-    class ClsfSurf; 
-    class ClsfBox;  
-    --modified by NIZNHY-PKV Mon Jan 29 10:27:44 2007f
+
     class ClsfSolid;  
-    --modified by NIZNHY-PKV Mon Jan 29 10:27:46 2007t
-    class FinderShapeOn2; 
-    class PassKeyShapeMapHasher;
+--    class FinderShapeOn2; 
+--    class PassKeyShapeMapHasher;
     --
     -- Builder/Splitter 
     deferred class BuilderShape; 
@@ -177,6 +169,7 @@ is
     class WireSplitter; 
     class WireEdgeSet; 
     class WESCorrector; 
+    class WESScaler; 
     -- 
     --  Pointers
     --     
@@ -243,20 +236,9 @@ is
                                               Shape from TopoDS, 
                                               PassKeyShapeMapHasher from GEOMAlgo); 
 
-    class DataMapOfShapeShapeSet instantiates 
-       DataMap from TCollection(Shape from TopoDS, 
-                                ShapeSet from GEOMAlgo, 
-                                ShapeMapHasher from TopTools); 
-        
-    class DataMapOfShapeReal instantiates 
-       DataMap from TCollection(Shape from TopoDS, 
-                                Real from Standard, 
-                                ShapeMapHasher from TopTools);          
-                                 
-    
-    class DataMapOfRealListOfShape instantiates  
-       DataMap from TCollection(Real from Standard, 
-                                ListOfShape from TopTools,  
-                                MapRealHasher from TColStd);      
+    class DataMapOfOrientedShapeShape instantiates
+        DataMap from TCollection (Shape                  from TopoDS,
+                                  Shape                  from TopoDS,
+                                  OrientedShapeMapHasher from TopTools);
     
 end GEOMAlgo;
diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx
new file mode 100644 (file)
index 0000000..29af23a
--- /dev/null
@@ -0,0 +1,114 @@
+// File generated by CPPExt (Value)
+//
+//                     Copyright (C) 1991 - 2000 by  
+//                      Matra Datavision SA.  All rights reserved.
+//  
+//                     Copyright (C) 2001 - 2004 by
+//                     Open CASCADE SA.  All rights reserved.
+// 
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//  
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#ifndef _GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape_HeaderFile
+#define _GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape_HeaderFile
+
+#ifndef _TCollection_BasicMapIterator_HeaderFile
+#include <TCollection_BasicMapIterator.hxx>
+#endif
+#ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_HeaderFile
+#include <Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx>
+#endif
+class Standard_NoSuchObject;
+class TopoDS_Shape;
+class TopTools_OrientedShapeMapHasher;
+class GEOMAlgo_DataMapOfOrientedShapeShape;
+class GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape  : public TCollection_BasicMapIterator {
+
+public:
+
+    void* operator new(size_t,void* anAddress) 
+      {
+        return anAddress;
+      }
+    void* operator new(size_t size) 
+      { 
+        return Standard::Allocate(size); 
+      }
+    void  operator delete(void *anAddress) 
+      { 
+        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+      }
+ // Methods PUBLIC
+ // 
+
+
+Standard_EXPORT GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape();
+
+
+Standard_EXPORT GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape(const GEOMAlgo_DataMapOfOrientedShapeShape& aMap);
+
+
+Standard_EXPORT   void Initialize(const GEOMAlgo_DataMapOfOrientedShapeShape& aMap) ;
+
+
+Standard_EXPORT  const TopoDS_Shape& Key() const;
+
+
+Standard_EXPORT  const TopoDS_Shape& Value() const;
+
+
+
+
+
+protected:
+
+ // Methods PROTECTED
+ // 
+
+
+ // Fields PROTECTED
+ //
+
+
+private: 
+
+ // Methods PRIVATE
+ // 
+
+
+ // Fields PRIVATE
+ //
+
+
+};
+
+
+
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape_0.cxx
new file mode 100644 (file)
index 0000000..93d1b11
--- /dev/null
@@ -0,0 +1,56 @@
+// File generated by CPPExt (Value)
+//
+//                     Copyright (C) 1991 - 2000 by  
+//                      Matra Datavision SA.  All rights reserved.
+//  
+//                     Copyright (C) 2001 - 2004 by
+//                     Open CASCADE SA.  All rights reserved.
+// 
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//  
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#include <GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx>
+
+#ifndef _Standard_NoSuchObject_HeaderFile
+#include <Standard_NoSuchObject.hxx>
+#endif
+#ifndef _TopoDS_Shape_HeaderFile
+#include <TopoDS_Shape.hxx>
+#endif
+#ifndef _TopTools_OrientedShapeMapHasher_HeaderFile
+#include <TopTools_OrientedShapeMapHasher.hxx>
+#endif
+#ifndef _GEOMAlgo_DataMapOfOrientedShapeShape_HeaderFile
+#include <GEOMAlgo_DataMapOfOrientedShapeShape.hxx>
+#endif
+#ifndef _GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_HeaderFile
+#include <GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx>
+#endif
+
+#define TheKey TopoDS_Shape
+#define TheKey_hxx <TopoDS_Shape.hxx>
+#define TheItem TopoDS_Shape
+#define TheItem_hxx <TopoDS_Shape.hxx>
+#define Hasher TopTools_OrientedShapeMapHasher
+#define Hasher_hxx <TopTools_OrientedShapeMapHasher.hxx>
+#define TCollection_DataMapNode GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapNode_hxx <GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx>
+#define TCollection_DataMapIterator GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapIterator_hxx <GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx>
+#define Handle_TCollection_DataMapNode Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapNode_Type_() GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_Type_()
+#define TCollection_DataMap GEOMAlgo_DataMapOfOrientedShapeShape
+#define TCollection_DataMap_hxx <GEOMAlgo_DataMapOfOrientedShapeShape.hxx>
+#include <TCollection_DataMapIterator.gxx>
+
diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx
new file mode 100644 (file)
index 0000000..e952b7d
--- /dev/null
@@ -0,0 +1,131 @@
+// File generated by CPPExt (Transient)
+//
+//
+//                     Copyright (C) 1991 - 2000 by  
+//                      Matra Datavision SA.  All rights reserved.
+//  
+//                     Copyright (C) 2001 - 2004 by
+//                     Open CASCADE SA.  All rights reserved.
+// 
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//  
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#ifndef _GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_HeaderFile
+#define _GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_HeaderFile
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_HeaderFile
+#include <Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx>
+#endif
+
+#ifndef _TopoDS_Shape_HeaderFile
+#include <TopoDS_Shape.hxx>
+#endif
+#ifndef _TCollection_MapNode_HeaderFile
+#include <TCollection_MapNode.hxx>
+#endif
+#ifndef _TCollection_MapNodePtr_HeaderFile
+#include <TCollection_MapNodePtr.hxx>
+#endif
+class TopoDS_Shape;
+class TopTools_OrientedShapeMapHasher;
+class GEOMAlgo_DataMapOfOrientedShapeShape;
+class GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape;
+
+
+
+class GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape : public TCollection_MapNode {
+
+public:
+ // Methods PUBLIC
+ // 
+
+GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape(const TopoDS_Shape& K,const TopoDS_Shape& I,const TCollection_MapNodePtr& n);
+
+  TopoDS_Shape& Key() const;
+
+  TopoDS_Shape& Value() const;
+//Standard_EXPORT ~GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape();
+
+
+
+
+ // Type management
+ //
+ Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
+ //Standard_EXPORT Standard_Boolean           IsKind(const Handle(Standard_Type)&) const;
+
+protected:
+
+ // Methods PROTECTED
+ // 
+
+
+ // Fields PROTECTED
+ //
+
+
+private: 
+
+ // Methods PRIVATE
+ // 
+
+
+ // Fields PRIVATE
+ //
+TopoDS_Shape myKey;
+TopoDS_Shape myValue;
+
+
+};
+
+#define TheKey TopoDS_Shape
+#define TheKey_hxx <TopoDS_Shape.hxx>
+#define TheItem TopoDS_Shape
+#define TheItem_hxx <TopoDS_Shape.hxx>
+#define Hasher TopTools_OrientedShapeMapHasher
+#define Hasher_hxx <TopTools_OrientedShapeMapHasher.hxx>
+#define TCollection_DataMapNode GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapNode_hxx <GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx>
+#define TCollection_DataMapIterator GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapIterator_hxx <GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx>
+#define Handle_TCollection_DataMapNode Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapNode_Type_() GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_Type_()
+#define TCollection_DataMap GEOMAlgo_DataMapOfOrientedShapeShape
+#define TCollection_DataMap_hxx <GEOMAlgo_DataMapOfOrientedShapeShape.hxx>
+
+#include <TCollection_DataMapNode.lxx>
+
+#undef TheKey
+#undef TheKey_hxx
+#undef TheItem
+#undef TheItem_hxx
+#undef Hasher
+#undef Hasher_hxx
+#undef TCollection_DataMapNode
+#undef TCollection_DataMapNode_hxx
+#undef TCollection_DataMapIterator
+#undef TCollection_DataMapIterator_hxx
+#undef Handle_TCollection_DataMapNode
+#undef TCollection_DataMapNode_Type_
+#undef TCollection_DataMap
+#undef TCollection_DataMap_hxx
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_0.cxx
new file mode 100644 (file)
index 0000000..9835b01
--- /dev/null
@@ -0,0 +1,102 @@
+// File generated by CPPExt (Transient)
+//
+//                     Copyright (C) 1991 - 2000 by  
+//                      Matra Datavision SA.  All rights reserved.
+//  
+//                     Copyright (C) 2001 - 2004 by
+//                     Open CASCADE SA.  All rights reserved.
+// 
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//  
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#include <GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx>
+
+#ifndef _Standard_TypeMismatch_HeaderFile
+#include <Standard_TypeMismatch.hxx>
+#endif
+
+#ifndef _TopoDS_Shape_HeaderFile
+#include <TopoDS_Shape.hxx>
+#endif
+#ifndef _TopTools_OrientedShapeMapHasher_HeaderFile
+#include <TopTools_OrientedShapeMapHasher.hxx>
+#endif
+#ifndef _GEOMAlgo_DataMapOfOrientedShapeShape_HeaderFile
+#include <GEOMAlgo_DataMapOfOrientedShapeShape.hxx>
+#endif
+#ifndef _GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape_HeaderFile
+#include <GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx>
+#endif
+//GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape::~GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape() {}
+
+
+Standard_EXPORT Handle_Standard_Type& GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_Type_()
+{
+
+    static Handle_Standard_Type aType1 = STANDARD_TYPE(TCollection_MapNode);
+  static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared);
+  static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient);
+
+  static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
+  static Handle_Standard_Type _aType = new Standard_Type("GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape",
+                                                        sizeof(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape),
+                                                        1,
+                                                        (Standard_Address)_Ancestors,
+                                                        (Standard_Address)NULL);
+
+  return _aType;
+}
+
+
+// DownCast method
+//   allow safe downcasting
+//
+const Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape) Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape)::DownCast(const Handle(Standard_Transient)& AnObject) 
+{
+  Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape) _anOtherObject;
+
+  if (!AnObject.IsNull()) {
+     if (AnObject->IsKind(STANDARD_TYPE(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape))) {
+       _anOtherObject = Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape)((Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape)&)AnObject);
+     }
+  }
+
+  return _anOtherObject ;
+}
+const Handle(Standard_Type)& GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape::DynamicType() const 
+{ 
+  return STANDARD_TYPE(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape) ; 
+}
+//Standard_Boolean GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape::IsKind(const Handle(Standard_Type)& AType) const 
+//{ 
+//  return (STANDARD_TYPE(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape) == AType || TCollection_MapNode::IsKind(AType)); 
+//}
+//Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape::~Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape() {}
+#define TheKey TopoDS_Shape
+#define TheKey_hxx <TopoDS_Shape.hxx>
+#define TheItem TopoDS_Shape
+#define TheItem_hxx <TopoDS_Shape.hxx>
+#define Hasher TopTools_OrientedShapeMapHasher
+#define Hasher_hxx <TopTools_OrientedShapeMapHasher.hxx>
+#define TCollection_DataMapNode GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapNode_hxx <GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx>
+#define TCollection_DataMapIterator GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapIterator_hxx <GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx>
+#define Handle_TCollection_DataMapNode Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapNode_Type_() GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_Type_()
+#define TCollection_DataMap GEOMAlgo_DataMapOfOrientedShapeShape
+#define TCollection_DataMap_hxx <GEOMAlgo_DataMapOfOrientedShapeShape.hxx>
+#include <TCollection_DataMapNode.gxx>
+
diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfOrientedShapeShape.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfOrientedShapeShape.hxx
new file mode 100644 (file)
index 0000000..f07e4f7
--- /dev/null
@@ -0,0 +1,156 @@
+// File generated by CPPExt (Value)
+//
+//                     Copyright (C) 1991 - 2000 by  
+//                      Matra Datavision SA.  All rights reserved.
+//  
+//                     Copyright (C) 2001 - 2004 by
+//                     Open CASCADE SA.  All rights reserved.
+// 
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//  
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#ifndef _GEOMAlgo_DataMapOfOrientedShapeShape_HeaderFile
+#define _GEOMAlgo_DataMapOfOrientedShapeShape_HeaderFile
+
+#ifndef _TCollection_BasicMap_HeaderFile
+#include <TCollection_BasicMap.hxx>
+#endif
+#ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_HeaderFile
+#include <Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx>
+#endif
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _Standard_Boolean_HeaderFile
+#include <Standard_Boolean.hxx>
+#endif
+class Standard_DomainError;
+class Standard_NoSuchObject;
+class TopoDS_Shape;
+class TopTools_OrientedShapeMapHasher;
+class GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape;
+class GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class GEOMAlgo_DataMapOfOrientedShapeShape  : public TCollection_BasicMap {
+
+public:
+
+    void* operator new(size_t,void* anAddress) 
+      {
+        return anAddress;
+      }
+    void* operator new(size_t size) 
+      { 
+        return Standard::Allocate(size); 
+      }
+    void  operator delete(void *anAddress) 
+      { 
+        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+      }
+ // Methods PUBLIC
+ // 
+
+
+Standard_EXPORT GEOMAlgo_DataMapOfOrientedShapeShape(const Standard_Integer NbBuckets = 1);
+
+
+Standard_EXPORT   GEOMAlgo_DataMapOfOrientedShapeShape& Assign(const GEOMAlgo_DataMapOfOrientedShapeShape& Other) ;
+  GEOMAlgo_DataMapOfOrientedShapeShape& operator =(const GEOMAlgo_DataMapOfOrientedShapeShape& Other) 
+{
+  return Assign(Other);
+}
+
+
+
+Standard_EXPORT   void ReSize(const Standard_Integer NbBuckets) ;
+
+
+Standard_EXPORT   void Clear() ;
+~GEOMAlgo_DataMapOfOrientedShapeShape()
+{
+  Clear();
+}
+
+
+
+Standard_EXPORT   Standard_Boolean Bind(const TopoDS_Shape& K,const TopoDS_Shape& I) ;
+
+
+Standard_EXPORT   Standard_Boolean IsBound(const TopoDS_Shape& K) const;
+
+
+Standard_EXPORT   Standard_Boolean UnBind(const TopoDS_Shape& K) ;
+
+
+Standard_EXPORT  const TopoDS_Shape& Find(const TopoDS_Shape& K) const;
+ const TopoDS_Shape& operator()(const TopoDS_Shape& K) const
+{
+  return Find(K);
+}
+
+
+
+Standard_EXPORT   TopoDS_Shape& ChangeFind(const TopoDS_Shape& K) ;
+  TopoDS_Shape& operator()(const TopoDS_Shape& K) 
+{
+  return ChangeFind(K);
+}
+
+
+
+
+
+
+protected:
+
+ // Methods PROTECTED
+ // 
+
+
+ // Fields PROTECTED
+ //
+
+
+private: 
+
+ // Methods PRIVATE
+ // 
+
+
+Standard_EXPORT GEOMAlgo_DataMapOfOrientedShapeShape(const GEOMAlgo_DataMapOfOrientedShapeShape& Other);
+
+
+ // Fields PRIVATE
+ //
+
+
+};
+
+
+
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfOrientedShapeShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfOrientedShapeShape_0.cxx
new file mode 100644 (file)
index 0000000..9ddbf34
--- /dev/null
@@ -0,0 +1,59 @@
+// File generated by CPPExt (Value)
+//
+//                     Copyright (C) 1991 - 2000 by  
+//                      Matra Datavision SA.  All rights reserved.
+//  
+//                     Copyright (C) 2001 - 2004 by
+//                     Open CASCADE SA.  All rights reserved.
+// 
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//  
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#include <GEOMAlgo_DataMapOfOrientedShapeShape.hxx>
+
+#ifndef _Standard_DomainError_HeaderFile
+#include <Standard_DomainError.hxx>
+#endif
+#ifndef _Standard_NoSuchObject_HeaderFile
+#include <Standard_NoSuchObject.hxx>
+#endif
+#ifndef _TopoDS_Shape_HeaderFile
+#include <TopoDS_Shape.hxx>
+#endif
+#ifndef _TopTools_OrientedShapeMapHasher_HeaderFile
+#include <TopTools_OrientedShapeMapHasher.hxx>
+#endif
+#ifndef _GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_HeaderFile
+#include <GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx>
+#endif
+#ifndef _GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape_HeaderFile
+#include <GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx>
+#endif
+
+#define TheKey TopoDS_Shape
+#define TheKey_hxx <TopoDS_Shape.hxx>
+#define TheItem TopoDS_Shape
+#define TheItem_hxx <TopoDS_Shape.hxx>
+#define Hasher TopTools_OrientedShapeMapHasher
+#define Hasher_hxx <TopTools_OrientedShapeMapHasher.hxx>
+#define TCollection_DataMapNode GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapNode_hxx <GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx>
+#define TCollection_DataMapIterator GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapIterator_hxx <GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx>
+#define Handle_TCollection_DataMapNode Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape
+#define TCollection_DataMapNode_Type_() GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_Type_()
+#define TCollection_DataMap GEOMAlgo_DataMapOfOrientedShapeShape
+#define TCollection_DataMap_hxx <GEOMAlgo_DataMapOfOrientedShapeShape.hxx>
+#include <TCollection_DataMap.gxx>
+
index 992c8af4c48bcd39230a33dd7672dd9edd481318..32bbfd59db82fe5fea9d3aedf6613b3885a32fbc 100644 (file)
@@ -38,6 +38,7 @@
 #include <TopTools_DataMapOfShapeListOfShape.hxx>
 #include <TopTools_ListOfShape.hxx>
 #include <TopTools_DataMapIteratorOfDataMapOfShapeListOfShape.hxx>
+#include <BRepTools.hxx>
 
 static 
   inline Standard_Boolean IsEqual(const TopoDS_Shape& aS1, 
@@ -72,7 +73,7 @@ static
       const Handle(Geom_Surface)& aS=BRep_Tool::Surface(aF, aLoc);
       aGAS.Load(aS);
       aTS=aGAS.GetType();
-      if (aTS==GeomAbs_Cylinder) {
+      if (aTS==GeomAbs_Cylinder || aTS==GeomAbs_Plane) {
        aItF.Initialize(aF);
        for (; aItF.More(); aItF.Next()) {
          const TopoDS_Wire& aW=*((TopoDS_Wire*)&aItF.Value());
index e033ad2440640a4798029ee1449f46933a0f3ddd..c9ca04b2442739522572f81c836006c2ccd1bebf 100755 (executable)
@@ -1,4 +1,4 @@
-//  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -19,7 +19,6 @@
 //
 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-
 // File:        NMTAlgo_WESCorrector.cxx
 // Created:     
 // Author:      Peter KURNEV
 #include <TopTools_MapIteratorOfMapOfShape.hxx>
 #include <TopoDS_Iterator.hxx>
 #include <GEOMAlgo_WireSplitter.hxx>
+#include <GEOMAlgo_WESScaler.hxx>
 
 
 static
   void MakeWire(const TopTools_ListOfShape& aLE, 
                 TopoDS_Wire& newWire);
 
+//modified by NIZNHY-PKV Thu Jun 10 11:26:55 2010f
+static
+  Standard_Boolean IsToScale(const TopoDS_Face& aF, 
+                            Standard_Real& aScale);
+//modified by NIZNHY-PKV Thu Jun 10 11:27:02 2010t
 //=======================================================================
 // function: 
 // purpose: 
@@ -215,12 +220,7 @@ static
         aER.Orientation(TopAbs_REVERSED);
         aLEC.Append(aER);
         //
-        //modified by NIZNHY-PKV Tue Nov 28 12:02:29 2006f
-        //bClosed=BRep_Tool::IsClosed(TopoDS::Edge(aER), myWES->Face());
-        //if (!bClosed) {
-          bRegular=Standard_False;
-        //}
-        //modified by NIZNHY-PKV Tue Nov 28 12:02:33 2006t
+       bRegular=Standard_False;
       }
       else {
         aLEC.Append(aER);
@@ -266,21 +266,25 @@ static
 //=======================================================================
   void GEOMAlgo_WESCorrector::DoCorrections()
 {
-  Standard_Boolean bIsRegular, bIsNothingToDo;
+  Standard_Boolean bIsRegular, bIsNothingToDo, bToScale;
   Standard_Integer iErr;
+  Standard_Real aScale;
   TopoDS_Wire aW;
   BOP_ListIteratorOfListOfConnexityBlock aCBIt;
+  GEOMAlgo_WESScaler aWSC;
   //
   const TopoDS_Face& aF=myWES->Face();
+  //modified by NIZNHY-PKV Thu Jun 10 11:27:45 2010f
+  bToScale=IsToScale(aF, aScale);
+  //modified by NIZNHY-PKV Thu Jun 10 11:27:49 2010t
   //
   myNewWES.SetFace(aF);
   aCBIt.Initialize(myConnexityBlocks);
   for (; aCBIt.More(); aCBIt.Next()) {
     const BOP_ConnexityBlock& aCB=aCBIt.Value();
     const TopTools_ListOfShape& aLE=aCB.Shapes();
-
+    //
     bIsRegular=aCB.IsRegular();
-
     if (bIsRegular) {
       MakeWire(aLE, aW);
       myNewWES.AddShape (aW);
@@ -289,30 +293,86 @@ static
     //
     GEOMAlgo_WireSplitter aWS;
     //
-    aWS.SetFace(aF);
-    aWS.SetEdges(aLE);
-    //
-    aWS.Perform();
-    iErr=aWS.ErrorStatus();
-    if (iErr) {
-      continue;
-    }
-    bIsNothingToDo=aWS.IsNothingToDo();
-    if (bIsNothingToDo) {
-      MakeWire(aLE, aW);
-      myNewWES.AddShape (aW);
-      continue;
-    }
+    //modified by NIZNHY-PKV Thu Jun 10 10:40:43 2010f
+    if(bToScale) {
+      TopoDS_Shape aE;
+      TopTools_ListIteratorOfListOfShape aIt;
+      BOPTColStd_ListIteratorOfListOfListOfShape aItLLSS;
+      //
+      aWSC.SetScale(aScale);
+      aWSC.SetFace(aF);
+      aWSC.SetEdges(aLE);
+      //
+      aWSC.Perform();
+      iErr=aWSC.ErrorStatus();
+      if (iErr) {
+       return;
+      }
+      //
+      const TopoDS_Face& aFS=aWSC.FaceScaled();
+      const TopTools_ListOfShape& aLES=aWSC.EdgesScaled();
+      //
+      aWS.SetFace(aFS);
+      aWS.SetEdges(aLES);
+      //
+      aWS.Perform();
+      iErr=aWS.ErrorStatus();
+      if (iErr) {
+       continue;
+      }
+      //
+      bIsNothingToDo=aWS.IsNothingToDo();
+      if (bIsNothingToDo) {
+       MakeWire(aLE, aW);
+       myNewWES.AddShape (aW);
+       continue;
+      }
+      //
+      const BOPTColStd_ListOfListOfShape& aLLSS=aWS.Shapes();
+      aItLLSS.Initialize(aLLSS);
+      for (; aItLLSS.More(); aItLLSS.Next()) {
+       TopTools_ListOfShape aLS;
+       //
+       const TopTools_ListOfShape& aLSS=aItLLSS.Value();
+       aIt.Initialize(aLSS);
+       for (; aIt.More(); aIt.Next()) {
+         const TopoDS_Shape& aES=aIt.Value();
+         aE=aWSC.Origin(aES);
+         aLS.Append(aE);
+       }
+       //
+       MakeWire(aLS, aW);
+       myNewWES.AddShape (aW);
+      }
+    }//if(bToScale)
+    //modified by NIZNHY-PKV Thu Jun 10 10:40:48 2010t
     //
-    const BOPTColStd_ListOfListOfShape& aSSS=aWS.Shapes();
-    
-    BOPTColStd_ListIteratorOfListOfListOfShape aWireIt(aSSS);
-    for (; aWireIt.More(); aWireIt.Next()) {
-      const TopTools_ListOfShape& aLEx=aWireIt.Value();
+    else {
+      aWS.SetFace(aF);
+      aWS.SetEdges(aLE);
       //
-      MakeWire(aLEx, aW);
-      myNewWES.AddShape (aW);
-    }
+      aWS.Perform();
+      iErr=aWS.ErrorStatus();
+      if (iErr) {
+       continue;
+      }
+      bIsNothingToDo=aWS.IsNothingToDo();
+      if (bIsNothingToDo) {
+       MakeWire(aLE, aW);
+       myNewWES.AddShape (aW);
+       continue;
+      }
+      //
+      const BOPTColStd_ListOfListOfShape& aSSS=aWS.Shapes();
+    
+      BOPTColStd_ListIteratorOfListOfListOfShape aWireIt(aSSS);
+      for (; aWireIt.More(); aWireIt.Next()) {
+       const TopTools_ListOfShape& aLEx=aWireIt.Value();
+       //
+       MakeWire(aLEx, aW);
+       myNewWES.AddShape (aW);
+      }
+    }// else
   }
 }
 //=======================================================================
@@ -331,3 +391,41 @@ static
     aBB.Add(newWire, aE);
   }
 }
+//
+//modified by NIZNHY-PKV Thu Jun 10 11:14:09 2010f
+
+#include <Geom_Surface.hxx>
+#include <TopLoc_Location.hxx>
+#include <BRepAdaptor_Surface.hxx>
+//=======================================================================
+//function : IsToScale
+//purpose  : 
+//=======================================================================
+Standard_Boolean IsToScale(const TopoDS_Face& aF, 
+                          Standard_Real& aScale)
+{
+  Standard_Boolean bRet;
+  Standard_Real aV1, aV2, dV, aTr;
+  GeomAbs_SurfaceType aType;
+  BRepAdaptor_Surface aBAS;
+  //
+  bRet=Standard_False;
+  aScale=1.;
+  //
+  aBAS.Initialize(aF);
+  aType=aBAS.GetType();
+  if (aType==GeomAbs_Cylinder) {
+    aTr=1.e5;
+    aV1=aBAS.FirstVParameter();
+    aV2=aBAS.LastVParameter();
+    dV=aV2-aV1;
+    if (dV>aTr) {
+      bRet=!bRet;
+      aScale=1./aTr;
+    }
+  }
+  return bRet;
+}
+//modified by NIZNHY-PKV Thu Jun 10 11:14:12 2010t
+
diff --git a/src/GEOMAlgo/GEOMAlgo_WESScaler.cdl b/src/GEOMAlgo/GEOMAlgo_WESScaler.cdl
new file mode 100644 (file)
index 0000000..efc5661
--- /dev/null
@@ -0,0 +1,123 @@
+--  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+--
+--  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+--  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+--
+--  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.
+--
+--  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
+-- File:       GEOMAlgo_WESScaler.cdl
+-- Created:    
+-- Author:     
+--             <pkv@VORTEX>
+
+class WESScaler from GEOMAlgo  
+       inherits Algo from GEOMAlgo  
+
+       ---Purpose: 
+
+uses 
+    Face from TopoDS, 
+    Shape  from TopoDS,
+    ListOfShape from  TopTools,        
+    DataMapOfOrientedShapeShape from GEOMAlgo,
+    WireEdgeSet from GEOMAlgo,  
+    PWireEdgeSet from GEOMAlgo  
+--raises
+
+is 
+    Create 
+       ---Purpose: Empty constructor    
+       returns WESScaler from GEOMAlgo; 
+    ---C++: alias "Standard_EXPORT virtual ~GEOMAlgo_WESScaler();"  
+     
+    SetScale  (me:out; 
+               aWES: Real from Standard);  
+    ---Purpose: 
+    -- Modifier  
+      
+    Scale(me) 
+       returns Real from Standard;       
+    ---Purpose: 
+    -- Selector  
+        
+    SetFace  (me:out; 
+               aF: Face from TopoDS); 
+     
+    Face (me) 
+       returns Face from TopoDS; 
+    ---C++:  return const & 
+     
+    SetEdges  (me:out; 
+               aLE:ListOfShape from  TopTools);  
+     
+    Edges  (me)
+        returns ListOfShape from  TopTools;  
+    ---C++:  return const &             
+    
+    Perform(me:out)  
+       ---Purpose:  Performs the algorithm 
+       is redefined;   
+      
+    FaceScaled (me) 
+       returns Face from TopoDS; 
+    ---C++:  return const & 
+     
+    EdgesScaled  (me)
+        returns ListOfShape from  TopTools;  
+    ---C++:  return const &   
+    
+    Image(me; 
+           aS:Shape from TopoDS)  
+       returns Shape from TopoDS; 
+    ---C++: return const &  
+    ---Purpose: 
+     
+    Origin(me; 
+           aS:Shape from TopoDS)  
+       returns Shape from TopoDS; 
+    ---C++: return const &   
+    
+    ---Purpose: 
+    Images(me)  
+       returns  DataMapOfOrientedShapeShape from GEOMAlgo; 
+    ---C++: return const &  
+    ---Purpose: 
+    --- Selector 
+     
+    Origins(me)  
+       returns   DataMapOfOrientedShapeShape from GEOMAlgo; 
+    ---C++: return const &  
+    ---Purpose: 
+    --- Selector    
+     
+    CheckData(me:out)  
+       ---Purpose:  Performs the algorithm 
+       is redefined protected; 
+        
+fields 
+    myScale         : Real from Standard is protected; 
+    myFace          : Face from TopoDS is protected;    
+    
+    myEdges         : ListOfShape from  TopTools is protected;    
+    myFaceScaled    : Face from TopoDS is protected;    
+    myEdgesScaled   : ListOfShape from  TopTools is protected;
+    myImages        : DataMapOfOrientedShapeShape from GEOMAlgo is protected;     
+    myOrigins       : DataMapOfOrientedShapeShape from GEOMAlgo is protected;      
+    myShapeTmp      : Shape  from TopoDS is protected;    
+end WESScaler;
+
diff --git a/src/GEOMAlgo/GEOMAlgo_WESScaler.cxx b/src/GEOMAlgo/GEOMAlgo_WESScaler.cxx
new file mode 100644 (file)
index 0000000..f8a98e2
--- /dev/null
@@ -0,0 +1,270 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+// File:       GEOMAlgo_WESScaler.cxx
+// Created:    
+// Author:     
+//             <pkv@VORTEX>
+
+
+#include <GEOMAlgo_WESScaler.ixx>
+
+#include <gp_Pnt.hxx>
+#include <gp_Trsf.hxx>
+
+#include <TopoDS_Face.hxx>
+#include <TopoDS_Iterator.hxx>
+#include <TopoDS_Wire.hxx>
+#include <BRep_Builder.hxx>
+
+#include <TopTools_ListOfShape.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
+
+#include <BRepBuilderAPI_Transform.hxx>
+
+
+//=======================================================================
+//function : 
+//purpose  : 
+//=======================================================================
+  GEOMAlgo_WESScaler::GEOMAlgo_WESScaler() 
+:
+  GEOMAlgo_Algo()
+{
+  myScale=1.;
+}
+//=======================================================================
+//function : ~
+//purpose  : 
+//=======================================================================
+  GEOMAlgo_WESScaler::~GEOMAlgo_WESScaler() 
+{
+}
+//=======================================================================
+// function: SetScale
+// purpose: 
+//=======================================================================
+  void GEOMAlgo_WESScaler::SetScale (const Standard_Real aScale)
+{
+  myScale=aScale;
+}
+//=======================================================================
+// function: Scale
+// purpose: 
+//=======================================================================
+  Standard_Real GEOMAlgo_WESScaler::Scale()const 
+{
+  return myScale;
+}
+//=======================================================================
+// function: SetFace
+// purpose: 
+//=======================================================================
+  void GEOMAlgo_WESScaler::SetFace(const TopoDS_Face& aF)
+{
+  myFace=aF;
+}
+//=======================================================================
+// function: Face
+// purpose: 
+//=======================================================================
+  const TopoDS_Face& GEOMAlgo_WESScaler::Face()const
+{
+  return myFace;
+}
+//=======================================================================
+// function: SetEdges
+// purpose: 
+//=======================================================================
+  void GEOMAlgo_WESScaler::SetEdges(const TopTools_ListOfShape& aLE)
+{
+  myEdges=aLE;
+}
+//=======================================================================
+// function: Edges
+// purpose: 
+//=======================================================================
+  const TopTools_ListOfShape& GEOMAlgo_WESScaler::Edges()const
+{
+  return myEdges;
+}
+//=======================================================================
+// function: FaceScaled
+// purpose: 
+//=======================================================================
+  const TopoDS_Face& GEOMAlgo_WESScaler::FaceScaled()const
+{
+  return myFaceScaled;
+}
+//=======================================================================
+// function: EdgesScaled
+// purpose: 
+//=======================================================================
+  const TopTools_ListOfShape& GEOMAlgo_WESScaler::EdgesScaled()const
+{
+  return myEdgesScaled;
+}
+//=======================================================================
+// function: Image
+// purpose: 
+//=======================================================================
+  const TopoDS_Shape& GEOMAlgo_WESScaler::Image (const TopoDS_Shape& aS) const
+{
+  if (myImages.IsBound(aS)) {
+    return myImages.Find(aS);
+  }
+  return myShapeTmp;
+}
+//=======================================================================
+// function: Origin
+// purpose: 
+//=======================================================================
+  const TopoDS_Shape& GEOMAlgo_WESScaler::Origin (const TopoDS_Shape& aS) const
+{
+  if (myOrigins.IsBound(aS)) {
+    return myOrigins.Find(aS);
+  }
+  return myShapeTmp;
+}
+//=======================================================================
+// function: Images
+// purpose: 
+//=======================================================================
+  const GEOMAlgo_DataMapOfOrientedShapeShape& GEOMAlgo_WESScaler::Images () const
+{
+  return myImages;
+}
+//=======================================================================
+// function: Origins
+// purpose: 
+//=======================================================================
+  const GEOMAlgo_DataMapOfOrientedShapeShape& GEOMAlgo_WESScaler::Origins () const
+{
+  return myOrigins;
+}
+//=======================================================================
+// function: CheckData
+// purpose: 
+//=======================================================================
+  void GEOMAlgo_WESScaler::CheckData()
+{
+  myErrorStatus=0;
+  //
+  if(myFace.IsNull()) {
+    myErrorStatus=2;
+    return;
+  }
+  if(!myEdges.Extent()) {
+    myErrorStatus=3;
+    return;
+  }
+  if (myScale<=0.){
+    myErrorStatus=4;
+  }
+}
+//=======================================================================
+// function: Perform
+// purpose: 
+//=======================================================================
+  void GEOMAlgo_WESScaler::Perform()
+{
+  Standard_Boolean bIsDone;
+  Standard_Integer i;
+  gp_Pnt aP;
+  gp_Trsf aTrsf;
+  TopAbs_Orientation aOr;
+  TopoDS_Shape aFC, aFR, aER;
+  TopoDS_Wire aWE;
+  TopoDS_Iterator aItS;
+  BRep_Builder aBB;
+  TopTools_ListIteratorOfListOfShape aIt;
+  //
+  // 0. CheckData
+  CheckData();
+  if(myErrorStatus) {
+    return;
+  }
+  //
+  myImages.Clear();
+  myOrigins.Clear();
+  myEdgesScaled.Clear();
+  //
+  // 1. aFC
+  aFC=myFace.EmptyCopied();
+  //
+  aBB.MakeWire(aWE);
+  aIt.Initialize(myEdges);
+  for (; aIt.More(); aIt.Next()) {
+    const TopoDS_Shape& aE=aIt.Value();
+    aBB.Add(aWE, aE);
+  }
+  aBB.Add(aFC, aWE);
+  //
+  aItS.Initialize(myFace);
+  for (; aItS.More(); aItS.Next()) {
+    const TopoDS_Shape& aW=aItS.Value();
+    aBB.Add(aFC, aW);
+  }
+  //
+  // 2. Scale aFC
+  aP.SetCoord(0.,0.,0.);
+  aTrsf.SetScale(aP, myScale);
+  //
+  BRepBuilderAPI_Transform aBT(aTrsf);
+  aBT.Perform(aFC);
+  bIsDone=aBT.IsDone();
+  if (!bIsDone) {
+    myErrorStatus=10;
+    return;
+  }
+  //
+  const TopoDS_Shape& aSR=aBT.Shape();
+  //
+  // Refined image face FR 
+  aFR=aSR.EmptyCopied();
+  aItS.Initialize(aSR);
+  for (i=0; aItS.More(); aItS.Next(),++i) {
+    const TopoDS_Shape& aWR=aItS.Value();
+    if (i) {
+      aBB.Add(aFR, aWR);
+    }
+  }
+  myFaceScaled=*((TopoDS_Face*)&aFR);
+  //
+  // 3. Fill Images, Origins, EdgesScaled
+  aIt.Initialize(myEdges);
+  for (; aIt.More(); aIt.Next()) {
+    const TopoDS_Shape& aE=aIt.Value();
+    aOr=aE.Orientation();
+    //
+    aER=aBT.ModifiedShape(aE);
+    if(aER.IsNull()) {
+      myErrorStatus=11;
+      return;
+    }
+    //
+    aER.Orientation(aOr);
+    myImages.Bind(aE, aER);
+    myOrigins.Bind(aER, aE);
+    //
+    myEdgesScaled.Append(aER);
+  }
+}
diff --git a/src/GEOMAlgo/GEOMAlgo_WESScaler.hxx b/src/GEOMAlgo/GEOMAlgo_WESScaler.hxx
new file mode 100644 (file)
index 0000000..3609c6c
--- /dev/null
@@ -0,0 +1,168 @@
+// File generated by CPPExt (Value)
+//
+//                     Copyright (C) 1991 - 2000 by  
+//                      Matra Datavision SA.  All rights reserved.
+//  
+//                     Copyright (C) 2001 - 2004 by
+//                     Open CASCADE SA.  All rights reserved.
+// 
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//  
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#ifndef _GEOMAlgo_WESScaler_HeaderFile
+#define _GEOMAlgo_WESScaler_HeaderFile
+
+#ifndef _Standard_Real_HeaderFile
+#include <Standard_Real.hxx>
+#endif
+#ifndef _TopoDS_Face_HeaderFile
+#include <TopoDS_Face.hxx>
+#endif
+#ifndef _TopTools_ListOfShape_HeaderFile
+#include <TopTools_ListOfShape.hxx>
+#endif
+#ifndef _GEOMAlgo_DataMapOfOrientedShapeShape_HeaderFile
+#include <GEOMAlgo_DataMapOfOrientedShapeShape.hxx>
+#endif
+#ifndef _TopoDS_Shape_HeaderFile
+#include <TopoDS_Shape.hxx>
+#endif
+#ifndef _GEOMAlgo_Algo_HeaderFile
+#include <GEOMAlgo_Algo.hxx>
+#endif
+class TopoDS_Face;
+class TopTools_ListOfShape;
+class TopoDS_Shape;
+class GEOMAlgo_DataMapOfOrientedShapeShape;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class GEOMAlgo_WESScaler  : public GEOMAlgo_Algo {
+
+public:
+
+    void* operator new(size_t,void* anAddress) 
+      {
+        return anAddress;
+      }
+    void* operator new(size_t size) 
+      { 
+        return Standard::Allocate(size); 
+      }
+    void  operator delete(void *anAddress) 
+      { 
+        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+      }
+ // Methods PUBLIC
+ // 
+
+//! Empty constructor <br>
+Standard_EXPORT GEOMAlgo_WESScaler();
+Standard_EXPORT virtual ~GEOMAlgo_WESScaler();
+
+
+//! Modifier <br>
+Standard_EXPORT   void SetScale(const Standard_Real aWES) ;
+
+
+//! Selector <br>
+Standard_EXPORT   Standard_Real Scale() const;
+
+
+Standard_EXPORT   void SetFace(const TopoDS_Face& aF) ;
+
+
+Standard_EXPORT  const TopoDS_Face& Face() const;
+
+
+Standard_EXPORT   void SetEdges(const TopTools_ListOfShape& aLE) ;
+
+
+Standard_EXPORT  const TopTools_ListOfShape& Edges() const;
+
+//!  Performs the algorithm <br>
+Standard_EXPORT virtual  void Perform() ;
+
+
+Standard_EXPORT  const TopoDS_Face& FaceScaled() const;
+
+
+Standard_EXPORT  const TopTools_ListOfShape& EdgesScaled() const;
+
+
+Standard_EXPORT  const TopoDS_Shape& Image(const TopoDS_Shape& aS) const;
+
+
+Standard_EXPORT  const TopoDS_Shape& Origin(const TopoDS_Shape& aS) const;
+
+
+//! Selector <br>
+Standard_EXPORT  const GEOMAlgo_DataMapOfOrientedShapeShape& Images() const;
+
+
+//! Selector <br>
+Standard_EXPORT  const GEOMAlgo_DataMapOfOrientedShapeShape& Origins() const;
+
+
+
+
+
+protected:
+
+ // Methods PROTECTED
+ // 
+
+//!  Performs the algorithm <br>
+Standard_EXPORT virtual  void CheckData() ;
+
+
+ // Fields PROTECTED
+ //
+Standard_Real myScale;
+TopoDS_Face myFace;
+TopTools_ListOfShape myEdges;
+TopoDS_Face myFaceScaled;
+TopTools_ListOfShape myEdgesScaled;
+GEOMAlgo_DataMapOfOrientedShapeShape myImages;
+GEOMAlgo_DataMapOfOrientedShapeShape myOrigins;
+TopoDS_Shape myShapeTmp;
+
+
+private: 
+
+ // Methods PRIVATE
+ // 
+
+
+ // Fields PRIVATE
+ //
+
+
+};
+
+
+
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
diff --git a/src/GEOMAlgo/GEOMAlgo_WESScaler.ixx b/src/GEOMAlgo/GEOMAlgo_WESScaler.ixx
new file mode 100644 (file)
index 0000000..c30f28e
--- /dev/null
@@ -0,0 +1,26 @@
+// File generated by CPPExt (Value)
+//
+//                     Copyright (C) 1991 - 2000 by  
+//                      Matra Datavision SA.  All rights reserved.
+//  
+//                     Copyright (C) 2001 - 2004 by
+//                     Open CASCADE SA.  All rights reserved.
+// 
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//  
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#include <GEOMAlgo_WESScaler.jxx>
+
+
+
diff --git a/src/GEOMAlgo/GEOMAlgo_WESScaler.jxx b/src/GEOMAlgo/GEOMAlgo_WESScaler.jxx
new file mode 100644 (file)
index 0000000..65dba52
--- /dev/null
@@ -0,0 +1,15 @@
+#ifndef _TopoDS_Face_HeaderFile
+#include <TopoDS_Face.hxx>
+#endif
+#ifndef _TopTools_ListOfShape_HeaderFile
+#include <TopTools_ListOfShape.hxx>
+#endif
+#ifndef _TopoDS_Shape_HeaderFile
+#include <TopoDS_Shape.hxx>
+#endif
+#ifndef _GEOMAlgo_DataMapOfOrientedShapeShape_HeaderFile
+#include <GEOMAlgo_DataMapOfOrientedShapeShape.hxx>
+#endif
+#ifndef _GEOMAlgo_WESScaler_HeaderFile
+#include <GEOMAlgo_WESScaler.hxx>
+#endif
diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx
new file mode 100644 (file)
index 0000000..fea0e61
--- /dev/null
@@ -0,0 +1,74 @@
+// File generated by CPPExt (Transient)
+//
+//                     Copyright (C) 1991 - 2000 by  
+//                      Matra Datavision SA.  All rights reserved.
+//  
+//                     Copyright (C) 2001 - 2004 by
+//                     Open CASCADE SA.  All rights reserved.
+// 
+// This file is part of the Open CASCADE Technology software.
+//
+// This software may be distributed and/or modified under the terms and
+// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
+// and appearing in the file LICENSE included in the packaging of this file.
+//  
+// This software is distributed on an "AS IS" basis, without warranty of any
+// kind, and Open CASCADE SA hereby disclaims all such warranties,
+// including without limitation, any warranties of merchantability, fitness
+// for a particular purpose or non-infringement. Please see the License for
+// the specific terms and conditions governing rights and limitations under the
+// License.
+
+#ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_HeaderFile
+#define _Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_HeaderFile
+
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+
+#ifndef _Handle_TCollection_MapNode_HeaderFile
+#include <Handle_TCollection_MapNode.hxx>
+#endif
+
+class Standard_Transient;
+class Handle_Standard_Type;
+class Handle(TCollection_MapNode);
+class GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape;
+Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape);
+
+class Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape) : public Handle(TCollection_MapNode) {
+  public:
+    Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape)():Handle(TCollection_MapNode)() {} 
+    Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape)(const Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape)& aHandle) : Handle(TCollection_MapNode)(aHandle) 
+     {
+     }
+
+    Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape)(const GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape* anItem) : Handle(TCollection_MapNode)((TCollection_MapNode *)anItem) 
+     {
+     }
+
+    Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape)& operator=(const Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape)& aHandle)
+     {
+      Assign(aHandle.Access());
+      return *this;
+     }
+
+    Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape)& operator=(const GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape* anItem)
+     {
+      Assign((Standard_Transient *)anItem);
+      return *this;
+     }
+
+    GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape* operator->() const
+     {
+      return (GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape *)ControlAccess();
+     }
+
+//   Standard_EXPORT ~Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape)();
+   Standard_EXPORT static const Handle(GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape) DownCast(const Handle(Standard_Transient)& AnObject);
+};
+#endif
index 597d6d5c69a8eed340ec5f034a2a388bf4fdaadf..3372a1ed38d78ac7c2fb0f36ef56f01ec659071f 100644 (file)
 #
 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
-
+#
 #  GEOM GEOMAlgo : tools for Glue Faces algorithm
 #  File   : Makefile.in
 #  Author : Julia DOROVSKIKH
 #  Modified by : Alexander BORODIN (OCN) - autotools usage
 #  Module : GEOM
 #  $Header$
-#
+
 include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 # Libraries targets
@@ -51,20 +51,27 @@ dist_libGEOMAlgo_la_SOURCES =                       \
        GEOMAlgo_BuilderTools.cxx               \
        GEOMAlgo_ClsfBox.cxx                    \
        GEOMAlgo_Clsf.cxx                       \
+       GEOMAlgo_ClsfSolid.cxx                  \
        GEOMAlgo_ClsfSurf.cxx                   \
        GEOMAlgo_CoupleOfShapes.cxx             \
+       GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape_0.cxx     \
        GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger_0.cxx         \
+       GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_0.cxx      \
        GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape_0.cxx        \
        GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal_0.cxx              \
        GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet_0.cxx          \
+       GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape_0.cxx         \
        GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_0.cxx             \
+       GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_0.cxx          \
        GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_0.cxx            \
        GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_0.cxx                  \
        GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_0.cxx              \
-       GEOMAlgo_DataMapOfPassKeyInteger_0.cxx  \
-       GEOMAlgo_DataMapOfRealListOfShape_0.cxx \
-       GEOMAlgo_DataMapOfShapeReal_0.cxx       \
-       GEOMAlgo_DataMapOfShapeShapeSet_0.cxx   \
+       GEOMAlgo_DataMapOfOrientedShapeShape_0.cxx      \
+       GEOMAlgo_DataMapOfPassKeyInteger_0.cxx          \
+       GEOMAlgo_DataMapOfPassKeyShapeShape_0.cxx       \
+       GEOMAlgo_DataMapOfRealListOfShape_0.cxx         \
+       GEOMAlgo_DataMapOfShapeReal_0.cxx               \
+       GEOMAlgo_DataMapOfShapeShapeSet_0.cxx           \
        GEOMAlgo_FinderShapeOn1.cxx             \
        GEOMAlgo_FinderShapeOn2.cxx             \
        GEOMAlgo_FinderShapeOn.cxx              \
@@ -76,13 +83,15 @@ dist_libGEOMAlgo_la_SOURCES =                       \
        GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx                 \
        GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_0.cxx           \
        GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_0.cxx      \
-       GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx     \
-       GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_0.cxx   \
-       GEOMAlgo_IndexedDataMapOfIntegerShape_0.cxx                     \
-       GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_0.cxx               \
-       GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_0.cxx          \
-       GEOMAlgo_IndexedDataMapOfShapeBox_0.cxx                         \
-       GEOMAlgo_IndexedDataMapOfShapeState_0.cxx                       \
+       GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx             \
+       GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_0.cxx       \
+       GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_0.cxx           \
+       GEOMAlgo_IndexedDataMapOfIntegerShape_0.cxx                             \
+       GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_0.cxx                       \
+       GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_0.cxx                  \
+       GEOMAlgo_IndexedDataMapOfShapeBox_0.cxx                                 \
+       GEOMAlgo_IndexedDataMapOfShapeShapeInfo_0.cxx                           \
+       GEOMAlgo_IndexedDataMapOfShapeState_0.cxx                               \
        GEOMAlgo_ListIteratorOfListOfCoupleOfShapes_0.cxx               \
        GEOMAlgo_ListIteratorOfListOfPnt_0.cxx                          \
        GEOMAlgo_ListNodeOfListOfCoupleOfShapes_0.cxx                   \
@@ -94,6 +103,9 @@ dist_libGEOMAlgo_la_SOURCES =                        \
        GEOMAlgo_PassKeyShape.cxx               \
        GEOMAlgo_PassKeyShapeMapHasher.cxx      \
        GEOMAlgo_ShapeAlgo.cxx                  \
+       GEOMAlgo_ShapeInfo.cxx                  \
+       GEOMAlgo_ShapeInfoFiller.cxx            \
+       GEOMAlgo_ShapeInfoFiller_1.cxx          \
        GEOMAlgo_ShapeSet.cxx                   \
        GEOMAlgo_ShapeSolid.cxx                 \
        GEOMAlgo_ShellSolid.cxx                 \
@@ -106,18 +118,10 @@ dist_libGEOMAlgo_la_SOURCES =                     \
        GEOMAlgo_Tools_1.cxx                    \
        GEOMAlgo_VertexSolid.cxx                \
        GEOMAlgo_WESCorrector.cxx               \
+       GEOMAlgo_WESScaler.cxx                  \
        GEOMAlgo_WireEdgeSet.cxx                \
        GEOMAlgo_WireSolid.cxx                  \
-       GEOMAlgo_WireSplitter.cxx               \
-       GEOMAlgo_ClsfSolid.cxx                  \
-       GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_0.cxx                  \
-       GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_0.cxx              \
-       GEOMAlgo_DataMapOfPassKeyShapeShape_0.cxx                               \
-       GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_0.cxx       \
-       GEOMAlgo_ShapeInfoFiller_1.cxx                                          \
-       GEOMAlgo_IndexedDataMapOfShapeShapeInfo_0.cxx                           \
-       GEOMAlgo_ShapeInfo.cxx                                                  \
-       GEOMAlgo_ShapeInfoFiller.cxx
+       GEOMAlgo_WireSplitter.cxx
 
 # header files
 salomeinclude_HEADERS =                                        \
@@ -173,24 +177,33 @@ salomeinclude_HEADERS =                                   \
        GEOMAlgo_Clsf.hxx                               \
        GEOMAlgo_Clsf.ixx                               \
        GEOMAlgo_Clsf.jxx                               \
+       GEOMAlgo_ClsfSolid.hxx                          \
+       GEOMAlgo_ClsfSolid.ixx                          \
+       GEOMAlgo_ClsfSolid.jxx                          \
        GEOMAlgo_ClsfSurf.hxx                           \
        GEOMAlgo_ClsfSurf.ixx                           \
        GEOMAlgo_ClsfSurf.jxx                           \
        GEOMAlgo_CoupleOfShapes.hxx                     \
        GEOMAlgo_CoupleOfShapes.ixx                     \
        GEOMAlgo_CoupleOfShapes.jxx                     \
-       GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger.hxx   \
-       GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape.hxx  \
-       GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal.hxx        \
-       GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet.hxx    \
+       GEOMAlgo_DataMapIteratorOfDataMapOfOrientedShapeShape.hxx       \
+       GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger.hxx           \
+       GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx        \
+       GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape.hxx          \
+       GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal.hxx                \
+       GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet.hxx            \
+       GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx   \
        GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx       \
+       GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx    \
        GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx      \
        GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx            \
        GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx        \
-       GEOMAlgo_DataMapOfPassKeyInteger.hxx    \
-       GEOMAlgo_DataMapOfRealListOfShape.hxx   \
-       GEOMAlgo_DataMapOfShapeReal.hxx         \
-       GEOMAlgo_DataMapOfShapeShapeSet.hxx     \
+       GEOMAlgo_DataMapOfOrientedShapeShape.hxx        \
+       GEOMAlgo_DataMapOfPassKeyInteger.hxx            \
+       GEOMAlgo_DataMapOfPassKeyShapeShape.hxx         \
+       GEOMAlgo_DataMapOfRealListOfShape.hxx           \
+       GEOMAlgo_DataMapOfShapeReal.hxx                 \
+       GEOMAlgo_DataMapOfShapeShapeSet.hxx             \
        GEOMAlgo_FinderShapeOn1.ixx             \
        GEOMAlgo_FinderShapeOn1.hxx             \
        GEOMAlgo_FinderShapeOn1.jxx             \
@@ -217,18 +230,24 @@ salomeinclude_HEADERS =                                   \
        GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx             \
        GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx        \
        GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx                       \
+       GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx                 \
        GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx                     \
        GEOMAlgo_IndexedDataMapOfIntegerShape.hxx                                       \
        GEOMAlgo_IndexedDataMapOfPassKeyListOfShape.hxx                                 \
        GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx                            \
        GEOMAlgo_IndexedDataMapOfShapeBox.hxx                                           \
+       GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx                                     \
        GEOMAlgo_IndexedDataMapOfShapeState.hxx                                         \
-       GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx                                 \
-       GEOMAlgo_ListIteratorOfListOfPnt.hxx                                            \
-       GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx                                     \
-       GEOMAlgo_ListNodeOfListOfPnt.hxx        \
-       GEOMAlgo_ListOfCoupleOfShapes.hxx       \
-       GEOMAlgo_ListOfPnt.hxx                  \
+       GEOMAlgo_KindOfBounds.hxx               \
+       GEOMAlgo_KindOfClosed.hxx               \
+       GEOMAlgo_KindOfName.hxx                 \
+       GEOMAlgo_KindOfShape.hxx                \
+       GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx \
+       GEOMAlgo_ListIteratorOfListOfPnt.hxx            \
+       GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx     \
+       GEOMAlgo_ListNodeOfListOfPnt.hxx                \
+       GEOMAlgo_ListOfCoupleOfShapes.hxx               \
+       GEOMAlgo_ListOfPnt.hxx                          \
        GEOMAlgo_PassKey.hxx                    \
        GEOMAlgo_PassKey.ixx                    \
        GEOMAlgo_PassKey.jxx                    \
@@ -245,6 +264,12 @@ salomeinclude_HEADERS =                                    \
        GEOMAlgo_ShapeAlgo.hxx                  \
        GEOMAlgo_ShapeAlgo.ixx                  \
        GEOMAlgo_ShapeAlgo.jxx                  \
+       GEOMAlgo_ShapeInfo.hxx                  \
+       GEOMAlgo_ShapeInfo.ixx                  \
+       GEOMAlgo_ShapeInfo.jxx                  \
+       GEOMAlgo_ShapeInfoFiller.hxx            \
+       GEOMAlgo_ShapeInfoFiller.ixx            \
+       GEOMAlgo_ShapeInfoFiller.jxx            \
        GEOMAlgo_ShapeSet.hxx                   \
        GEOMAlgo_ShapeSet.ixx                   \
        GEOMAlgo_ShapeSet.jxx                   \
@@ -279,6 +304,9 @@ salomeinclude_HEADERS =                                     \
        GEOMAlgo_WESCorrector.hxx               \
        GEOMAlgo_WESCorrector.ixx               \
        GEOMAlgo_WESCorrector.jxx               \
+       GEOMAlgo_WESScaler.hxx                  \
+       GEOMAlgo_WESScaler.ixx                  \
+       GEOMAlgo_WESScaler.jxx                  \
        GEOMAlgo_WireEdgeSet.hxx                \
        GEOMAlgo_WireEdgeSet.ixx                \
        GEOMAlgo_WireEdgeSet.jxx                \
@@ -290,8 +318,11 @@ salomeinclude_HEADERS =                                    \
        GEOMAlgo_WireSplitter.jxx               \
        Handle_GEOMAlgo_ClsfBox.hxx             \
        Handle_GEOMAlgo_Clsf.hxx                \
+       Handle_GEOMAlgo_ClsfSolid.hxx           \
        Handle_GEOMAlgo_ClsfSurf.hxx            \
+       Handle_GEOMAlgo_DataMapNodeOfDataMapOfOrientedShapeShape.hxx                    \
        Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx                        \
+       Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx                     \
        Handle_GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx                       \
        Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx                             \
        Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx                         \
@@ -300,30 +331,10 @@ salomeinclude_HEADERS =                                   \
        Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx      \
        Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx \
        Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx                \
+       Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx          \
        Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx              \
        Handle_GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx                              \
-       Handle_GEOMAlgo_ListNodeOfListOfPnt.hxx                                         \
-       GEOMAlgo_ClsfSolid.hxx                                                          \
-       GEOMAlgo_ClsfSolid.ixx                                                          \
-       GEOMAlgo_ClsfSolid.jxx                                                          \
-       GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx                        \
-       GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx                            \
-       GEOMAlgo_DataMapOfPassKeyShapeShape.hxx                                         \
-       GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx                 \
-       GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx                                     \
-       GEOMAlgo_KindOfBounds.hxx               \
-       GEOMAlgo_KindOfClosed.hxx               \
-       GEOMAlgo_KindOfName.hxx                 \
-       GEOMAlgo_KindOfShape.hxx                \
-       GEOMAlgo_ShapeInfo.hxx                  \
-       GEOMAlgo_ShapeInfo.ixx                  \
-       GEOMAlgo_ShapeInfo.jxx                  \
-       GEOMAlgo_ShapeInfoFiller.hxx            \
-       GEOMAlgo_ShapeInfoFiller.ixx            \
-       GEOMAlgo_ShapeInfoFiller.jxx            \
-       Handle_GEOMAlgo_ClsfSolid.hxx           \
-       Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx                     \
-       Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx
+       Handle_GEOMAlgo_ListNodeOfListOfPnt.hxx
 
 libGEOMAlgo_la_CPPFLAGS =      \
        $(CAS_CPPFLAGS)         \
@@ -384,6 +395,7 @@ CDL_FILES =                                 \
        GEOMAlgo_Tools3D.cdl                    \
        GEOMAlgo_VertexSolid.cdl                \
        GEOMAlgo_WESCorrector.cdl               \
+       GEOMAlgo_WESScaler.cdl                  \
        GEOMAlgo_WireEdgeSet.cdl                \
        GEOMAlgo_WireSolid.cdl                  \
        GEOMAlgo_WireSplitter.cdl