Salome HOME
Porting on OCCT 7.0 and Qt 5. Make compilable version.
[modules/hydro.git] / src / HYDROData / HYDROData_Bathymetry.cxx
index d3a6d8447ef41dcc1673082220297765626b5119..451234725c11a00444054287e044468dfef271bd 100644 (file)
@@ -40,8 +40,6 @@
 #include <vtkPolyData.h>
 #include <vtkSmartPointer.h>
 #include <vtkIdList.h>
-#include <vtkInformation.h>
-#include <vtkExecutive.h>
 
 #include <iostream>
 
@@ -55,7 +53,6 @@
 #define _DEVDEBUG_
 #include "HYDRO_trace.hxx"
 
-IMPLEMENT_STANDARD_HANDLE(HYDROData_Bathymetry, HYDROData_IAltitudeObject)
 IMPLEMENT_STANDARD_RTTIEXT(HYDROData_Bathymetry, HYDROData_IAltitudeObject)
 
 //HYDROData_QuadtreeNode* HYDROData_Bathymetry::myQuadtree = 0;
@@ -63,53 +60,13 @@ std::map<int, HYDROData_QuadtreeNode*> HYDROData_Bathymetry::myQuadtrees;
 std::map<int, vtkPolyData*> HYDROData_Bathymetry::myDelaunay2D;
 
 
-hydroDelaunay2D* hydroDelaunay2D::New()
-{
-  DEBTRACE("hydroDelaunay2D::New()");
-  return new hydroDelaunay2D();
-}
-hydroDelaunay2D::hydroDelaunay2D() :
-    vtkDelaunay2D()
-{
-  DEBTRACE("hydroDelaunay2D");
-}
-
-hydroDelaunay2D::~hydroDelaunay2D()
-{
-  DEBTRACE("~hydroDelaunay2D");
-}
-
-int hydroDelaunay2D::RequestData(vtkInformation *request , vtkInformationVector **inv, vtkInformationVector *outv)
-{
-  DEBTRACE("hydroDelaunay2D::RequestData");
-  vtkDelaunay2D::RequestData(request, inv, outv);
-}
-
-int hydroDelaunay2D::ProcessRequest(vtkInformation *request , vtkInformationVector **inv, vtkInformationVector *outv)
-{
-  DEBTRACE("hydroDelaunay2D::ProcessRequest");
-  vtkDelaunay2D::ProcessRequest(request, inv, outv);
-}
-
-
 HYDROData_Bathymetry::HYDROData_Bathymetry()
 : HYDROData_IAltitudeObject()
 {
-  //DEBTRACE("HYDROData_Bathymetry constructor start " << this);
-//  if (! myQuadtree)
-//    myQuadtree = new HYDROData_QuadtreeNode(0, 30, 5, 0.);
-  //DEBTRACE("HYDROData_Bathymetry constructor end   " << this);
 }
 
 HYDROData_Bathymetry::~HYDROData_Bathymetry()
 {
-  //DEBTRACE("HYDROData_Bathymetry destructor start " << this);
-//  if (myQuadtree)
-//    delete myQuadtree;
-//     Nodes_3D::iterator it = myListOfNodes.begin();
-//     for( ; it != myListOfNodes.end(); ++it)
-//             delete *it;
-//    myListOfNodes.clear();
 }
 
 QStringList HYDROData_Bathymetry::DumpToPython( const QString& thePyScriptPath,
@@ -247,11 +204,9 @@ vtkPolyData* HYDROData_Bathymetry::GetVtkDelaunay2D() const
       TDF_Label aLabel = myLab.FindChild(DataTag_AltitudePoints, false);
       if (aLabel.IsNull())
         return 0;
-      DEBTRACE("---");
       Handle(TDataStd_RealArray) aCoordsArray;
       if (!aLabel.FindAttribute(TDataStd_RealArray::GetID(), aCoordsArray))
         return 0;
-      DEBTRACE("---");
 
       vtkPoints *points = vtkPoints::New();
       points->Allocate(aCoordsArray->Upper() +1);
@@ -269,39 +224,12 @@ vtkPolyData* HYDROData_Bathymetry::GetVtkDelaunay2D() const
       profile->SetPoints(points);
       DEBTRACE("Number of Points: "<< points->GetNumberOfPoints());
 
-      hydroDelaunay2D* delaunay2D = hydroDelaunay2D::New();
-      delaunay2D->GetInputPortInformation(0)->Print(std::cerr);
-      DEBTRACE("set the input data");
+      vtkDelaunay2D* delaunay2D = vtkDelaunay2D::New();
       delaunay2D->SetInputData(profile);
-      delaunay2D->GetInputPortInformation(0)->Print(std::cerr);
-      delaunay2D->GetOutputPortInformation(0)->Print(std::cerr);
-      DEBTRACE("---");
-      delaunay2D->GetOutputInformation(0)->Print(std::cerr);
-      delaunay2D->GetExecutive()->GetOutputInformation(0)->Print(std::cerr);
-      DEBTRACE("---");
-      vtkInformationVector** inv = delaunay2D->GetExecutive()->GetInputInformation();
-      vtkInformationVector* outv = delaunay2D->GetExecutive()->GetOutputInformation();
-      delaunay2D->GetExecutive()->GetInputInformation(0,0)->Print(std::cerr);
-      delaunay2D->GetExecutive()->GetOutputInformation(0)->Print(std::cerr);
-      vtkInformation* request = vtkInformation::New();
-
-      //delaunay2D->ProcessRequest(request, inv,outv);
-
-      delaunay2D->GetOutputPortInformation(0)->Print(std::cerr);
-      delaunay2D->GetExecutive()->GetInputInformation(0,0)->Print(std::cerr);
-      delaunay2D->GetExecutive()->GetOutputInformation(0)->Print(std::cerr);
-
-      DEBTRACE("---");
       delaunay2D->Update();
-
-      DEBTRACE("---");
-      delaunay2D->UpdateDataObject();
-
       vtkPolyData* data = delaunay2D->GetOutput();
-
       data->BuildLinks();
       myDelaunay2D[labkey] = data;
-      DEBTRACE("---");
       return data;
     }
   else
