Ejemplo n.º 1
0
 public override void receivePose(SimplePose newPose)
 {
     lock (thisLock)
     {
         m_pose = UbiMeasurementUtils.ubitrackToUnity(newPose);
     }
 }
Ejemplo n.º 2
0
        // Use this for initialization
        public override void utInit(SimpleFacade simpleFacade)
        {
            base.utInit(simpleFacade);

            switch (ubitrackEvent)
            {
            case UbitrackEventType.Pull: {
                m_posePull   = simpleFacade.getSimplePullSinkPose(patternID);
                m_simplePose = new SimplePose();

                if (m_posePull == null)
                {
                    throw new Exception("SimpleApplicationPullSinkPose not found for poseID:" + patternID);
                }
                break;
            }

            case UbitrackEventType.Push: {
                m_poseReceiver = new UnityPoseReceiver();

                if (!simpleFacade.setPoseCallback(patternID, m_poseReceiver))
                {
                    throw new Exception("SimplePoseReceiver could not be set for poseID:" + patternID);
                }

                break;
            }

            default:
                break;
            }
        }
Ejemplo n.º 3
0
	// Use this for initialization    
    public override void utInit(Ubitrack.SimpleFacade simpleFacade)
    {
        base.utInit(simpleFacade);
        		
		switch(ubitrackEvent)
		{
		case UbitrackEventType.Pull:{
            m_posePull = simpleFacade.getSimplePullSinkPose(patternID);
            m_simplePose = new SimplePose();	
			 	if (m_posePull == null)
			    {
                    throw new Exception("SimpleApplicationPullSinkPose not found for poseID:" + patternID);
			    }
				break;
			}
		case UbitrackEventType.Push:{
            m_poseReceiver = new UnityPoseReceiver();

            if (!simpleFacade.setPoseCallback(patternID, m_poseReceiver))
				{
                    throw new Exception("SimplePoseReceiver could not be set for poseID:" + patternID);
				}
              
				break;
			}
		default:
		break;
		}    		
	}
Ejemplo n.º 4
0
        internal static SimplePose getGameObjectPose(UbitrackRelativeToUnity relative, GameObject go)
        {
            SimplePose pose = new SimplePose();
            Vector3    pos  = new Vector3();
            Quaternion rot  = new Quaternion();

            switch (relative)
            {
            case UbitrackRelativeToUnity.Local:
            {
                UbiMeasurementUtils.coordsysemChange(go.transform.localPosition, ref pos);
                UbiMeasurementUtils.coordsysemChange(go.transform.localRotation, ref rot);
                break;
            }

            case UbitrackRelativeToUnity.World:
            {
                UbiMeasurementUtils.coordsysemChange(go.transform.position, ref pos);
                UbiMeasurementUtils.coordsysemChange(go.transform.rotation, ref rot);
                break;
            }

            default:
                break;
            }
            pose.tx = pos.x;
            pose.ty = pos.y;
            pose.tz = pos.z;

            pose.rx = rot.x;
            pose.ry = rot.y;
            pose.rz = rot.z;
            pose.rw = rot.w;
            return(pose);
        }
Ejemplo n.º 5
0
 public override void receivePose(SimplePose newPose)
 {
     lock (thisLock)
     {			
         m_pose = UbiMeasurementUtils.ubitrackToUnity(newPose);            
     }
 }
        internal static Measurement <Pose> ubitrackToUnity(SimplePose ubitrackPose)
        {
            // mirrored at z-Axis, rotation inverted

            Vector3    trans = new Vector3((float)ubitrackPose.tx, (float)ubitrackPose.ty, (float)ubitrackPose.tz);
            Quaternion rot   = new Quaternion((float)ubitrackPose.rx, (float)ubitrackPose.ry, (float)ubitrackPose.rz, (float)ubitrackPose.rw);
            Pose       data  = new Pose();

            trans = trans * UbiToUnityScaleFactor;

            coordsysemChange(trans, ref data.pos);
            coordsysemChange(rot, ref data.rot);

            return(new Measurement <Pose>(data, ubitrackPose.timestamp));
        }
Ejemplo n.º 7
0
        void Update()
        {
            switch (ubitrackEvent)
            {
            case UbitrackEventType.Push: {
                SimplePose simplePose = UbiUnityUtils.getGameObjectPose(relative, gameObject);
                m_poseReciever.receivePose(simplePose);
                if (once)
                {
                    this.enabled = false;
                }
                break;
            }

            case UbitrackEventType.Pull:
            default:
                break;
            }
        }