#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 {
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
* \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.
*/
static void UpdateChildObjectName( const QString& theOldStr,
const QString& theNewStr,
- const Handle(HYDROData_Entity)& theObject );
+ const Handle_HYDROData_Entity& theObject );
/**
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 )
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