@@ -421,9 +349,9 @@ bool interpolZtriangle(const gp_XY& point, vtkPolyData* delaunay2D, vtkIdList* t
   return false;
 }
 
-double HYDROData_Bathymetry::GetAltitudeForPoint(const gp_XY& thePoint) const
+double HYDROData_Bathymetry::GetAltitudeForPoint(const gp_XY& thePoint, int theMethod) const
 {
-  DEBTRACE("GetAltitudeForPoint p(" << thePoint.X() << ", " << thePoint.Y() << ")");
+  DEBTRACE("GetAltitudeForPoint p(" << thePoint.X() << ", " << thePoint.Y() << "), interpolation method: " << theMethod);
   double anInvalidAltitude = GetInvalidAltitude();
   double aResAltitude = anInvalidAltitude;
 
@@ -455,7 +383,9 @@ double HYDROData_Bathymetry::GetAltitudeForPoint(const gp_XY& thePoint) const
   //     - get the triangle containing the point in the Delaunay2D mesh,
   //     - interpolate altitude
 
-  bool isBathyInterpolRequired = true;
+  bool isBathyInterpolRequired = false;
+  if (theMethod)
+    isBathyInterpolRequired =true;
   if (isBathyInterpolRequired)
     {
       vtkPolyData* aDelaunay2D = GetVtkDelaunay2D();
@@ -572,7 +502,7 @@ bool HYDROData_Bathymetry::ImportFromFile( const TCollection_AsciiString& theFil
   
 
   // Convert from global to local CS
-  Handle_HYDROData_Document aDoc = HYDROData_Document::Document( myLab );
+  Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( myLab );
   AltitudePoints::Iterator anIter( aPoints );
   for ( ; anIter.More(); anIter.Next() )
   {
@@ -745,11 +675,11 @@ bool HYDROData_Bathymetry::importFromASCFile( QFile&          theFile,
 }
 
 
-Handle_HYDROData_PolylineXY HYDROData_Bathymetry::CreateBoundaryPolyline() const
+Handle(HYDROData_PolylineXY) HYDROData_Bathymetry::CreateBoundaryPolyline() const
 {
   Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab );
-  Handle_HYDROData_PolylineXY aResult = 
-    Handle_HYDROData_PolylineXY::DownCast( aDocument->CreateObject( KIND_POLYLINEXY ) );
+  Handle(HYDROData_PolylineXY) aResult = 
+    Handle(HYDROData_PolylineXY)::DownCast( aDocument->CreateObject( KIND_POLYLINEXY ) );
 
   if( aResult.IsNull() )
     return aResult;