Exemplo n.º 1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.Main);
            mSurfaceView           = FindViewById <GLSurfaceView>(Resource.Id.surfaceview);
            mDisplayRotationHelper = new DisplayRotationHelper(this);

            Java.Lang.Exception exception = null;
            string message = null;

            try {
                mSession = new Session(/*context=*/ this);
            } catch (UnavailableArcoreNotInstalledException e) {
                message   = "Please install ARCore";
                exception = e;
            } catch (UnavailableApkTooOldException e) {
                message   = "Please update ARCore";
                exception = e;
            } catch (UnavailableSdkTooOldException e) {
                message   = "Please update this app";
                exception = e;
            } catch (Java.Lang.Exception e) {
                exception = e;
                message   = "This device does not support AR";
            }

            if (message != null)
            {
                Toast.MakeText(this, message, ToastLength.Long).Show();
                return;
            }

            // Create default config, check is supported, create session from that config.
            var config = new Google.AR.Core.Config(mSession);

            if (!mSession.IsSupported(config))
            {
                Toast.MakeText(this, "This device does not support AR", ToastLength.Long).Show();
                Finish();
                return;
            }

            mGestureDetector = new Android.Views.GestureDetector(this, new SimpleTapGestureDetector {
                SingleTapUpHandler = (MotionEvent arg) => {
                    onSingleTap(arg);
                    return(true);
                },
                DownHandler = (MotionEvent arg) => true
            });

            mSurfaceView.SetOnTouchListener(this);

            // Set up renderer.
            mSurfaceView.PreserveEGLContextOnPause = true;
            mSurfaceView.SetEGLContextClientVersion(2);
            mSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0);             // Alpha used for plane blending.
            mSurfaceView.SetRenderer(this);
            mSurfaceView.RenderMode = Rendermode.Continuously;
        }
Exemplo n.º 2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            BitmapCache.Context = TextureCache.Context = Instance = this;

            DisplayMetrics m = new DisplayMetrics();

            WindowManager.DefaultDisplay.GetMetrics(m);
            density = m.Density;

            try
            {
                version = PackageManager.GetPackageInfo(PackageName, 0).VersionName;
            }
            catch (PackageManager.NameNotFoundException)
            {
                version = "???";
            }

            VolumeControlStream = Stream.Music;

            view = new GLSurfaceView(this);
            view.SetEGLContextClientVersion(2);
            view.SetEGLConfigChooser(false);
            view.SetRenderer(this);
            view.SetOnTouchListener(this);
            SetContentView(view);
        }
Exemplo n.º 3
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            this.SetContentView(Resource.Layout.hand_activity_main);
            mTextView    = (TextView)FindViewById(Resource.Id.handTextView);
            mSurfaceView = (GLSurfaceView)FindViewById(Resource.Id.handSurfaceview);

            mDisplayRotationManager = new DisplayRotationManager(this);

            // Keep the OpenGL ES running context.
            mSurfaceView.PreserveEGLContextOnPause = true;

            // Set the OpenGLES version.
            mSurfaceView.SetEGLContextClientVersion(2);

            // Set the EGL configuration chooser, including for the
            // number of bits of the color buffer and the number of depth bits.
            mSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0);

            mHandRenderManager = new HandRenderManager(this);
            mHandRenderManager.SetDisplayRotationManager(mDisplayRotationManager);
            mHandRenderManager.SetTextView(mTextView);

            mSurfaceView.SetRenderer(mHandRenderManager);
            mSurfaceView.RenderMode = Android.Opengl.Rendermode.Continuously;
        }
