void DoProcess()
        {
            if (!(owner.Value is OpenCVForUnityPlayMakerActions.Dictionary))
            {
                LogError("owner is not initialized. Add Action \"newDictionary\".");
                return;
            }
            OpenCVForUnity.ArucoModule.Dictionary wrapped_owner = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Dictionary, OpenCVForUnity.ArucoModule.Dictionary>(owner);

            if (!(onlyBits.Value is OpenCVForUnityPlayMakerActions.Mat))
            {
                LogError("onlyBits is not initialized. Add Action \"newMat\".");
                return;
            }
            OpenCVForUnity.CoreModule.Mat wrapped_onlyBits = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Mat, OpenCVForUnity.CoreModule.Mat>(onlyBits);

            int[] int_idx    = idx.intValues;
            int[] casted_idx = new int[int_idx.Length];
            for (int i = 0; i < casted_idx.Length; i++)
            {
                casted_idx[i] = (int)int_idx[i];
            }

            int[] int_rotation    = rotation.intValues;
            int[] casted_rotation = new int[int_rotation.Length];
            for (int i = 0; i < casted_rotation.Length; i++)
            {
                casted_rotation[i] = (int)int_rotation[i];
            }

            if (!(maxCorrectionRate.Value is OpenCVForUnityPlayMakerActions.Double))
            {
                LogError("maxCorrectionRate is not initialized. Add Action \"newDouble\".");
                return;
            }
            System.Double wrapped_maxCorrectionRate = OpenCVForUnityPlayMakerActionsUtils.GetWrappedObject <OpenCVForUnityPlayMakerActions.Double, System.Double>(maxCorrectionRate);

            storeResult.Value = wrapped_owner.identify(wrapped_onlyBits, casted_idx, casted_rotation, wrapped_maxCorrectionRate);

            for (int i = 0; i < casted_idx.Length; i++)
            {
                idx.Set(i, (int)casted_idx[i]);
            }
            idx.SaveChanges();

            for (int i = 0; i < casted_rotation.Length; i++)
            {
                rotation.Set(i, (int)casted_rotation[i]);
            }
            rotation.SaveChanges();

            Fsm.Event(storeResult.Value ? trueEvent : falseEvent);
        }