Salome HOME
PR: merged from V5_1_4rc1
[modules/smesh.git] / src / Controls / SMESH_ControlsDef.hxx
index d692a6e5dc8e3939756d759760fa5bb81766ba02..5849c1f83647b8c058fc40d28d9fa41b50dd6844 100644 (file)
@@ -1,4 +1,4 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//  Copyright (C) 2007-2010  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,6 +19,7 @@
 //
 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 #ifndef _SMESH_CONTROLSDEF_HXX_
 #define _SMESH_CONTROLSDEF_HXX_
 
@@ -46,7 +47,7 @@
 #include "SMESH_Controls.hxx"
 
 #ifdef WNT
- #if defined SMESHCONTROLS_EXPORTS
+ #if defined SMESHCONTROLS_EXPORTS || defined SMESHControls_EXPORTS
   #define SMESHCONTROLS_EXPORT __declspec( dllexport )
  #else
   #define SMESHCONTROLS_EXPORT __declspec( dllimport )
@@ -68,47 +69,40 @@ class gp_Pnt;
 namespace SMESH{
   namespace Controls{
 
-    class SMESHCONTROLS_EXPORT TSequenceOfXYZ: public std::vector<gp_XYZ>
+    class SMESHCONTROLS_EXPORT TSequenceOfXYZ
     {
+      typedef std::vector<gp_XYZ>::size_type size_type;
+
     public:
-      typedef std::vector<gp_XYZ> TSuperClass;
-      TSequenceOfXYZ()
-      {}
+      TSequenceOfXYZ();
 
-      TSequenceOfXYZ(size_type n):
-       TSuperClass(n)
-      {}
+      TSequenceOfXYZ(size_type n);
 
-      TSequenceOfXYZ(size_type n, const value_type& t):
-       TSuperClass(n,t)
-      {}
+      TSequenceOfXYZ(size_type n, const gp_XYZ& t);
 
-      TSequenceOfXYZ(const TSequenceOfXYZ& theSequenceOfXYZ):
-       TSuperClass(theSequenceOfXYZ)
-      {}
+      TSequenceOfXYZ(const TSequenceOfXYZ& theSequenceOfXYZ);
 
       template <class InputIterator>
-      TSequenceOfXYZ(InputIterator theBegin, InputIterator theEnd):
-       TSuperClass(theBegin,theEnd)
-      {}
+      TSequenceOfXYZ(InputIterator theBegin, InputIterator theEnd);
 
-      TSequenceOfXYZ& operator=(const TSequenceOfXYZ& theSequenceOfXYZ){
-       TSuperClass::operator=(theSequenceOfXYZ);
-       return *this;
-      }
+      ~TSequenceOfXYZ();
 
-      reference operator()(size_type n){
-       return TSuperClass::operator[](n-1);
-      }
+      TSequenceOfXYZ& operator=(const TSequenceOfXYZ& theSequenceOfXYZ);
 
-      const_reference operator()(size_type n) const{
-       return TSuperClass::operator[](n-1);
-      }
+      gp_XYZ& operator()(size_type n);
 
-    private:
-      reference operator[](size_type n);
+      const gp_XYZ& operator()(size_type n) const;
+
+      void clear();
 
-      const_reference operator[](size_type n) const;
+      void reserve(size_type n);
+
+      void push_back(const gp_XYZ& v);
+
+      size_type size() const;
+
+    private:
+      std::vector<gp_XYZ> myArray;
     };
 
     /*
@@ -139,9 +133,9 @@ namespace SMESH{
       void  SetPrecision( const long thePrecision );
       
       bool GetPoints(const int theId,
-                    TSequenceOfXYZ& theRes) const;
+                     TSequenceOfXYZ& theRes) const;
       static bool GetPoints(const SMDS_MeshElement* theElem,
-                           TSequenceOfXYZ& theRes);
+                            TSequenceOfXYZ& theRes);
     protected:
       const SMDS_Mesh* myMesh;
       const SMDS_MeshElement* myCurrElement;
@@ -270,10 +264,10 @@ namespace SMESH{
       virtual double GetBadRate( double Value, int nbNodes ) const;
       virtual SMDSAbs_ElementType GetType() const;
       struct Value{
-       double myLength;
-       long myPntId[2];
-       Value(double theLength, long thePntId1, long thePntId2);
-       bool operator<(const Value& x) const;
+        double myLength;
+        long myPntId[2];
+        Value(double theLength, long thePntId1, long thePntId2);
+        bool operator<(const Value& x) const;
       };
       typedef std::set<Value> TValues;
       void GetValues(TValues& theValues);
@@ -303,9 +297,9 @@ namespace SMESH{
       virtual double GetBadRate( double Value, int nbNodes ) const;
       virtual SMDSAbs_ElementType GetType() const;
       struct Value{
-       long myPntId[2];
-       Value(long thePntId1, long thePntId2);
-       bool operator<(const Value& x) const;
+        long myPntId[2];
+        Value(long thePntId1, long thePntId2);
+        bool operator<(const Value& x) const;
       };
       typedef std::map<Value,int> MValues;
 
@@ -371,10 +365,10 @@ namespace SMESH{
       static bool IsFreeEdge( const SMDS_MeshNode** theNodes, const int theFaceId  );
       typedef long TElemId;
       struct Border{
-       TElemId myElemId;
-       TElemId myPntId[2];
-       Border(long theElemId, long thePntId1, long thePntId2);
-       bool operator<(const Border& x) const;
+        TElemId myElemId;
+        TElemId myPntId[2];
+        Border(long theElemId, long thePntId1, long thePntId2);
+        bool operator<(const Border& x) const;
       };
       typedef std::set<Border> TBorders;
       void GetBoreders(TBorders& theBorders);
@@ -804,13 +798,13 @@ namespace SMESH{
       virtual
       void
       GetElementsId( const SMDS_Mesh* theMesh,
-                    TIdSequence& theSequence );
+                     TIdSequence& theSequence );
 
       static
       void
       GetElementsId( const SMDS_Mesh* theMesh,
-                    PredicatePtr thePredicate,
-                    TIdSequence& theSequence );
+                     PredicatePtr thePredicate,
+                     TIdSequence& theSequence );
       
     protected:
       PredicatePtr myPredicate;