Exemplo n.º 4
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.Main);
            mSurfaceView = FindViewById <GLSurfaceView>(Resource.Id.surfaceview);

            mSession = new Session(/*context=*/ this);

            // Create default config, check is supported, create session from that config.
            mDefaultConfig = Google.AR.Core.Config.CreateDefaultConfig();
            if (!mSession.IsSupported(mDefaultConfig))
            {
                Toast.MakeText(this, "This device does not support AR", ToastLength.Long).Show();
                Finish();
                return;
            }

            mGestureDetector = new Android.Views.GestureDetector(this, new SimpleTapGestureDetector {
                SingleTapUpHandler = (MotionEvent arg) => {
                    onSingleTap(arg);
                    return(true);
                },
                DownHandler = (MotionEvent arg) => true
            });

            mSurfaceView.SetOnTouchListener(this);

            // Set up renderer.
            mSurfaceView.PreserveEGLContextOnPause = true;
            mSurfaceView.SetEGLContextClientVersion(2);
            mSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0);             // Alpha used for plane blending.
            mSurfaceView.SetRenderer(this);
            mSurfaceView.RenderMode = Rendermode.Continuously;
        }
Exemplo n.º 5
0
        /// <summary>
        /// See Android App lifecycle diagram to know when Android call this event hadler
        /// https://developer.android.com/guide/components/activities/activity-lifecycle
        /// </summary>
        /// <param name="savedInstanceState">use this to store global app variables and objects when ardroid reLaunch application</param>
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            //Set Resources/layout/activity_main.axml as this activity content view (see android:id="@+id/mainlayout")
            SetContentView(Resource.Layout.activity_ruslan);

            _GLSurfaceView = new GLSurfaceView(this);
            _GLSurfaceView.SetEGLContextClientVersion(2);

            renderer = new RuslanRenderer(this);
            _GLSurfaceView.SetRenderer(renderer);

            RelativeLayout sceneHolder = (RelativeLayout)this.FindViewById(Resource.Id.sceneHolder);

            sceneHolder.AddView(_GLSurfaceView);

            ruslanView        = new RuslanView(this);
            ruslanView.render = renderer;
            ruslanView.SetOnTouchListener(this);

            sceneHolder.AddView(ruslanView);

            System.Timers.Timer timer = new System.Timers.Timer();
            timer.Interval = 10;
            timer.Elapsed += OnTimedEvent;
            timer.Enabled  = true;
        }
Exemplo n.º 6
0
 private void SetupGlSurfaceView()
 {
     glSurfaceView = FindViewById <GLSurfaceView>(Resource.Id.surfaceview);
     glSurfaceView.PreserveEGLContextOnPause = true;
     glSurfaceView.SetEGLContextClientVersion(2);
     glSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0);
     glSurfaceView.SetOnTouchListener(this);
     glSurfaceView.SetRenderer(this);
 }
Exemplo n.º 7
0
 protected override void OnCreate(Bundle savedInstanceState)
 {
     base.OnCreate(savedInstanceState);
     this.RequestWindowFeature(WindowFeatures.NoTitle);
     this.Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen);
     glView = new GLSurfaceView(this);
     glView.SetRenderer(new SimpleRender());
     SetContentView(glView);
 }
Exemplo n.º 8
0
        protected override void OnCreate(Bundle savedInstance)
        {
            base.OnCreate(savedInstance);

            var glView = new GLSurfaceView(this);

            glView.SetRenderer(new MyRenderer());
            SetContentView(glView);
        }
