using OpenCVForUnity.CoreModule; using OpenCVForUnity.UtilsModule; using System; using System.Collections.Generic; using System.Runtime.InteropServices; namespace OpenCVForUnity.Xfeatures2dModule { // C++: class PCTSignaturesSQFD //javadoc: PCTSignaturesSQFD public class PCTSignaturesSQFD : Algorithm { protected override void Dispose(bool disposing) { #if (UNITY_ANDROID && !UNITY_EDITOR) try { if (disposing) { } if (IsEnabledDispose) { if (nativeObj != IntPtr.Zero) xfeatures2d_PCTSignaturesSQFD_delete(nativeObj); nativeObj = IntPtr.Zero; } } finally { base.Dispose(disposing); } #else return; #endif } protected internal PCTSignaturesSQFD(IntPtr addr) : base(addr) { } // internal usage only public static new PCTSignaturesSQFD __fromPtr__(IntPtr addr) { return new PCTSignaturesSQFD(addr); } // // C++: static Ptr_PCTSignaturesSQFD cv::xfeatures2d::PCTSignaturesSQFD::create(int distanceFunction = 3, int similarityFunction = 2, float similarityParameter = 1.0f) // //javadoc: PCTSignaturesSQFD::create(distanceFunction, similarityFunction, similarityParameter) public static PCTSignaturesSQFD create(int distanceFunction, int similarityFunction, float similarityParameter) { #if (UNITY_ANDROID && !UNITY_EDITOR) PCTSignaturesSQFD retVal = PCTSignaturesSQFD.__fromPtr__(xfeatures2d_PCTSignaturesSQFD_create_10(distanceFunction, similarityFunction, similarityParameter)); return retVal; #else return null; #endif } //javadoc: PCTSignaturesSQFD::create(distanceFunction, similarityFunction) public static PCTSignaturesSQFD create(int distanceFunction, int similarityFunction) { #if (UNITY_ANDROID && !UNITY_EDITOR) PCTSignaturesSQFD retVal = PCTSignaturesSQFD.__fromPtr__(xfeatures2d_PCTSignaturesSQFD_create_11(distanceFunction, similarityFunction)); return retVal; #else return null; #endif } //javadoc: PCTSignaturesSQFD::create(distanceFunction) public static PCTSignaturesSQFD create(int distanceFunction) { #if (UNITY_ANDROID && !UNITY_EDITOR) PCTSignaturesSQFD retVal = PCTSignaturesSQFD.__fromPtr__(xfeatures2d_PCTSignaturesSQFD_create_12(distanceFunction)); return retVal; #else return null; #endif } //javadoc: PCTSignaturesSQFD::create() public static PCTSignaturesSQFD create() { #if (UNITY_ANDROID && !UNITY_EDITOR) PCTSignaturesSQFD retVal = PCTSignaturesSQFD.__fromPtr__(xfeatures2d_PCTSignaturesSQFD_create_13()); return retVal; #else return null; #endif } // // C++: float cv::xfeatures2d::PCTSignaturesSQFD::computeQuadraticFormDistance(Mat _signature0, Mat _signature1) // //javadoc: PCTSignaturesSQFD::computeQuadraticFormDistance(_signature0, _signature1) public float computeQuadraticFormDistance(Mat _signature0, Mat _signature1) { ThrowIfDisposed(); if (_signature0 != null) _signature0.ThrowIfDisposed(); if (_signature1 != null) _signature1.ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) float retVal = xfeatures2d_PCTSignaturesSQFD_computeQuadraticFormDistance_10(nativeObj, _signature0.nativeObj, _signature1.nativeObj); return retVal; #else return -1; #endif } // // C++: void cv::xfeatures2d::PCTSignaturesSQFD::computeQuadraticFormDistances(Mat sourceSignature, vector_Mat imageSignatures, vector_float distances) // //javadoc: PCTSignaturesSQFD::computeQuadraticFormDistances(sourceSignature, imageSignatures, distances) public void computeQuadraticFormDistances(Mat sourceSignature, List imageSignatures, MatOfFloat distances) { ThrowIfDisposed(); if (sourceSignature != null) sourceSignature.ThrowIfDisposed(); if (distances != null) distances.ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) Mat imageSignatures_mat = Converters.vector_Mat_to_Mat(imageSignatures); Mat distances_mat = distances; xfeatures2d_PCTSignaturesSQFD_computeQuadraticFormDistances_10(nativeObj, sourceSignature.nativeObj, imageSignatures_mat.nativeObj, distances_mat.nativeObj); return; #else return; #endif } #if (UNITY_ANDROID && !UNITY_EDITOR) const string LIBNAME = "opencvforunity"; // C++: static Ptr_PCTSignaturesSQFD cv::xfeatures2d::PCTSignaturesSQFD::create(int distanceFunction = 3, int similarityFunction = 2, float similarityParameter = 1.0f) [DllImport(LIBNAME)] private static extern IntPtr xfeatures2d_PCTSignaturesSQFD_create_10(int distanceFunction, int similarityFunction, float similarityParameter); [DllImport(LIBNAME)] private static extern IntPtr xfeatures2d_PCTSignaturesSQFD_create_11(int distanceFunction, int similarityFunction); [DllImport(LIBNAME)] private static extern IntPtr xfeatures2d_PCTSignaturesSQFD_create_12(int distanceFunction); [DllImport(LIBNAME)] private static extern IntPtr xfeatures2d_PCTSignaturesSQFD_create_13(); // C++: float cv::xfeatures2d::PCTSignaturesSQFD::computeQuadraticFormDistance(Mat _signature0, Mat _signature1) [DllImport(LIBNAME)] private static extern float xfeatures2d_PCTSignaturesSQFD_computeQuadraticFormDistance_10(IntPtr nativeObj, IntPtr _signature0_nativeObj, IntPtr _signature1_nativeObj); // C++: void cv::xfeatures2d::PCTSignaturesSQFD::computeQuadraticFormDistances(Mat sourceSignature, vector_Mat imageSignatures, vector_float distances) [DllImport(LIBNAME)] private static extern void xfeatures2d_PCTSignaturesSQFD_computeQuadraticFormDistances_10(IntPtr nativeObj, IntPtr sourceSignature_nativeObj, IntPtr imageSignatures_mat_nativeObj, IntPtr distances_mat_nativeObj); // native support for java finalize() [DllImport(LIBNAME)] private static extern void xfeatures2d_PCTSignaturesSQFD_delete(IntPtr nativeObj); #endif } }