#if !UNITY_WSA_10_0 using OpenCVForUnity.CoreModule; using OpenCVForUnity.UtilsModule; using System; using System.Collections.Generic; using System.Runtime.InteropServices; namespace OpenCVForUnity.DnnModule { // C++: class Layer //javadoc: Layer public class Layer : Algorithm { protected override void Dispose(bool disposing) { #if (UNITY_ANDROID && !UNITY_EDITOR) try { if (disposing) { } if (IsEnabledDispose) { if (nativeObj != IntPtr.Zero) dnn_Layer_delete(nativeObj); nativeObj = IntPtr.Zero; } } finally { base.Dispose(disposing); } #else return; #endif } protected internal Layer(IntPtr addr) : base(addr) { } // internal usage only public static new Layer __fromPtr__(IntPtr addr) { return new Layer(addr); } // // C++: int cv::dnn::Layer::outputNameToIndex(String outputName) // //javadoc: Layer::outputNameToIndex(outputName) public int outputNameToIndex(string outputName) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) int retVal = dnn_Layer_outputNameToIndex_10(nativeObj, outputName); return retVal; #else return -1; #endif } // // C++: void cv::dnn::Layer::finalize(vector_Mat inputs, vector_Mat& outputs) // //javadoc: Layer::finalize(inputs, outputs) public void finalize(List inputs, List outputs) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) Mat inputs_mat = Converters.vector_Mat_to_Mat(inputs); Mat outputs_mat = new Mat(); dnn_Layer_finalize_10(nativeObj, inputs_mat.nativeObj, outputs_mat.nativeObj); Converters.Mat_to_vector_Mat(outputs_mat, outputs); outputs_mat.release(); return; #else return; #endif } // // C++: void cv::dnn::Layer::run(vector_Mat inputs, vector_Mat& outputs, vector_Mat& internals) // //javadoc: Layer::run(inputs, outputs, internals) [Obsolete("This method is deprecated.")] public void run(List inputs, List outputs, List internals) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) Mat inputs_mat = Converters.vector_Mat_to_Mat(inputs); Mat outputs_mat = new Mat(); Mat internals_mat = Converters.vector_Mat_to_Mat(internals); dnn_Layer_run_10(nativeObj, inputs_mat.nativeObj, outputs_mat.nativeObj, internals_mat.nativeObj); Converters.Mat_to_vector_Mat(outputs_mat, outputs); outputs_mat.release(); Converters.Mat_to_vector_Mat(internals_mat, internals); internals_mat.release(); return; #else return; #endif } // // C++: vector_Mat Layer::blobs // //javadoc: Layer::get_blobs() public List get_blobs() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) List retVal = new List(); Mat retValMat = new Mat(dnn_Layer_get_1blobs_10(nativeObj)); Converters.Mat_to_vector_Mat(retValMat, retVal); return retVal; #else return null; #endif } // // C++: void Layer::blobs // //javadoc: Layer::set_blobs(blobs) public void set_blobs(List blobs) { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) Mat blobs_mat = Converters.vector_Mat_to_Mat(blobs); dnn_Layer_set_1blobs_10(nativeObj, blobs_mat.nativeObj); return; #else return; #endif } // // C++: String Layer::name // //javadoc: Layer::get_name() public string get_name() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) string retVal = Marshal.PtrToStringAnsi(dnn_Layer_get_1name_10(nativeObj)); return retVal; #else return null; #endif } // // C++: String Layer::type // //javadoc: Layer::get_type() public string get_type() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) string retVal = Marshal.PtrToStringAnsi(dnn_Layer_get_1type_10(nativeObj)); return retVal; #else return null; #endif } // // C++: int Layer::preferableTarget // //javadoc: Layer::get_preferableTarget() public int get_preferableTarget() { ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) int retVal = dnn_Layer_get_1preferableTarget_10(nativeObj); return retVal; #else return -1; #endif } #if (UNITY_ANDROID && !UNITY_EDITOR) const string LIBNAME = "opencvforunity"; // C++: int cv::dnn::Layer::outputNameToIndex(String outputName) [DllImport(LIBNAME)] private static extern int dnn_Layer_outputNameToIndex_10(IntPtr nativeObj, string outputName); // C++: void cv::dnn::Layer::finalize(vector_Mat inputs, vector_Mat& outputs) [DllImport(LIBNAME)] private static extern void dnn_Layer_finalize_10(IntPtr nativeObj, IntPtr inputs_mat_nativeObj, IntPtr outputs_mat_nativeObj); // C++: void cv::dnn::Layer::run(vector_Mat inputs, vector_Mat& outputs, vector_Mat& internals) [DllImport(LIBNAME)] private static extern void dnn_Layer_run_10(IntPtr nativeObj, IntPtr inputs_mat_nativeObj, IntPtr outputs_mat_nativeObj, IntPtr internals_mat_nativeObj); // C++: vector_Mat Layer::blobs [DllImport(LIBNAME)] private static extern IntPtr dnn_Layer_get_1blobs_10(IntPtr nativeObj); // C++: void Layer::blobs [DllImport(LIBNAME)] private static extern void dnn_Layer_set_1blobs_10(IntPtr nativeObj, IntPtr blobs_mat_nativeObj); // C++: String Layer::name [DllImport(LIBNAME)] private static extern IntPtr dnn_Layer_get_1name_10(IntPtr nativeObj); // C++: String Layer::type [DllImport(LIBNAME)] private static extern IntPtr dnn_Layer_get_1type_10(IntPtr nativeObj); // C++: int Layer::preferableTarget [DllImport(LIBNAME)] private static extern int dnn_Layer_get_1preferableTarget_10(IntPtr nativeObj); // native support for java finalize() [DllImport(LIBNAME)] private static extern void dnn_Layer_delete(IntPtr nativeObj); #endif } } #endif