Beispiel #1
0
        MLMeshingSettings GetMeshingSettings()
        {
            var flags = MLMeshingFlags.IndexOrderCCW;

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

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

            return(settings);
        }
Beispiel #2
0
        void UpdateSettings()
        {
            UpdateBatchSize();
            var settings = GetMeshingSettings();

            MeshingSettings.meshingSettings = settings;
            m_SettingsDirty = false;
#if UNITY_EDITOR
            m_CachedSettings = settings;
#endif
        }
Beispiel #3
0
        /// <summary>
        /// Sets the Magic Leap Mesh settings based on the profile assigned.
        /// </summary>
        protected override void ReadProfile()
        {
            base.ReadProfile();

            MagicLeapSpatialAwarenessMeshObserverProfile profile = ConfigurationProfile as MagicLeapSpatialAwarenessMeshObserverProfile;

            if (profile == null)
            {
                Debug.LogWarning($" Use the `MagicLeapSpatialAwarenessMeshObserverProfile` configuration to set Magic Leap specific meshing settings.");

                //Magic Leap Default Meshing Settings
                var defaultFlags = MLMeshingFlags.IndexOrderCCW;
                defaultFlags |= MLMeshingFlags.RemoveMeshSkirt;

                var defaultsettings = new MLMeshingSettings
                {
                    flags                     = defaultFlags,
                    fillHoleLength            = 1,
                    disconnectedComponentArea = .25f
                };

                MeshingSettings.meshingSettings = defaultsettings;
                MeshingSettings.batchSize       = 16;
                return;
            }

            //Magic Leap Meshing Settings
            var flags = MLMeshingFlags.IndexOrderCCW;

            if (profile.RemoveMeshSkirt)
            {
                flags |= MLMeshingFlags.RemoveMeshSkirt;
            }

            if (profile.RequestVertexConfidence)
            {
                flags |= MLMeshingFlags.ComputeConfidence;
            }

            if (profile.Planarize)
            {
                flags |= MLMeshingFlags.Planarize;
            }

            var settings = new MLMeshingSettings
            {
                flags                     = flags,
                fillHoleLength            = profile.FillHoleLength,
                disconnectedComponentArea = profile.DisconnectedComponentArea
            };

            MeshingSettings.meshingSettings = settings;
            MeshingSettings.batchSize       = profile.BatchSize;
        }
Beispiel #4
0
        void UpdateSettings()
        {
            DestroyAllMeshes();
            UpdateBatchSize();

            var settings = GetMeshingSettings();

            MeshingSettings.meshingSettings = settings;
            MeshingSettings.density         = density;

            m_SettingsDirty = false;
#if UNITY_EDITOR
            m_CachedSettings = settings;
            m_CachedDensity  = density;
#endif
        }
 public static void UnityMagicLeap_MeshingUpdateSettings(MLMeshingSettings newSettings)
 {
 }