]> Creatis software - clitk.git/blobdiff - utilities/CxImage/ximalyr.cpp
cosmetic
[clitk.git] / utilities / CxImage / ximalyr.cpp
index 0b409c2ee9a56a090444395760a15c5deec0e092..18363639849f22b500a63785bb667777ad58ef57 100644 (file)
-// xImaLyr.cpp : Layers functions\r
-/* 21/04/2003 v1.00 - Davide Pizzolato - www.xdp.it\r
- * CxImage version 6.0.0 02/Feb/2008\r
- */\r
-\r
-#include "ximage.h"\r
-\r
-#if CXIMAGE_SUPPORT_LAYERS\r
-\r
-////////////////////////////////////////////////////////////////////////////////\r
-/**\r
- * If the object is an internal layer, GetParent return its parent in the hierarchy.\r
- */\r
-CxImage* CxImage::GetParent() const\r
-{\r
-       return info.pParent;\r
-}\r
-////////////////////////////////////////////////////////////////////////////////\r
-/**\r
- * Number of layers allocated directly by the object.\r
- */\r
-long CxImage::GetNumLayers() const\r
-{\r
-       return info.nNumLayers;\r
-}\r
-////////////////////////////////////////////////////////////////////////////////\r
-/**\r
- * Creates an empty layer. If position is less than 0, the new layer will be placed in the last position\r
- */\r
-bool CxImage::LayerCreate(long position)\r
-{\r
-       if ( position < 0 || position > info.nNumLayers ) position = info.nNumLayers;\r
-\r
-       CxImage** ptmp = new CxImage*[info.nNumLayers + 1];\r
-       if (ptmp==0) return false;\r
-\r
-       int i=0;\r
-       for (int n=0; n<info.nNumLayers; n++){\r
-               if (position == n){\r
-                       ptmp[n] = new CxImage();\r
-                       i=1;\r
-               }\r
-               ptmp[n+i]=ppLayers[n];\r
-       }\r
-       if (i==0) ptmp[info.nNumLayers] = new CxImage();\r
-\r
-       if (ptmp[position]){\r
-               ptmp[position]->info.pParent = this;\r
-       } else {\r
-               free(ptmp);\r
-               return false;\r
-       }\r
-\r
-       info.nNumLayers++;\r
-       delete [] ppLayers;\r
-       ppLayers = ptmp;\r
-       return true;\r
-}\r
-////////////////////////////////////////////////////////////////////////////////\r
-/**\r
- * Deletes a layer. If position is less than 0, the last layer will be deleted\r
- */\r
-bool CxImage::LayerDelete(long position)\r
-{\r
-       if ( position >= info.nNumLayers ) return false;\r
-       if ( position < 0) position = info.nNumLayers - 1;\r
-       if ( position < 0) return false;\r
-\r
-       if (info.nNumLayers>1){\r
-\r
-               CxImage** ptmp = new CxImage*[info.nNumLayers - 1];\r
-               if (ptmp==0) return false;\r
-\r
-               int i=0;\r
-               for (int n=0; n<info.nNumLayers; n++){\r
-                       if (position == n){\r
-                               delete ppLayers[n];\r
-                               i=1;\r
-                       }\r
-                       ptmp[n]=ppLayers[n+i];\r
-               }\r
-\r
-               info.nNumLayers--;\r
-               delete [] ppLayers;\r
-               ppLayers = ptmp;\r
-\r
-       } else {\r
-               delete ppLayers[0];\r
-               delete [] ppLayers;\r
-               ppLayers = 0;\r
-               info.nNumLayers = 0;\r
-       }\r
-       return true;\r
-}\r
-////////////////////////////////////////////////////////////////////////////////\r
-void CxImage::LayerDeleteAll()\r
-{\r
-       if (ppLayers) { \r
-               for(long n=0; n<info.nNumLayers;n++){ delete ppLayers[n]; }\r
-               delete [] ppLayers; ppLayers=0; info.nNumLayers = 0;\r
-       }\r
-}\r
-////////////////////////////////////////////////////////////////////////////////\r
-/**\r
- * Returns a pointer to a layer. If position is less than 0, the last layer will be returned\r
- */\r
-CxImage* CxImage::GetLayer(long position)\r
-{\r
-       if ( ppLayers == NULL) return NULL;\r
-       if ( info.nNumLayers == 0) return NULL;\r
-       if ( position >= info.nNumLayers ) return NULL;\r
-       if ( position < 0) position = info.nNumLayers - 1;\r
-       return ppLayers[position];\r
-}\r
-////////////////////////////////////////////////////////////////////////////////\r
-#endif //CXIMAGE_SUPPORT_LAYERS\r
+// xImaLyr.cpp : Layers functions
+/* 21/04/2003 v1.00 - Davide Pizzolato - www.xdp.it
+ * CxImage version 6.0.0 02/Feb/2008
+ */
+
+#include "ximage.h"
+
+#if CXIMAGE_SUPPORT_LAYERS
+
+////////////////////////////////////////////////////////////////////////////////
+/**
+ * If the object is an internal layer, GetParent return its parent in the hierarchy.
+ */
+CxImage* CxImage::GetParent() const
+{
+       return info.pParent;
+}
+////////////////////////////////////////////////////////////////////////////////
+/**
+ * Number of layers allocated directly by the object.
+ */
+long CxImage::GetNumLayers() const
+{
+       return info.nNumLayers;
+}
+////////////////////////////////////////////////////////////////////////////////
+/**
+ * Creates an empty layer. If position is less than 0, the new layer will be placed in the last position
+ */
+bool CxImage::LayerCreate(long position)
+{
+       if ( position < 0 || position > info.nNumLayers ) position = info.nNumLayers;
+
+       CxImage** ptmp = new CxImage*[info.nNumLayers + 1];
+       if (ptmp==0) return false;
+
+       int i=0;
+       for (int n=0; n<info.nNumLayers; n++){
+               if (position == n){
+                       ptmp[n] = new CxImage();
+                       i=1;
+               }
+               ptmp[n+i]=ppLayers[n];
+       }
+       if (i==0) ptmp[info.nNumLayers] = new CxImage();
+
+       if (ptmp[position]){
+               ptmp[position]->info.pParent = this;
+       } else {
+               free(ptmp);
+               return false;
+       }
+
+       info.nNumLayers++;
+       delete [] ppLayers;
+       ppLayers = ptmp;
+       return true;
+}
+////////////////////////////////////////////////////////////////////////////////
+/**
+ * Deletes a layer. If position is less than 0, the last layer will be deleted
+ */
+bool CxImage::LayerDelete(long position)
+{
+       if ( position >= info.nNumLayers ) return false;
+       if ( position < 0) position = info.nNumLayers - 1;
+       if ( position < 0) return false;
+
+       if (info.nNumLayers>1){
+
+               CxImage** ptmp = new CxImage*[info.nNumLayers - 1];
+               if (ptmp==0) return false;
+
+               int i=0;
+               for (int n=0; n<info.nNumLayers; n++){
+                       if (position == n){
+                               delete ppLayers[n];
+                               i=1;
+                       }
+                       ptmp[n]=ppLayers[n+i];
+               }
+
+               info.nNumLayers--;
+               delete [] ppLayers;
+               ppLayers = ptmp;
+
+       } else {
+               delete ppLayers[0];
+               delete [] ppLayers;
+               ppLayers = 0;
+               info.nNumLayers = 0;
+       }
+       return true;
+}
+////////////////////////////////////////////////////////////////////////////////
+void CxImage::LayerDeleteAll()
+{
+       if (ppLayers) { 
+               for(long n=0; n<info.nNumLayers;n++){ delete ppLayers[n]; }
+               delete [] ppLayers; ppLayers=0; info.nNumLayers = 0;
+       }
+}
+////////////////////////////////////////////////////////////////////////////////
+/**
+ * Returns a pointer to a layer. If position is less than 0, the last layer will be returned
+ */
+CxImage* CxImage::GetLayer(long position)
+{
+       if ( ppLayers == NULL) return NULL;
+       if ( info.nNumLayers == 0) return NULL;
+       if ( position >= info.nNumLayers ) return NULL;
+       if ( position < 0) position = info.nNumLayers - 1;
+       return ppLayers[position];
+}
+////////////////////////////////////////////////////////////////////////////////
+#endif //CXIMAGE_SUPPORT_LAYERS