Salome HOME
Fix for the bug #37: Error when import image with format not supported.
[modules/hydro.git] / src / HYDROPy / HYDROData_Image.sip
index b79f0f74dad1c4b50ce1861fb6130983b0383a18..ca4ded28ee6a12c7223ea47dd03f6d688698a82d 100644 (file)
 #include <HYDROData_Image.h>
 %End
 
-class HYDROData_Image : HYDROData_Object
+class HYDROData_Image : HYDROData_Entity
 {
 
 %ConvertToSubClassCode
-    if ( !Handle(HYDROData_Image)::DownCast( sipCpp ).IsNull() )
-      sipClass = sipClass_HYDROData_Image;
-    else
-      sipClass = NULL;
+    switch ( sipCpp->GetKind() )
+    {
+      case KIND_IMAGE:
+        sipClass = sipClass_HYDROData_Image;
+        break;
+
+      default:
+        // We don't recognise the type.
+        sipClass = NULL;
+    }
 %End
 
 %TypeHeaderCode
 #include <HYDROData_Image.h>
 %End
 
-public:
-
-  const ObjectKind           GetKind() const;
-
 public:      
 
   /**
@@ -74,44 +76,78 @@ public:
 
   /**
    * Stores the image transformation points (3 input + 3 output)
-   * \param thePointAIn input point A
-   * \param thePointBIn input point B
-   * \param thePointCIn input point C
-   * \param thePointAOut output point A
-   * \param thePointBOut output point B
-   * \param thePointCOut output point C
+   * \param thePointA input point A
+   * \param thePointB input point B
+   * \param thePointC input point C
+   * \param theLambertPointA output point A in Lambert93 coordinates
+   * \param theLambertPointB output point B in Lambert93 coordinates
+   * \param theLambertPointC output point C in Lambert93 coordinates
+   * \param theCartesianPointA output point A in Cartesian coordinates
+   * \param theCartesianPointB output point B in Cartesian coordinates
+   * \param theCartesianPointC output point C in Cartesian coordinates
    */
-  void                       SetTrsfPoints( const QPoint&  thePointAIn,
-                                            const QPoint&  thePointBIn,
-                                            const QPoint&  thePointCIn,
-                                            const QPointF& thePointAOut,
-                                            const QPointF& thePointBOut,
-                                            const QPointF& thePointCOut );
+  void                       SetTrsfPoints( const QPoint& thePointA,
+                                            const QPoint& thePointB,
+                                            const QPoint& thePointC,
+                                            const QPointF& theLambertPointA,
+                                            const QPointF& theLambertPointB,
+                                            const QPointF& theLambertPointC,
+                                            const QPointF& theCartesianPointA,
+                                            const QPointF& theCartesianPointB,
+                                            const QPointF& theCartesianPointC );
 
   /**
    * Returns the image transformation points (3 input + 3 output)
-   * \param thePointAIn input point A
-   * \param thePointBIn input point B
-   * \param thePointCIn input point C
-   * \param thePointAOut output point A
-   * \param thePointBOut output point B
-   * \param thePointCOut output point C
+   * \param thePointA input point A
+   * \param thePointB input point B
+   * \param thePointC input point C
+   * \param theLambertPointA output point A in Lambert93 coordinates
+   * \param theLambertPointB output point B in Lambert93 coordinates
+   * \param theLambertPointC output point C in Lambert93 coordinates
+   * \param theCartesianPointA output point A in Cartesian coordinates
+   * \param theCartesianPointB output point B in Cartesian coordinates
+   * \param theCartesianPointC output point C in Cartesian coordinates
+   */
+  void                       TrsfPoints( QPoint& thePointA,
+                                         QPoint& thePointB,
+                                         QPoint& thePointC,
+                                         QPointF& theLambertPointA,
+                                         QPointF& theLambertPointB,
+                                         QPointF& theLambertPointC,
+                                         QPointF& theCartesianPointA,
+                                         QPointF& theCartesianPointB,
+                                         QPointF& theCartesianPointC ) const;
+
+  /**
+   * Returns true if the image has stored transformation points
+   */
+  bool                       HasTrsfPoints() const;
+
+  /**
+   * Stores the transformation mode (0 - Lambert93, 1 - Cartesian)
    */
-  void                       TrsfPoints( QPoint&  thePointAIn,
-                                         QPoint&  thePointBIn,
-                                         QPoint&  thePointCIn,
-                                         QPointF& thePointAOut,
-                                         QPointF& thePointBOut,
-                                         QPointF& thePointCOut );
+  void                       SetTrsfMode(const int theMode);
+
+  /**
+   * Returns the transformation mode (0 - Lambert93, 1 - Cartesian)
+   */
+  int                        TrsfMode() const;
+
+
+  /**
+   * Returns the number of referenced images
+   * \return zero if there is no references
+   */
+  int                        NbReferences();
 
   /**
    * Appends reference to other image.
    * \param theReferenced the image referenced by this
    */
-  void AppendReference( HYDROData_Object theReferenced ) [void (Handle_HYDROData_Object)];
+  void AppendReference( HYDROData_Entity theReferenced ) [void (Handle_HYDROData_Entity)];
   %MethodCode
 
-    Handle(HYDROData_Object) aRefObj = createHandle( a0 );
+    Handle(HYDROData_Entity) aRefObj = createHandle( a0 );
     if ( !aRefObj.IsNull() )
     {
       Py_BEGIN_ALLOW_THREADS
@@ -122,21 +158,15 @@ public:
 
   %End
 
-  /**
-   * Returns the number of referenced images
-   * \return zero if there is no references
-   */
-  int                        NbReferences();
-
   /**
    * Returns reference by index.
    * \param theIndex number of reference [0; NbReference)
    * \returns the referenced image, or Null if index is invalid
    */
-  HYDROData_Object Reference( const int theIndex ) const [Handle_HYDROData_Object (const int)];
+  HYDROData_Entity Reference( const int theIndex ) const [Handle_HYDROData_Entity (const int)];
   %MethodCode
 
-    Handle(HYDROData_Object) aRefObj;
+    Handle(HYDROData_Entity) aRefObj;
     
     Py_BEGIN_ALLOW_THREADS
     aRefObj = sipSelfWasArg ? sipCpp->HYDROData_Image::Reference( a0 ) : 
@@ -153,10 +183,10 @@ public:
    * \param theIndex number of reference [0; NbReference]
    * \param theReferenced the image referenced by this
    */
-  void ChangeReference( const int theIndex, HYDROData_Object theReferenced ) [void (const int, Handle_HYDROData_Object)];
+  void ChangeReference( const int theIndex, HYDROData_Entity theReferenced ) [void (const int, Handle_HYDROData_Entity)];
   %MethodCode
 
-    Handle(HYDROData_Object) aRefObj = createHandle( a1 );
+    Handle(HYDROData_Entity) aRefObj = createHandle( a1 );
     if ( !aRefObj.IsNull() )
     {
       Py_BEGIN_ALLOW_THREADS