Exemplo n.º 9
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_jpoint_cloud);
            Title = GetString(Resource.String.app_name);

            mPoseTextView                = (TextView)FindViewById(Resource.Id.pose);
            mQuatTextView                = (TextView)FindViewById(Resource.Id.quat);
            mPoseCountTextView           = (TextView)FindViewById(Resource.Id.posecount);
            mDeltaTextView               = (TextView)FindViewById(Resource.Id.deltatime);
            mTangoEventTextView          = (TextView)FindViewById(Resource.Id.tangoevent);
            mPoseStatusTextView          = (TextView)FindViewById(Resource.Id.status);
            mPointCountTextView          = (TextView)FindViewById(Resource.Id.pointCount);
            mTangoServiceVersionTextView = (TextView)FindViewById(Resource.Id.version);
            mApplicationVersionTextView  = (TextView)FindViewById(Resource.Id.appversion);
            mAverageZTextView            = (TextView)FindViewById(Resource.Id.averageZ);
            mFrequencyTextView           = (TextView)FindViewById(Resource.Id.frameDelta);

            mFirstPersonButton = (Button)FindViewById(Resource.Id.first_person_button);
            mFirstPersonButton.SetOnClickListener(this);
            mThirdPersonButton = (Button)FindViewById(Resource.Id.third_person_button);
            mThirdPersonButton.SetOnClickListener(this);
            mTopDownButton = (Button)FindViewById(Resource.Id.top_down_button);
            mTopDownButton.SetOnClickListener(this);

            mTango  = new Tango(this);
            mConfig = new TangoConfig();
            mConfig = mTango.GetConfig(TangoConfig.ConfigTypeCurrent);
            mConfig.PutBoolean(TangoConfig.KeyBooleanDepth, true);

            int maxDepthPoints = mConfig.GetInt("max_point_cloud_elements");

            mRenderer = new PCRenderer(maxDepthPoints);
            mGLView   = (GLSurfaceView)FindViewById(Resource.Id.gl_surface_view);
            mGLView.SetEGLContextClientVersion(2);
            mGLView.SetRenderer(mRenderer);
            mGLView.RenderMode = Rendermode.WhenDirty;

            PackageInfo packageInfo;

            try
            {
                packageInfo = this.PackageManager.GetPackageInfo(this.PackageName, 0);
                mApplicationVersionTextView.Text = packageInfo.VersionName;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.ToString());
                System.Diagnostics.Debug.WriteLine(e.StackTrace);
            }

            // Display the version of Tango Service
            mServiceVersion = mConfig.GetString("tango_service_library_version");
            mTangoServiceVersionTextView.Text = mServiceVersion;
            mIsTangoServiceConnected          = false;
        }
Exemplo n.º 10
0
        //

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            Engine.activity = this;

            //apply general settings
            if (fullscreen)
            {
                Window.AddFlags(WindowManagerFlags.Fullscreen);
            }
            if (keepScreenOn)
            {
                Window.AddFlags(WindowManagerFlags.KeepScreenOn);
            }

            StartupTiming.TotalStart();

            SetContentView(Resource.Layout.activity_main);

            //Android.Support.V7.Widget.Toolbar toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>( Resource.Id.toolbar );
            //SetSupportActionBar( toolbar );

#if VULKAN
            surfaceView = new VulkanView(this);

            //!!!!LinearLayout?
            RelativeLayout sceneHolder = (RelativeLayout)this.FindViewById(Resource.Id.sceneHolder);
            sceneHolder.AddView(surfaceView);

            surfaceView.SetOnTouchListener(this);
#else
            glSurfaceView = new GLSurfaceView(this);
            glSurfaceView.SetEGLContextClientVersion(3);

            //it's just recommendation, is not works for any device
            glSurfaceView.PreserveEGLContextOnPause = true;

            //!!!!hdr
            //glSurfaceView.SetEGLConfigChooser( 8, 8, 8, 8, 24, 8 );

            var renderer = new Renderer();
            glSurfaceView.SetRenderer(renderer);

            RelativeLayout sceneHolder = (RelativeLayout)this.FindViewById(Resource.Id.sceneHolder);
            sceneHolder.AddView(glSurfaceView);

            glSurfaceView.SetOnTouchListener(this);
#endif

            //engineMainThread = new Thread( EngineMainThreadMethod );
            //engineMainThread.Start();
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.SetTheme(Resource.Style.MainTheme);

            base.OnCreate(savedInstanceState);

            var renderer = new Renderer();

            var glview = new GLSurfaceView(this);

            glview.SetRenderer(renderer);

            SetContentView(glview);
        }
