]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
refs #369: points transformation on bathymetry import
authorasl <asl@opencascade.com>
Tue, 12 Aug 2014 04:33:52 +0000 (04:33 +0000)
committerasl <asl@opencascade.com>
Tue, 12 Aug 2014 04:33:52 +0000 (04:33 +0000)
src/HYDROData/HYDROData_Bathymetry.cxx
src/HYDROData/HYDROData_Document.cxx
src/HYDROData/HYDROData_Document.h
src/HYDROGUI/resources/HYDROGUI_msg_en.ts

index dab80218810d7c8049a79d411d7b663359a73f38..e6968d61da9592c097a2b1c21e301943a2a16ebe 100644 (file)
@@ -388,9 +388,19 @@ bool HYDROData_Bathymetry::ImportFromFile( const TCollection_AsciiString& theFil
   // Try to import the file
   if ( aFileSuf == "xyz" )
     aRes = importFromXYZFile( aFile, aPoints );
-    
+
   // Close the file
   aFile.close();
+  
+
+  // Convert from global to local CS
+  Handle_HYDROData_Document aDoc = HYDROData_Document::Document( myLab );
+  AltitudePoints::Iterator anIter( aPoints );
+  for ( ; anIter.More(); anIter.Next() )
+  {
+    AltitudePoint& aPoint = anIter.ChangeValue();
+    aDoc->Transform( aPoint, true );
+  }
 
   if ( aRes )
   {
index 3a460435e4104d3639d364fd8ad5ecaeb54e118e..57cb05992d47bdb70a19ca83417f4d9ff00cbec9 100644 (file)
@@ -705,7 +705,7 @@ void HYDROData_Document::SetLocalCS( const gp_Pnt2d& theLocalCS )
   myLY = theLocalCS.Y();
 }
 
-void HYDROData_Document::Transform( gp_Pnt& thePnt, bool IsToLocalCS ) const
+void HYDROData_Document::Transform( double& X, double& Y, bool IsToLocalCS ) const
 {
   if( myLX < 0 || myLY < 0 )
   {
@@ -714,9 +714,32 @@ void HYDROData_Document::Transform( gp_Pnt& thePnt, bool IsToLocalCS ) const
     aThat->myLX = aLCS.X();
     aThat->myLY = aLCS.Y();
   }
-  double X = IsToLocalCS ? thePnt.X() - myLX : thePnt.X() + myLX;
-  double Y = IsToLocalCS ? thePnt.Y() - myLY : thePnt.Y() + myLY;
+  if( IsToLocalCS )
+  {
+    X -= myLX;
+    Y -= myLY;
+  }
+  else
+  {
+    X += myLX;
+    Y += myLY;
+  }
+}
+
+void HYDROData_Document::Transform( gp_Pnt& thePnt, bool IsToLocalCS ) const
+{
+  double X = thePnt.X();
+  double Y = thePnt.Y();
   double Z = thePnt.Z();
+  Transform( X, Y, IsToLocalCS );
   thePnt = gp_Pnt( X, Y, Z ); 
 }
 
+void HYDROData_Document::Transform( gp_XYZ& thePnt, bool IsToLocalCS ) const
+{
+  double X = thePnt.X();
+  double Y = thePnt.Y();
+  double Z = thePnt.Z();
+  Transform( X, Y, IsToLocalCS );
+  thePnt = gp_XYZ( X, Y, Z ); 
+}
index 7eeca6383d7952e685e1407f74622139fe0fa13c..1274fb9d380a2cf8563501303ce2ff30c1be2398 100644 (file)
@@ -9,6 +9,7 @@
 class QFile;
 class gp_Pnt2d;
 class gp_Pnt;
+class gp_XYZ;
 
 /**
  * Errors that could appear on document open/save actions.
@@ -127,7 +128,9 @@ public:
 
   HYDRODATA_EXPORT gp_Pnt2d GetLocalCS() const;
   HYDRODATA_EXPORT void SetLocalCS( const gp_Pnt2d& );
+  HYDRODATA_EXPORT void Transform( double& X, double& Y, bool IsToLocalCS ) const;
   HYDRODATA_EXPORT void Transform( gp_Pnt& thePnt, bool IsToLocalCS ) const;
+  HYDRODATA_EXPORT void Transform( gp_XYZ& thePnt, bool IsToLocalCS ) const;
 
 public:
 
index 2b0a8a31b73500c4e5bb12acebb684d157946543..574b4ddabb2eb29bb0f6e5c2a2e6650da74b4b87 100644 (file)
@@ -195,10 +195,7 @@ All supported formats (*.brep *.iges *.igs *.step *.stp)</translation>
     </message>
     <message>
       <source>COORDINATES_INFO</source>
-      <translation>
-X: %1, Y: %2
-WX: %3, WY: %4
-      </translation>
+      <translation>Local CS: (%1, %2); Global CS: (%3, %4)</translation>
     </message>
     <message>
       <source>POLYLINE3D_POLYLINE</source>