// Use this for initialization
        public override void utInit(SimpleFacade simpleFacade)
        {
            base.utInit(simpleFacade);


            switch (ubitrackEvent)
            {
            case UbitrackEventType.Pull: {
                m_positionPull = simpleFacade.getPullSinkPosition3D(patternID);

                m_simplePosition = new SimplePosition3D();
                if (m_positionPull == null)
                {
                    throw new Exception("SimpleApplicationPullSinkPosition3D not found for poseID:" + patternID);
                }
                break;
            }

            case UbitrackEventType.Push: {
                m_positionReceiver = new UnityPositionReceiver();

                if (!simpleFacade.set3DPositionCallback(patternID, m_positionReceiver))
                {
                    throw new Exception("UnityPositionReceiver could not be set for poseID:" + patternID);
                }

                break;
            }

            default:
                break;
            }
        }
        void Update()
        {
            if (sending)
            {
                switch (ubitrackEvent)
                {
                case UbitrackEventType.Push:
                {
                    SimplePosition3D simplePos3D = new SimplePosition3D();
                    Vector3          output      = Vector3.zero;
                    UbiMeasurementUtils.coordsysemChange(sendPos, ref output);
                    simplePos3D.x         = output.x;
                    simplePos3D.y         = output.y;
                    simplePos3D.z         = output.z;
                    simplePos3D.timestamp = UbiMeasurementUtils.getUbitrackTimeStamp();
                    m_poseReciever.receivePosition3D(simplePos3D);
                    if (once)
                    {
                        this.enabled = false;
                    }
                    break;
                }

                case UbitrackEventType.Pull:
                default:
                    break;
                }
            }
        }
示例#3
0
	// Use this for initialization    
    public override void utInit(Ubitrack.SimpleFacade simpleFacade)
    {
        base.utInit(simpleFacade);
        
        		
		switch(ubitrackEvent)
		{
		case UbitrackEventType.Pull:{
            m_positionPull = simpleFacade.getPullSinkPosition3D(patternID);
            m_simplePosition = new SimplePosition3D();
			 	if (m_positionPull == null)
			    {
                    throw new Exception("SimpleApplicationPullSinkPosition3D not found for poseID:" + patternID);
			    }
				break;
			}
		case UbitrackEventType.Push:{
            m_positionReceiver = new UnityPositionReceiver();

            if (!simpleFacade.set3DPositionCallback(patternID, m_positionReceiver))
				{
                    throw new Exception("UnityPositionReceiver could not be set for poseID:" + patternID);
				}
              
				break;
			}
		default:
		break;
		}    		
	}
 public override void receivePosition3D(SimplePosition3D newPosition)
 {
     lock (thisLock)
     {			
         m_position = UbiMeasurementUtils.ubitrackToUnity(newPosition);            
     }
 }
示例#5
0
 public override void receivePosition3D(SimplePosition3D newPosition)
 {
     lock (thisLock)
     {
         m_position = UbiMeasurementUtils.ubitrackToUnity(newPosition);
     }
 }
        internal static Measurement <Vector3> ubitrackToUnity(SimplePosition3D position)
        {
            Vector3 data   = new Vector3();
            Vector3 ubiPos = new Vector3((float)position.x, (float)position.y, (float)position.z);

            ubiPos = ubiPos * UbiToUnityScaleFactor;

            coordsysemChange(ubiPos, ref data);


            return(new Measurement <Vector3>(data, position.timestamp));
        }
        public void send(ulong timestamp)
        {
            SimplePosition3D simplePos3D = new SimplePosition3D();
            Vector3          output      = Vector3.zero;

            UbiMeasurementUtils.coordsysemChange(sendPos, ref output);
            simplePos3D.x         = output.x;
            simplePos3D.y         = output.y;
            simplePos3D.z         = output.z;
            simplePos3D.timestamp = timestamp;
            m_poseReciever.receivePosition3D(simplePos3D);
            if (once)
            {
                this.enabled = false;
            }
        }
示例#8
0
	internal static Measurement<Vector3> ubitrackToUnity(SimplePosition3D position)
    {
        Vector3 data = new Vector3();
		Vector3 ubiPos = new Vector3((float)position.x,(float)position.y, (float)position.z);
		
        coordsysemChange(ubiPos, ref data);
		

        return new Measurement<Vector3>(data, position.timestamp);
    }