Exemplo n.º 12
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            mGlSurfaceView = new GLSurfaceView(this);
            ActivityManager am = (ActivityManager)GetSystemService(Context.ActivityService);

            mGlSurfaceView.SetEGLContextClientVersion(2);
            mGlSurfaceView.SetEGLConfigChooser(true);
            var gr = new GameRenderer();

            mGlSurfaceView.SetRenderer(gr);
            SetContentView(mGlSurfaceView);
        }
Exemplo n.º 13
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // 创建一个GLSurfaceView,用于显示OpenGL绘制的图形
            GLSurfaceView glView = new GLSurfaceView(this);
            // 创建GLSurfaceView的内容绘制器
            MyRenderer myRenderer = new MyRenderer(this);

            // 为GLSurfaceView设置绘制器
            glView.SetRenderer(myRenderer);

            // Set our view from the "main" layout resource
            SetContentView(glView);
            detector = new GestureDetector(this, this);
        }
Exemplo n.º 14
0
        /// <summary>
        /// See Android App lifecycle diagram to know when Android call this event hadler
        /// https://developer.android.com/guide/components/activities/activity-lifecycle
        /// </summary>
        /// <param name="savedInstanceState">use this to store global app variables and objects when ardroid reLaunch application</param>
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            //Set Resources/layout/activity_main.axml as this activity content view (see android:id="@+id/mainlayout")
            SetContentView(Resource.Layout.activity_main);

            _GLSurfaceView = new GLSurfaceView(this);
            _GLSurfaceView.SetEGLContextClientVersion(2);

            Renderer renderer = new Renderer(this);

            _GLSurfaceView.SetRenderer(renderer);

            RelativeLayout sceneHolder = (RelativeLayout)this.FindViewById(Resource.Id.sceneHolder);

            sceneHolder.AddView(_GLSurfaceView);
        }
Exemplo n.º 15
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            RequestWindowFeature(WindowFeatures.NoTitle);
            Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen);
            _glView = new GLSurfaceView(this);
            //mod
            //_glView.SetEGLConfigChooser (false);
            //_glView.SetEGLConfigChooser(8, 8, 8, 8, 0,0);

            _glView.SetRenderer(this);
            _input      = new AndroidInput(this, _glView, 1, 1);
            _file       = new AndroidFileIO(this.Assets);
            _audio      = new AndroidAudio(this);
            _glGraphics = new AndroidGLGraphics(_glView);
            SetContentView(_glView);
            PowerManager pm = (PowerManager)GetSystemService(Service.PowerService);

            _wakeLock = pm.NewWakeLock(WakeLockFlags.Full, "GLGame");
        }
Exemplo n.º 16
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            this.SetContentView(Resource.Layout.world_activity_main);

            this.mSurfaceView       = (GLSurfaceView)FindViewById(Resource.Id.surfaceview);
            mDisplayRotationManager = new DisplayRotationManager(this);
            InitGestureDetector();

            mSurfaceView.PreserveEGLContextOnPause = true;
            mSurfaceView.SetEGLContextClientVersion(OPENGLES_VERSION);

            // Set the EGL configuration chooser, including for the number of
            // bits of the color buffer and the number of depth bits.
            mSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0);

            mWorldRenderManager = new WorldRenderManager(this, this.ApplicationContext);
            mWorldRenderManager.SetDisplayRotationManager(mDisplayRotationManager);
            mWorldRenderManager.SetQueuedSingleTaps(mQueuedSingleTaps);

            mSurfaceView.SetRenderer(mWorldRenderManager);
            mSurfaceView.RenderMode = Android.Opengl.Rendermode.Continuously;
        }
