// Update is called once per frame
        void OnRenderObject()
        {
            if (m_isTextureInitialized)
            {
                //Profiler.StartProfile("updateTextureComponent");

                ulong dummy = (ulong)m_texture.GetNativeTexturePtr();
                m_dummy.getPosition3D(m_dummyValue, dummy);

                if (m_dummyValue.timestamp > 0)
                {
                    m_lastData = new Measurement <ulong>(m_dummyValue.timestamp, m_dummyValue.timestamp);
                    triggerPull(m_dummyValue.timestamp);
                }
                //if(m_dummyValue.timestamp == dummy) Profiler.EndProfile("updateTextureComponent");
            }
            else
            {
                //ulong dummy = (ulong)0;
                //m_dummy.getPosition3D(m_dummyValue, dummy);
                //if(m_dummyValue.x > 10f){
                //      m_imageWidth = (int)m_dummyValue.x;
                //    m_imageHeight = (int)m_dummyValue.y;
                //  m_imageChannels = (int)m_dummyValue.z;

                //initTexture();
                //}

                m_imageWidth    = (int)1920;
                m_imageHeight   = (int)1080;
                m_imageChannels = (int)3;
                initTexture();
            }
            //Profiler.PrintResults();
        }
Ejemplo n.º 2
0
        void FixedUpdate()
        {
            m_position = null;

            switch (ubitrackEvent)
            {
            case UbitrackEventType.Pull: {
                ulong lastTimestamp = UbiMeasurementUtils.getUbitrackTimeStamp();
                if (m_positionPull.getPosition3D(m_simplePosition, lastTimestamp))
                {
                    m_position = UbiMeasurementUtils.ubitrackToUnity(m_simplePosition);
                }
                break;
            }

            case UbitrackEventType.Push: {
                m_position = m_positionReceiver.getData();
                break;
            }

            default:
                break;
            }

            if (m_position != null)
            {
                UbiUnityUtils.setGameObjectPosition(relative, gameObject, m_position.data());
                m_lastData = m_position;
            }

            if (m_lastData != null)
            {
                ulong timeDiff             = UbiMeasurementUtils.getUbitrackTimeStamp() - m_lastData.time();
                float timeDiffMilliSeconds = (float)timeDiff * 1E-6f;
                m_timeout = timeDiffMilliSeconds > TimeoutInMilliSeconds;
            }
        }