// /*=============================================================================== // Copyright (C) 2020 PhantomsXR Ltd. All Rights Reserved. // // This file is part of the AR-MOD SDK. // // The AR-MOD SDK cannot be copied, distributed, or made available to // third-parties for commercial purposes without written permission of PhantomsXR Ltd. // // Contact info@phantomsxr.com for licensing requests. // ===============================================================================*/ using Phantom.XRMOD.ActionNotification.Runtime; using UnityEngine; using UnityEngine.XR.ARSubsystems; namespace Phantom.XRMOD.XRMODPackageTools.Editor { public class Configures : ScriptableObject { public SDKDeviceType SDKDeviceType = SDKDeviceType.HandheldAR; public float ARWorldScale = 1.0f; public string Version = "2.0.0"; public AlgorithmType Algorithm = AlgorithmType.None; public bool AlgorithmAutoStart = true; public PlaneDetectionMode PlaneDetectionMode = PlaneDetectionMode.None; public string ProjectName; //script public string MainEntry; public string DomainName; public ProgrammableType ProgrammableType; public string MainVisualScripting; public bool DebugModel; public JITFlags JitFlag = 0; //visualizer public string CustomPointCloudVisualizerName; public string CustomPlaneVisualizerName; public string CustomMeshVisualizerName; //2d features public int MaxMovingOfTracking; //features public bool EnvironmentProbe; /// With automatic environment probe placement, the device /// automatically selects suitable locations for environment probes and creates them. /// Environment probes can be created in any orientation. However, Unity's reflection probes, /// which consume the environment probe data, only support axis-aligned orientations. /// This means the orientation you specify (or your application selected automatically) might not be fully respected public bool AutoPlacementOfEnvironmentProbe; public bool UseEnvironmentHDRTexture; public bool LightEstimation; public bool LightEstimationHDR; public float LightShadowStrength = 0.7f; public bool CoachingOverlay; public bool PostProcessing; public bool CanInteraction; //face mesh public int MaximumFaceCount = 1; //immersal public string DeveloperToken; public float LocalizationInterval; public bool UseServerLocalizer; public bool AutoStart = true; public bool UseFiltering = true; public bool BurstMode = true; public bool StopLocalizedAfterSuccess = false; public bool ResetOnMapChange = false; //Occlusion public bool AROcclusion; public bool TemporalSmoothing; public EnvironmentDepthMode EnvironmentDepthMode; public HumanSegmentationDepthMode HumanSegmentationDepthMode; public HumanSegmentationStencilMode HumanSegmentationStencilMode; public OcclusionPreferenceMode OcclusionPreferenceMode; //Multiplayer public bool Multiplayer; public bool DisplayPing; public bool Discovery; //Graphics public int QualityLevel = 1; //Recording public bool UseMediaRecorder = false; public bool UseMicrophone = true; public MediaResolution MediaResolution = MediaResolution.Normal; //Pico public bool MixedReality = false; public SpaceType SpaceType = SpaceType.ExclusiveSpace; public BoundResizeMode BoundResizeMode = BoundResizeMode.None; public Vector3 Dimensions = Vector3.one; public Vector3 Position = new Vector3(0, 0.5f, 0); public LayerMask CullingMask = 1; // Vision Pro public bool Passthrough; } public enum RenderMode : int { DoNotRender, EditorOnly, EditorAndRuntime } public enum AlgorithmType { #if HANDHELD_ARMODULE_INSTALL FocusSlam = 0, #endif Anchor = 1, #if HANDHELD_ARMODULE_INSTALL Gyro = 2, Fixed = 3, #endif #if HANDHELD_ARMODULE_INSTALL || VISIONOS_INSTALL || ROKID_INSTALL || XREAL_INSTALL ImageTracker = 4, #endif #if HANDHELD_ARMODULE_INSTALL || ROKID_INSTALL || QUEST_INSTALL Immersal = 5, #endif #if HANDHELD_ARMODULE_INSTALL FaceMesh = 6, #endif #if HANDHELD_ARMODULE_INSTALL || QUEST_INSTALL || VISIONOS_INSTALL Meshing = 7, #endif #if HANDHELD_ARMODULE_INSTALL Classic3D = 8, #endif None = 9, } public enum ImageLostMode { Hiding, Destroy, OnScreen, Custom } public enum ProgrammableType { CSharp, VisualScripting } public enum JITFlags : int { None = 0, /// /// Method will be JIT when method is called multiple time /// JITOnDemand = 1, /// /// Method will be JIT immediately when called, instead of progressively warm up /// JITImmediately = 2, /// /// Method will not be JIT when called /// NoJIT = 4, /// /// Method will always be inlined when called /// ForceInline = 8, } public enum MediaResolution : uint { Normal, HD } public enum SDKDeviceType : int { VisionOS, HandheldAR, Hololens, Pico, Quest, Rokid, XReal, WebAR, WebVR, Classic3D, Web3D } }