Exemplo n.º 17
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_area_learning);


            mTangoEventTextView = (TextView)FindViewById(Resource.Id.tangoevent);

            mAdf2DeviceTranslationTextView   = (TextView)FindViewById(Resource.Id.adf2devicePose);
            mStart2DeviceTranslationTextView = (TextView)FindViewById(Resource.Id.start2devicePose);
            mAdf2StartTranslationTextView    = (TextView)FindViewById(Resource.Id.adf2startPose);
            mAdf2DeviceQuatTextView          = (TextView)FindViewById(Resource.Id.adf2deviceQuat);
            mStart2DeviceQuatTextView        = (TextView)FindViewById(Resource.Id.start2deviceQuat);
            mAdf2StartQuatTextView           = (TextView)FindViewById(Resource.Id.adf2startQuat);

            mAdf2DevicePoseStatusTextView   = (TextView)FindViewById(Resource.Id.adf2deviceStatus);
            mStart2DevicePoseStatusTextView = (TextView)FindViewById(Resource.Id.start2deviceStatus);
            mAdf2StartPoseStatusTextView    = (TextView)FindViewById(Resource.Id.adf2startStatus);

            mAdf2DevicePoseCountTextView   = (TextView)FindViewById(Resource.Id.adf2devicePosecount);
            mStart2DevicePoseCountTextView = (TextView)FindViewById(Resource.Id.start2devicePosecount);
            mAdf2StartPoseCountTextView    = (TextView)FindViewById(Resource.Id.adf2startPosecount);

            mAdf2DevicePoseDeltaTextView   = (TextView)FindViewById(Resource.Id.adf2deviceDeltatime);
            mStart2DevicePoseDeltaTextView = (TextView)FindViewById(Resource.Id.start2deviceDeltatime);
            mAdf2StartPoseDeltaTextView    = (TextView)FindViewById(Resource.Id.adf2startDeltatime);

            mFirstPersonButton = (Button)FindViewById(Resource.Id.first_person_button);
            mThirdPersonButton = (Button)FindViewById(Resource.Id.third_person_button);
            mTopDownButton     = (Button)FindViewById(Resource.Id.top_down_button);

            mTangoServiceVersionTextView = (TextView)FindViewById(Resource.Id.version);
            mApplicationVersionTextView  = (TextView)FindViewById(Resource.Id.appversion);
            mGLView = (GLSurfaceView)FindViewById(Resource.Id.gl_surface_view);

            mSaveAdf      = (Button)FindViewById(Resource.Id.saveAdf);
            mUUIDTextView = (TextView)FindViewById(Resource.Id.uuid);

            mSaveAdf.Visibility = Android.Views.ViewStates.Gone;
            // Set up button click listeners
            mFirstPersonButton.SetOnClickListener(this);
            mThirdPersonButton.SetOnClickListener(this);
            mTopDownButton.SetOnClickListener(this);

            PackageInfo packageInfo;

            try
            {
                packageInfo = this.PackageManager.GetPackageInfo(this.PackageName, 0);
                mApplicationVersionTextView.Text = packageInfo.VersionName;
            }
            catch (Android.Content.PM.PackageManager.NameNotFoundException e)
            {
                System.Diagnostics.Debug.WriteLine(e.ToString());
                System.Diagnostics.Debug.WriteLine(e.StackTrace);
            }

            // Configure OpenGL renderer
            mRenderer = new ADRenderer();
            mGLView.SetEGLContextClientVersion(2);
            mGLView.SetRenderer(mRenderer as Android.Opengl.GLSurfaceView.IRenderer);
            mGLView.RenderMode = Android.Opengl.Rendermode.WhenDirty;

            // Instantiate the Tango service
            mTango         = new Tango(this);
            mIsRelocalized = false;

            Intent intent = Intent;

            mIsLearningMode            = intent.GetBooleanExtra(ADStartActivity.USE_AREA_LEARNING, false);
            mIsConstantSpaceRelocalize = intent.GetBooleanExtra(ADStartActivity.LOAD_ADF, false);
            SetTangoConfig();
        }
