/// <summary>
        /// Creates the occlusion subsystem descriptor from the construction info.
        /// </summary>
        /// <param name="occlusionSubsystemCinfo">The occlusion subsystem descriptor constructor information.</param>
        internal static XROcclusionSubsystemDescriptor Create(XROcclusionSubsystemCinfo occlusionSubsystemCinfo)
        {
            if (String.IsNullOrEmpty(occlusionSubsystemCinfo.id))
            {
                throw new ArgumentException("Cannot create occlusion subsystem descriptor because id is invalid",
                                            "occlusionSubsystemCinfo");
            }

#if UNITY_2020_2_OR_NEWER
            if (occlusionSubsystemCinfo.providerType == null ||
                !occlusionSubsystemCinfo.providerType.IsSubclassOf(typeof(XROcclusionSubsystem.Provider)))
            {
                throw new ArgumentException("Cannot create occlusion subsystem descriptor because providerType is invalid",
                                            "occlusionSubsystemCinfo");
            }

            if (occlusionSubsystemCinfo.subsystemTypeOverride == null &&
                !occlusionSubsystemCinfo.subsystemTypeOverride.IsSubclassOf(typeof(XROcclusionSubsystem)))
            {
                throw new ArgumentException("Cannot create occlusion subsystem descriptor because subsystemTypeOverride is invalid",
                                            "occlusionSubsystemCinfo");
            }
#else
            if ((occlusionSubsystemCinfo.implementationType == null) ||
                !occlusionSubsystemCinfo.implementationType.IsSubclassOf(typeof(XROcclusionSubsystem)))
            {
                throw new ArgumentException("Cannot create occlusion subsystem descriptor because implementationType is invalid",
                                            "occlusionSubsystemCinfo");
            }
#endif

            return(new XROcclusionSubsystemDescriptor(occlusionSubsystemCinfo));
        }
 XROcclusionSubsystemDescriptor(XROcclusionSubsystemCinfo occlusionSubsystemCinfo)
 {
     id = occlusionSubsystemCinfo.id;
     subsystemImplementationType           = occlusionSubsystemCinfo.implementationType;
     supportsHumanSegmentationStencilImage = occlusionSubsystemCinfo.supportsHumanSegmentationStencilImage;
     supportsHumanSegmentationDepthImage   = occlusionSubsystemCinfo.supportsHumanSegmentationDepthImage;
 }
        XROcclusionSubsystemDescriptor(XROcclusionSubsystemCinfo occlusionSubsystemCinfo)
        {
            id = occlusionSubsystemCinfo.id;
#if UNITY_2020_2_OR_NEWER
            providerType          = occlusionSubsystemCinfo.providerType;
            subsystemTypeOverride = occlusionSubsystemCinfo.subsystemTypeOverride;
#else
            subsystemImplementationType = occlusionSubsystemCinfo.implementationType;
#endif
            supportsHumanSegmentationStencilImage = occlusionSubsystemCinfo.supportsHumanSegmentationStencilImage;
            supportsHumanSegmentationDepthImage   = occlusionSubsystemCinfo.supportsHumanSegmentationDepthImage;
        }
Beispiel #4
0
        XROcclusionSubsystemDescriptor(XROcclusionSubsystemCinfo occlusionSubsystemCinfo)
        {
            id                    = occlusionSubsystemCinfo.id;
            providerType          = occlusionSubsystemCinfo.providerType;
            subsystemTypeOverride = occlusionSubsystemCinfo.subsystemTypeOverride;
#pragma warning disable CS0618 // obsolete
            m_SupportsHumanSegmentationStencilImage           = occlusionSubsystemCinfo.supportsHumanSegmentationStencilImage;
            m_SupportsHumanSegmentationDepthImage             = occlusionSubsystemCinfo.supportsHumanSegmentationDepthImage;
            m_QueryForSupportsEnvironmentDepthImage           = occlusionSubsystemCinfo.queryForSupportsEnvironmentDepthImage;
            m_QueryForSupportsEnvironmentDepthConfidenceImage = occlusionSubsystemCinfo.queryForSupportsEnvironmentDepthConfidenceImage;
#pragma warning restore CS0618
            m_EnvironmentDepthImageSupportedDelegate           = occlusionSubsystemCinfo.environmentDepthImageSupportedDelegate;
            m_EnvironmentDepthConfidenceImageSupportedDelegate = occlusionSubsystemCinfo.environmentDepthConfidenceImageSupportedDelegate;
            m_HumanSegmentationStencilImageSupportedDelegate   = occlusionSubsystemCinfo.humanSegmentationStencilImageSupportedDelegate;
            m_HumanSegmentationDepthImageSupportedDelegate     = occlusionSubsystemCinfo.humanSegmentationDepthImageSupportedDelegate;
        }
        /// <summary>
        /// Creates the occlusion subsystem descriptor from the construction info.
        /// </summary>
        /// <param name="occlusionSubsystemCinfo">The occlusion subsystem descriptor constructor information.</param>
        internal static XROcclusionSubsystemDescriptor Create(XROcclusionSubsystemCinfo occlusionSubsystemCinfo)
        {
            if (String.IsNullOrEmpty(occlusionSubsystemCinfo.id))
            {
                throw new ArgumentException("Cannot create occlusion subsystem descriptor because id is invalid",
                                            "occlusionSubsystemCinfo");
            }

            if ((occlusionSubsystemCinfo.implementationType == null) ||
                !occlusionSubsystemCinfo.implementationType.IsSubclassOf(typeof(XROcclusionSubsystem)))
            {
                throw new ArgumentException("Cannot create occlusion subsystem descriptor because implementationType is invalid",
                                            "occlusionSubsystemCinfo");
            }

            return(new XROcclusionSubsystemDescriptor(occlusionSubsystemCinfo));
        }
Beispiel #6
0
        /// <summary>
        /// Creates the occlusion subsystem descriptor from the construction info.
        /// </summary>
        /// <param name="occlusionSubsystemCinfo">The occlusion subsystem descriptor constructor information.</param>
        internal static XROcclusionSubsystemDescriptor Create(XROcclusionSubsystemCinfo occlusionSubsystemCinfo)
        {
            if (string.IsNullOrEmpty(occlusionSubsystemCinfo.id))
            {
                throw new ArgumentException("Cannot create occlusion subsystem descriptor because id is invalid",
                                            nameof(occlusionSubsystemCinfo));
            }

            if (occlusionSubsystemCinfo.providerType == null ||
                !occlusionSubsystemCinfo.providerType.IsSubclassOf(typeof(XROcclusionSubsystem.Provider)))
            {
                throw new ArgumentException("Cannot create occlusion subsystem descriptor because providerType is invalid",
                                            nameof(occlusionSubsystemCinfo));
            }

            if (occlusionSubsystemCinfo.subsystemTypeOverride == null ||
                !occlusionSubsystemCinfo.subsystemTypeOverride.IsSubclassOf(typeof(XROcclusionSubsystem)))
            {
                throw new ArgumentException("Cannot create occlusion subsystem descriptor because subsystemTypeOverride is invalid",
                                            nameof(occlusionSubsystemCinfo));
            }

            return(new XROcclusionSubsystemDescriptor(occlusionSubsystemCinfo));
        }