// 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(); }
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; } }