Salome HOME
comp.errors on linux
[modules/hydro.git] / src / HYDROData / HYDROData_ObstacleAltitude.cxx
index 4de8457abf0d86cd71734c8400e8399fb5747dd0..7bc4ed00abad0325cbb0d38a1b02843733338ad0 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
 #include "HYDROData_Object.h"
 #include "HYDROData_Projection.h"
 
+#define _DEVDEBUG_
+#include "HYDRO_trace.hxx"
+#include <QString>
+
 #include <Precision.hxx>
 
 #include <TopoDS_Shape.hxx>
+#include <BRepTools.hxx>
 
-IMPLEMENT_STANDARD_HANDLE(HYDROData_ObstacleAltitude, HYDROData_IAltitudeObject)
 IMPLEMENT_STANDARD_RTTIEXT(HYDROData_ObstacleAltitude, HYDROData_IAltitudeObject)
 
 HYDROData_ObstacleAltitude::HYDROData_ObstacleAltitude()
@@ -42,25 +42,39 @@ HYDROData_ObstacleAltitude::~HYDROData_ObstacleAltitude()
 {
 }
 
-double HYDROData_ObstacleAltitude::GetAltitudeForPoint( const gp_XY& thePoint ) const
+double HYDROData_ObstacleAltitude::GetAltitudeForPoint( const gp_XY& thePoint,
+                                                        int theMethod) const
 {
+  DEBTRACE("HYDROData_ObstacleAltitude::GetAltitudeForPoint");
   double aResAltitude = GetInvalidAltitude();
 
   Handle(HYDROData_Object) anObject =
     Handle(HYDROData_Object)::DownCast( GetFatherObject() );
   if ( anObject.IsNull() )
+  {
+       DEBTRACE("anObject.IsNull()");
     return aResAltitude;
+  }
+//  DEBTRACE("object: " << anObject->GetName().toStdString());
 
   TopoDS_Shape anObjectShape3D = anObject->GetShape3D();
   if ( anObjectShape3D.IsNull() )
+  {
+       DEBTRACE("anObjectShape3D.IsNull()");
     return aResAltitude;
+  }
+//  else
+//  {
+//     DEBTRACE("anObjectShape3D type " << anObjectShape3D.ShapeType());
+//     BRepTools::Write(anObjectShape3D, "digue3D.brep");
+//  }
 
   HYDROData_Make3dMesh aMesher3D( anObjectShape3D, Precision::Intersection() );
 
   gp_Pnt aHighestPoint;
   if ( aMesher3D.GetHighestOriginal( thePoint.X(), thePoint.Y(), aHighestPoint ) )
     aResAltitude = aHighestPoint.Z();
-
+  DEBTRACE("aResAltitude=" << aResAltitude);
   return aResAltitude;
 }