Exemplo n.º 18
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.Main);
            mSurfaceView           = FindViewById <GLSurfaceView>(Resource.Id.surfaceview);
            mDisplayRotationHelper = new DisplayRotationHelper(this);

            Java.Lang.Exception exception = null;
            string message = null;

            try
            {
                mSession = new Session(/*context=*/ this);
            }
            catch (UnavailableArcoreNotInstalledException e)
            {
                message   = "Please install ARCore";
                exception = e;
            }
            catch (UnavailableApkTooOldException e)
            {
                message   = "Please update ARCore";
                exception = e;
            }
            catch (UnavailableSdkTooOldException e)
            {
                message   = "Please update this app";
                exception = e;
            }
            catch (Java.Lang.Exception e)
            {
                exception = e;
                message   = "This device does not support AR";
            }

            if (message != null)
            {
                Toast.MakeText(this, message, ToastLength.Long).Show();
                return;
            }


            // Create default config, check is supported, create session from that config.
            var config = new Google.AR.Core.Config(mSession);

            if (!mSession.IsSupported(config))
            {
                Toast.MakeText(this, "This device does not support AR", ToastLength.Long).Show();
                Finish();
                return;
            }

            AugmentedImageDatabase imageDatabase = new AugmentedImageDatabase(mSession);

            Bitmap bitmap = null;

            try
            {
                var inputStream = Assets.Open("qrcode.png");
                bitmap = BitmapFactory.DecodeStream(inputStream);
            }
            catch (IOException e)
            {
                Log.Error(TAG, "I/O exception loading augmented image bitmap.", e);
            }
            index = imageDatabase.AddImage("interstellar", bitmap, 0.01f);
            config.AugmentedImageDatabase = imageDatabase;

            mSession.Configure(config);

            mGestureDetector = new GestureDetector(this, new TapGestureDetector
            {
                SingleTapUpHandler = (MotionEvent arg) => {
                    OnSingleTap(arg);
                    return(true);
                },
                DownHandler = (MotionEvent arg) => true
            });

            mSurfaceView.SetOnTouchListener(this);



            // Set up renderer.
            mSurfaceView.PreserveEGLContextOnPause = true;
            mSurfaceView.SetEGLContextClientVersion(2);
            mSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0); // Alpha used for plane blending.
            mSurfaceView.SetRenderer(this);
            mSurfaceView.RenderMode = Rendermode.Continuously;
        }
