Salome HOME
porting on linux
[modules/hydro.git] / src / HYDROData / HYDROData_Tool.h
index eab582db707ce1b6616b4759d51671c6a1b05c9a..e8fd7967bf0c23ad11f9f511a346fc59b6a5c53e 100644 (file)
@@ -1,8 +1,4 @@
-// Copyright (C) 2007-2015  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
-//
+// Copyright (C) 2014-2015  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
 #define HYDROData_Tool_HeaderFile
 
 #include "HYDROData.h"
-#include "HYDROData_Entity.h"
-
-#include <Precision.hxx>
-
-#include <TopAbs_ShapeEnum.hxx>
-
-#include <QString>
 #include <QStringList>
-#include <gp_XY.hxx>
-#include <TopoDS_Face.hxx>
+#include <Precision.hxx>
 
+class Handle_HYDROData_Document;
+class Handle_HYDROData_Entity;
+class HYDROData_SequenceOfObjects;
+class MapOfTreatedObjects;
+class gp_XY;
+class QColor;
 class QFile;
+class TCollection_ExtendedString;
+#ifdef WIN32
+  enum TopAbs_State;
+#else
+  #include <TopAbs_State.hxx>
+#endif
+class TopoDS_Edge;
+class TopoDS_Face;
 class TopoDS_Shape;
+class TopoDS_Wire;
 class TopTools_SequenceOfShape;
-class Handle(HYDROData_Document);
+class Quantity_Color;
 
 class HYDRODATA_EXPORT HYDROData_Tool {
 
@@ -48,12 +51,6 @@ public:
                                                             const QStringList& theStrings,
                                                             const QString&     theSep = "\n" );
 
-  /**
-   * Enables "MustBeUpdated" flag for objects that are depended on "MustBeUpdated" objects.
-   * \param theDoc document where this operation is performed
-   */
-  static void                           SetMustBeUpdatedObjects( const Handle(HYDROData_Document)& theDoc );
-
   /**
    * \brief Generate name for new object.
    * \param theDoc document
@@ -62,17 +59,17 @@ public:
    * \param theIsTryToUsePurePrefix if true - the prefix will be returned if the name equal to the prefix is not busy
    * \return generated name
    */
-  static QString                        GenerateObjectName( const Handle(HYDROData_Document)& theDoc,
-                                                            const QString&                    thePrefix,
-                                                            const QStringList&                theUsedNames = QStringList(),
-                                                            const bool                        theIsTryToUsePurePrefix = false );
+  static QString                        GenerateObjectName( const Handle_HYDROData_Document& theDoc,
+                                                            const QString&                   thePrefix,
+                                                            const QStringList&               theUsedNames = QStringList(),
+                                                            const bool                       theIsTryToUsePurePrefix = false );
 
   /**
    * \brief Checks the type of object.
    * \param theObject object to check
    * \return true if object is geometry object
    */
-  static bool                           IsGeometryObject( const Handle(HYDROData_Entity)& theObject );
+  static bool                           IsGeometryObject( const Handle_HYDROData_Entity& theObject );
 
   /**
    * \brief Updates the child object name.
@@ -82,7 +79,7 @@ public:
    */
   static void                           UpdateChildObjectName( const QString&                  theOldStr,
                                                                const QString&                  theNewStr,
-                                                               const Handle(HYDROData_Entity)& theObject );
+                                                               const Handle_HYDROData_Entity& theObject );
 
 
   /**
@@ -99,6 +96,34 @@ public:
 
  static TopAbs_State                    ComputePointState( const gp_XY& thePnt2d, 
                                                               const TopoDS_Face& theFace );
+
+  static double GetAltitudeForEdge( const TopoDS_Edge& theEdge,
+                                    const gp_XY& thePoint,
+                                    double theParameterTolerance,
+                                    double theSquareDistanceTolerance,
+                                    double theInvalidAltitude );
+  static double GetAltitudeForWire( const TopoDS_Wire& theWire,
+                                    const gp_XY& thePoint,
+                                    double theParameterTolerance,
+                                    double theSquareDistanceTolerance,
+                                    double theInvalidAltitude );
+
+  /**
+   * \brief Returns the first shape from the group.
+   * \param theGroups the list of groups
+   * \param theGroupId the group id
+   */
+  static TopoDS_Shape getFirstShapeFromGroup( const HYDROData_SequenceOfObjects& theGroups,
+                                              const int                          theGroupId );
+
+  static TCollection_ExtendedString toExtString( const QString& );
+  static QString                    toQString( const TCollection_ExtendedString& );
+
+  static Quantity_Color toOccColor( const QColor& );
+  static QColor toQtColor( const Quantity_Color& );
+
+  static bool IsNan( double theValue );
+  static bool IsInf( double theValue );
 };
 
 inline bool ValuesEquals( const double& theFirst, const double& theSecond )
@@ -117,8 +142,12 @@ inline  bool ValuesLessEquals( const double& theFirst, const double& theSecond )
   return theFirst <= theSecond || ValuesEquals( theFirst, theSecond );
 }
 
-
-
+HYDRODATA_EXPORT std::ostream& operator<<( std::ostream& theStream, const QString& theText );
+HYDRODATA_EXPORT std::ostream& operator<<( std::ostream& theStream, const QColor& theText );
+HYDRODATA_EXPORT std::ostream& operator<<( std::ostream& theStream, const TopoDS_Shape& theShape );
+HYDRODATA_EXPORT std::ostream& operator<<( std::ostream& theStream, const TopoDS_Face& theFace );
+HYDRODATA_EXPORT bool operator == ( const gp_XY& thePoint1, const gp_XY& thePoint2 );
+HYDRODATA_EXPORT std::ostream& operator<<( std::ostream& theStream, const gp_XY& theXY );
 
 #endif