Api.MLMeshingSettings GetMeshingSettings()
        {
            var flags = Api.MLMeshingFlags.IndexOrderCCW;

            if (computeNormals)
            {
                flags |= Api.MLMeshingFlags.ComputeNormals;
            }
            if (requestVertexConfidence)
            {
                flags |= Api.MLMeshingFlags.ComputeConfidence;
            }
            if (planarize)
            {
                flags |= Api.MLMeshingFlags.Planarize;
            }
            if (removeMeshSkirt)
            {
                flags |= Api.MLMeshingFlags.RemoveMeshSkirt;
            }
            if (meshType == MeshType.PointCloud)
            {
                flags |= Api.MLMeshingFlags.PointCloud;
            }

            var settings = new Api.MLMeshingSettings
            {
                flags                     = flags,
                fillHoleLength            = fillHoleLength,
                disconnectedComponentArea = disconnectedComponentArea,
            };

            return(settings);
        }
        void UpdateSettings()
        {
            UpdateBatchSize();
            var settings = GetMeshingSettings();

            Api.UnityMagicLeap_MeshingUpdateSettings(settings);
            m_SettingsDirty = false;
#if UNITY_EDITOR
            m_CachedSettings = settings;
#endif
        }