using OpenCVForUnity.CoreModule; using OpenCVForUnity.UtilsModule; using System; using System.Collections.Generic; using System.Runtime.InteropServices; namespace OpenCVForUnity.Calib3dModule { // C++: class StereoBM //javadoc: StereoBM public class StereoBM : StereoMatcher { protected override void Dispose(bool disposing) { #if (UNITY_ANDROID && !UNITY_EDITOR) try { if (disposing) { } if (IsEnabledDispose) { if (nativeObj != IntPtr.Zero) calib3d_StereoBM_delete(nativeObj); nativeObj = IntPtr.Zero; } } finally { base.Dispose(disposing); } #else return; #endif } protected internal StereoBM(IntPtr addr) : base(addr) { } // internal usage only public static new StereoBM __fromPtr__(IntPtr addr) { return new StereoBM(addr); } // C++: enum public const int PREFILTER_NORMALIZED_RESPONSE = 0; public const int PREFILTER_XSOBEL = 1; // // C++: static Ptr_StereoBM cv::StereoBM::create(int numDisparities = 0, int blockSize = 21) // //javadoc: StereoBM::create(numDisparities, blockSize) public static StereoBM create(int numDisparities, int blockSize) { #if (UNITY_ANDROID && !UNITY_EDITOR) StereoBM retVal = StereoBM.__fromPtr__(calib3d_StereoBM_create_10(numDisparities, blockSize)); return retVal; #else return null; #endif } //javadoc: StereoBM::create(numDisparities) public static StereoBM create(int numDisparities) { #if (UNITY_ANDROID && !UNITY_EDITOR) StereoBM retVal = StereoBM.__fromPtr__(calib3d_StereoBM_create_11(numDisparities)); return retVal; #else return null; #endif } //javadoc: StereoBM::create() public static StereoBM create() { #if (UNITY_ANDROID && !UNITY_EDITOR) StereoBM retVal = StereoBM.__fromPtr__(calib3d_StereoBM_create_12()); return retVal; #else return null; #endif } // // C++: Rect cv::StereoBM::getROI1() // //javadoc: StereoBM::getROI1() public Rect getROI1() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) double[] tmpArray = new double[4]; calib3d_StereoBM_getROI1_10(nativeObj, tmpArray); Rect retVal = new Rect(tmpArray); return retVal; #else return null; #endif } // // C++: Rect cv::StereoBM::getROI2() // //javadoc: StereoBM::getROI2() public Rect getROI2() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) double[] tmpArray = new double[4]; calib3d_StereoBM_getROI2_10(nativeObj, tmpArray); Rect retVal = new Rect(tmpArray); return retVal; #else return null; #endif } // // C++: int cv::StereoBM::getPreFilterCap() // //javadoc: StereoBM::getPreFilterCap() public int getPreFilterCap() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) int retVal = calib3d_StereoBM_getPreFilterCap_10(nativeObj); return retVal; #else return -1; #endif } // // C++: int cv::StereoBM::getPreFilterSize() // //javadoc: StereoBM::getPreFilterSize() public int getPreFilterSize() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) int retVal = calib3d_StereoBM_getPreFilterSize_10(nativeObj); return retVal; #else return -1; #endif } // // C++: int cv::StereoBM::getPreFilterType() // //javadoc: StereoBM::getPreFilterType() public int getPreFilterType() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) int retVal = calib3d_StereoBM_getPreFilterType_10(nativeObj); return retVal; #else return -1; #endif } // // C++: int cv::StereoBM::getSmallerBlockSize() // //javadoc: StereoBM::getSmallerBlockSize() public int getSmallerBlockSize() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) int retVal = calib3d_StereoBM_getSmallerBlockSize_10(nativeObj); return retVal; #else return -1; #endif } // // C++: int cv::StereoBM::getTextureThreshold() // //javadoc: StereoBM::getTextureThreshold() public int getTextureThreshold() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) int retVal = calib3d_StereoBM_getTextureThreshold_10(nativeObj); return retVal; #else return -1; #endif } // // C++: int cv::StereoBM::getUniquenessRatio() // //javadoc: StereoBM::getUniquenessRatio() public int getUniquenessRatio() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) int retVal = calib3d_StereoBM_getUniquenessRatio_10(nativeObj); return retVal; #else return -1; #endif } // // C++: void cv::StereoBM::setPreFilterCap(int preFilterCap) // //javadoc: StereoBM::setPreFilterCap(preFilterCap) public void setPreFilterCap(int preFilterCap) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) calib3d_StereoBM_setPreFilterCap_10(nativeObj, preFilterCap); return; #else return; #endif } // // C++: void cv::StereoBM::setPreFilterSize(int preFilterSize) // //javadoc: StereoBM::setPreFilterSize(preFilterSize) public void setPreFilterSize(int preFilterSize) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) calib3d_StereoBM_setPreFilterSize_10(nativeObj, preFilterSize); return; #else return; #endif } // // C++: void cv::StereoBM::setPreFilterType(int preFilterType) // //javadoc: StereoBM::setPreFilterType(preFilterType) public void setPreFilterType(int preFilterType) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) calib3d_StereoBM_setPreFilterType_10(nativeObj, preFilterType); return; #else return; #endif } // // C++: void cv::StereoBM::setROI1(Rect roi1) // //javadoc: StereoBM::setROI1(roi1) public void setROI1(Rect roi1) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) calib3d_StereoBM_setROI1_10(nativeObj, roi1.x, roi1.y, roi1.width, roi1.height); return; #else return; #endif } // // C++: void cv::StereoBM::setROI2(Rect roi2) // //javadoc: StereoBM::setROI2(roi2) public void setROI2(Rect roi2) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) calib3d_StereoBM_setROI2_10(nativeObj, roi2.x, roi2.y, roi2.width, roi2.height); return; #else return; #endif } // // C++: void cv::StereoBM::setSmallerBlockSize(int blockSize) // //javadoc: StereoBM::setSmallerBlockSize(blockSize) public void setSmallerBlockSize(int blockSize) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) calib3d_StereoBM_setSmallerBlockSize_10(nativeObj, blockSize); return; #else return; #endif } // // C++: void cv::StereoBM::setTextureThreshold(int textureThreshold) // //javadoc: StereoBM::setTextureThreshold(textureThreshold) public void setTextureThreshold(int textureThreshold) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) calib3d_StereoBM_setTextureThreshold_10(nativeObj, textureThreshold); return; #else return; #endif } // // C++: void cv::StereoBM::setUniquenessRatio(int uniquenessRatio) // //javadoc: StereoBM::setUniquenessRatio(uniquenessRatio) public void setUniquenessRatio(int uniquenessRatio) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) calib3d_StereoBM_setUniquenessRatio_10(nativeObj, uniquenessRatio); return; #else return; #endif } #if (UNITY_ANDROID && !UNITY_EDITOR) const string LIBNAME = "opencvforunity"; // C++: static Ptr_StereoBM cv::StereoBM::create(int numDisparities = 0, int blockSize = 21) [DllImport(LIBNAME)] private static extern IntPtr calib3d_StereoBM_create_10(int numDisparities, int blockSize); [DllImport(LIBNAME)] private static extern IntPtr calib3d_StereoBM_create_11(int numDisparities); [DllImport(LIBNAME)] private static extern IntPtr calib3d_StereoBM_create_12(); // C++: Rect cv::StereoBM::getROI1() [DllImport(LIBNAME)] private static extern void calib3d_StereoBM_getROI1_10(IntPtr nativeObj, double[] retVal); // C++: Rect cv::StereoBM::getROI2() [DllImport(LIBNAME)] private static extern void calib3d_StereoBM_getROI2_10(IntPtr nativeObj, double[] retVal); // C++: int cv::StereoBM::getPreFilterCap() [DllImport(LIBNAME)] private static extern int calib3d_StereoBM_getPreFilterCap_10(IntPtr nativeObj); // C++: int cv::StereoBM::getPreFilterSize() [DllImport(LIBNAME)] private static extern int calib3d_StereoBM_getPreFilterSize_10(IntPtr nativeObj); // C++: int cv::StereoBM::getPreFilterType() [DllImport(LIBNAME)] private static extern int calib3d_StereoBM_getPreFilterType_10(IntPtr nativeObj); // C++: int cv::StereoBM::getSmallerBlockSize() [DllImport(LIBNAME)] private static extern int calib3d_StereoBM_getSmallerBlockSize_10(IntPtr nativeObj); // C++: int cv::StereoBM::getTextureThreshold() [DllImport(LIBNAME)] private static extern int calib3d_StereoBM_getTextureThreshold_10(IntPtr nativeObj); // C++: int cv::StereoBM::getUniquenessRatio() [DllImport(LIBNAME)] private static extern int calib3d_StereoBM_getUniquenessRatio_10(IntPtr nativeObj); // C++: void cv::StereoBM::setPreFilterCap(int preFilterCap) [DllImport(LIBNAME)] private static extern void calib3d_StereoBM_setPreFilterCap_10(IntPtr nativeObj, int preFilterCap); // C++: void cv::StereoBM::setPreFilterSize(int preFilterSize) [DllImport(LIBNAME)] private static extern void calib3d_StereoBM_setPreFilterSize_10(IntPtr nativeObj, int preFilterSize); // C++: void cv::StereoBM::setPreFilterType(int preFilterType) [DllImport(LIBNAME)] private static extern void calib3d_StereoBM_setPreFilterType_10(IntPtr nativeObj, int preFilterType); // C++: void cv::StereoBM::setROI1(Rect roi1) [DllImport(LIBNAME)] private static extern void calib3d_StereoBM_setROI1_10(IntPtr nativeObj, int roi1_x, int roi1_y, int roi1_width, int roi1_height); // C++: void cv::StereoBM::setROI2(Rect roi2) [DllImport(LIBNAME)] private static extern void calib3d_StereoBM_setROI2_10(IntPtr nativeObj, int roi2_x, int roi2_y, int roi2_width, int roi2_height); // C++: void cv::StereoBM::setSmallerBlockSize(int blockSize) [DllImport(LIBNAME)] private static extern void calib3d_StereoBM_setSmallerBlockSize_10(IntPtr nativeObj, int blockSize); // C++: void cv::StereoBM::setTextureThreshold(int textureThreshold) [DllImport(LIBNAME)] private static extern void calib3d_StereoBM_setTextureThreshold_10(IntPtr nativeObj, int textureThreshold); // C++: void cv::StereoBM::setUniquenessRatio(int uniquenessRatio) [DllImport(LIBNAME)] private static extern void calib3d_StereoBM_setUniquenessRatio_10(IntPtr nativeObj, int uniquenessRatio); // native support for java finalize() [DllImport(LIBNAME)] private static extern void calib3d_StereoBM_delete(IntPtr nativeObj); #endif } }