Exemplo n.º 19
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            var layOut = Resource.Layout.activity_motion_tracking;

            _TAG = this.GetType().Name;
            SetContentView(layOut);
            Intent intent = Intent;

            mIsAutoRecovery = intent.GetBooleanExtra(KEY_MOTIONTRACKING_AUTORECOVER, false);
            // Text views for displaying translation and rotation data
            mPoseTextView       = (TextView)FindViewById(Resource.Id.pose);
            mQuatTextView       = (TextView)FindViewById(Resource.Id.quat);
            mPoseCountTextView  = (TextView)FindViewById(Resource.Id.posecount);
            mDeltaTextView      = (TextView)FindViewById(Resource.Id.deltatime);
            mTangoEventTextView = (TextView)FindViewById(Resource.Id.tangoevent);
            // Buttons for selecting camera view and Set up button click listeners
            FindViewById(Resource.Id.first_person_button).SetOnClickListener(this);
            FindViewById(Resource.Id.third_person_button).SetOnClickListener(this);
            FindViewById(Resource.Id.top_down_button).SetOnClickListener(this);

            // Button to reset motion tracking
            mMotionResetButton = (Button)FindViewById(Resource.Id.resetmotion);

            // Text views for the status of the pose data and Tango library versions
            mPoseStatusTextView          = (TextView)FindViewById(Resource.Id.status);
            mTangoServiceVersionTextView = (TextView)FindViewById(Resource.Id.version);
            mApplicationVersionTextView  = (TextView)FindViewById(Resource.Id.appversion);

            // OpenGL view where all of the graphics are drawn
            mGLView = (GLSurfaceView)FindViewById(Resource.Id.gl_surface_view);

            // Set up button click listeners
            mMotionResetButton.Click += mMotionResetButton_Click;

            // Configure OpenGL renderer
            mRenderer = new MTGLRenderer();
            mGLView.SetEGLContextClientVersion(2);
            mGLView.SetRenderer(mRenderer);
            mGLView.RenderMode = Rendermode.WhenDirty;

            // Instantiate the Tango service
            mTango = new Tango(this);
            // Create a new Tango Configuration and enable the MotionTracking API
            mConfig = new TangoConfig();
            mConfig = mTango.GetConfig(TangoConfig.ConfigTypeCurrent);
            mConfig.PutBoolean(TangoConfig.KeyBooleanMotiontracking, true);

            // The Auto-Recovery ToggleButton Sets a boolean variable to determine
            // if the
            // Tango service should automatically attempt to recover when
            // / MotionTracking enters an invalid state.
            if (mIsAutoRecovery)
            {
                mConfig.PutBoolean(TangoConfig.KeyBooleanAutorecovery, true);
                Log.Info(TAG, "Auto Recovery On");
            }
            else
            {
                mConfig.PutBoolean(TangoConfig.KeyBooleanAutorecovery, false);
                Log.Info(TAG, "Auto Recovery Off");
            }

            PackageInfo packageInfo;

            try
            {
                packageInfo = this.PackageManager.GetPackageInfo(this.PackageName, 0);
                mApplicationVersionTextView.Text = packageInfo.VersionName;
            }
            catch (NameNotFoundException e)
            {
                Console.WriteLine(e.ToString());
                Console.Write(e.StackTrace);
            }

            // Display the library version for debug purposes
            mTangoServiceVersionTextView.Text = mConfig.GetString("tango_service_library_version");
        }
Exemplo n.º 20
0
        protected override void OnElementChanged(ElementChangedEventArgs <Page> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement != null || Element == null)
            {
                return;
            }

            try
            {
                //need to add this on main layout
                //mSurfaceView = FindViewById<GLSurfaceView>(Resource.Id.surfaceview);

                Java.Lang.Exception exception = null;
                string message = null;

                try
                {
                    //Create session
                    //mSession = new Session(_context);
                }
                //catch (UnavailableArcoreNotInstalledException ex)
                //{
                //    message = "Please install ARCore";
                //    exception = ex;
                //}
                //catch (UnavailableApkTooOldException ex)
                //{
                //    message = "Please update ARCore";
                //    exception = ex;
                //}
                //catch (UnavailableSdkTooOldException ex)
                //{
                //    message = "Please update this app";
                //    exception = ex;
                //}
                catch (Java.Lang.Exception ex)
                {
                    exception = ex;
                    message   = "This device does not support AR";
                }

                if (message != null)
                {
                    Toast.MakeText(_context, message, ToastLength.Long).Show();
                    return;
                }

                // Create default config, check is supported, create session from that config.
                var config = new Google.AR.Core.Config(mSession);
                if (!mSession.IsSupported(config))
                {
                    Toast.MakeText(_context, "This device does not support AR", ToastLength.Long).Show();
                    return;
                }

                mGestureDetector = new Android.Views.GestureDetector(_context, new SimpleTapGestureDetector
                {
                    SingleTapUpHandler = (MotionEvent arg) => {
                        onSingleTap(arg);
                        return(true);
                    },
                    DownHandler = (MotionEvent arg) => true
                });

                mSurfaceView.SetOnTouchListener(this);

                // Set up renderer.
                mSurfaceView.PreserveEGLContextOnPause = true;
                mSurfaceView.SetEGLContextClientVersion(2);
                mSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0); // Alpha used for plane blending.
                mSurfaceView.SetRenderer(this);
                mSurfaceView.RenderMode = Rendermode.Continuously;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(@"           ERROR: ", ex.Message);
            }
        }