Update to 2.0.0 tree from current Fremantle build
[opencv] / interfaces / swig / general / extensions.i
index 0cb01de..ae57438 100644 (file)
@@ -45,6 +45,8 @@
 // 2008-05-15, Xavier Delacour   <xavier.delacour@gmail.com>
 
 
+struct CvLSH {};
+
 %extend IplImage       { ~IplImage       () { IplImage       * dummy = self; cvReleaseImage              (& dummy); } }
 %extend CvMat          { ~CvMat          () { CvMat          * dummy = self; cvReleaseMat                (& dummy); } }
 %extend CvMatND        { ~CvMatND        () { CvMatND        * dummy = self; cvReleaseMatND              (& dummy); } }
@@ -59,6 +61,7 @@
 %extend CvHaarClassifierCascade { ~CvHaarClassifierCascade () { CvHaarClassifierCascade * dummy = self; cvReleaseHaarClassifierCascade  (& dummy); } }
 %extend CvPOSITObject  { ~CvPOSITObject  () { CvPOSITObject  * dummy = self; cvReleasePOSITObject        (& dummy); } }
 %extend CvFeatureTree  { ~CvFeatureTree  () { CvFeatureTree  * dummy = self; cvReleaseFeatureTree        (& dummy); } }
+%extend CvLSH          { ~CvLSH          () { CvLSH          * dummy = self; cvReleaseLSH                (& dummy); } }
 
 // string operators for some OpenCV types
 
 int CvMat_cols_get(CvMat * m){
        return m->cols;
 }
+void CvMat_cols_set(CvMat * m, int cols){
+    m->cols = cols;
+}
 int CvMat_rows_get(CvMat *m){
        return m->rows;
 }
+void CvMat_rows_set(CvMat *m, int rows){
+    m->rows = rows;
+}
 int CvMat_width_get(CvMat * m){
        return m->cols;
 }
+void CvMat_width_set(CvMat * m, int width){
+    m->cols = width;
+}
 int CvMat_height_get(CvMat *m){
        return m->rows;
 }
+void CvMat_height_set(CvMat * m, int height){
+    m->rows = height;
+}
 int CvMat_depth_get(CvMat * m){
-       return cvCvToIplDepth(m->type);
+       return cvIplDepth(m->type);
+}
+void CvMat_depth_set(CvMat *m, int depth){
+    cvError(CV_StsNotImplemented, "CvMat_depth_set", "Not Implemented", __FILE__, __LINE__);
 }
 int CvMat_nChannels_get(CvMat * m){
        return CV_MAT_CN(m->type);
 }
+void CvMat_nChannels_set(CvMat *m, int nChannels){
+    int depth = CV_MAT_DEPTH(m->type);
+    m->type = CV_MAKETYPE(depth, nChannels);
+}
 int CvMat_origin_get(CvMat * m){
-       return 0;
+    /* Always 0 - top-left origin */
+    return 0;
+}
+void CvMat_origin_set(CvMat * m, int origin){
+    cvError(CV_StsNotImplemented, "CvMat_origin_get", "IplImage is replaced by CvMat in Python, so its fields are read-only", __FILE__, __LINE__);
 }
 int CvMat_dataOrder_get(CvMat * m){
-       return 0;
+    cvError(CV_StsNotImplemented, "CvMat_dataOrder_get", "Not Implemented", __FILE__, __LINE__);
+    return 0;
+}
+void CvMat_dataOrder_set(CvMat * m, int dataOrder){
+    cvError(CV_StsNotImplemented, "CvMat_dataOrder_get", "IplImage is replaced by CvMat in Python, so its fields are read-only", __FILE__, __LINE__);
 }
 int CvMat_imageSize_get(CvMat * m){
-       int step = m->step ? m->step : 
-         step = CV_ELEM_SIZE(m->type) * m->cols;
+       int step = m->step ? m->step : CV_ELEM_SIZE(m->type) * m->cols;
        return step*m->rows;
 }
+void CvMat_imageSize_set(CvMat * m, int imageSize){
+    cvError(CV_StsNotImplemented, "CvMat_imageSize_set", "IplImage is not implemented in Python, so origin is read-only", __FILE__, __LINE__);
+}
 int CvMat_widthStep_get(CvMat * m){
        return m->step;
 }
+void CvMat_widthStep_set(CvMat *m, int widthStep){
+    m->step = widthStep;
+}
 %}
+
 %extend CvMat
 {
-       const int depth;
-       const int nChannels;
-       const int dataOrder;
-       const int origin;
-       const int width;
-       const int height;
-       const int imageSize;
-       const int widthStep;
+       int depth;
+       int nChannels;
+       int dataOrder;
+       int origin;
+       int width;
+       int height;
+       int imageSize;
+       int widthStep;
        // swig doesn't like the embedded union in CvMat, so re-add these
-       const int rows;
-       const int cols;
+       int rows;
+       int cols;
 };