Exemplo n.º 1
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            OpenvrWrapper temp = null;

            if (!DA.GetData("Vive", ref temp))
            {
                return;
            }
            var list = temp.TrackedDevices.IndexesByClasses["HMD"];

            if (list.Count == 0)
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "No HMD deteceted");
                return;
            }
            int index = temp.TrackedDevices.IndexesByClasses["HMD"][0];

            CurrenTrackedDevice = temp.TrackedDevices.AllDevices[index];
            this.Message        = "HMD";
            CurrenTrackedDevice.ConvertPose();
            XyPlane = Plane.WorldXY;
            XyPlane.Transform(CurrenTrackedDevice.CorrectedMatrix4X4);
            if (!Paused)
            {
                OldPlane     = XyPlane;
                OldTransform = CurrenTrackedDevice.CorrectedMatrix4X4;
            }

            var newHMD = HMD.Duplicate();

            newHMD.Transform(OldTransform);
            DA.SetData("HMD", newHMD);
            DA.SetData("Plane", OldPlane);
            DA.SetData("Matrix", OldTransform);
        }
 /// <summary>
 /// Initializes a new instance of the ObjController class.
 /// </summary>
 public ObjController1()
     : base("Controller1", "Controller1",
            "Tracking of HTC Vive Controller",
            "ViveTrack", "Tracking Device")
 {
     controller          = GH_Convert.ByteArrayToCommonObject <GeometryBase>(System.Convert.FromBase64String(Resources.controller));
     CurrenTrackedDevice = new VrTrackedDevice();
     //(this as IGH_PreviewObject).Hidden = true;
 }
Exemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the ObjHMD class.
 /// </summary>
 public ObjHMD()
     : base("Vive HMD", "HMD",
            "Tracking of HTC Vive HMD",
            "ViveTrack", "Tracking Device")
 {
     HMD = GH_Convert.ByteArrayToCommonObject <GeometryBase>(System.Convert.FromBase64String(Resources.HMD));
     CurrenTrackedDevice = new VrTrackedDevice();
     //(this as IGH_PreviewObject).Hidden = true;
 }
 /// <summary>
 /// Initializes a new instance of the ObjTracker class.
 /// </summary>
 public ObjTracker()
     : base("Tracker", "Tracker",
            "HTC Vive Tracker 3D model",
            "ViveTrack", "Tracking Device")
 {
     tracker             = GH_Convert.ByteArrayToCommonObject <GeometryBase>(System.Convert.FromBase64String(Resources.tracker));
     CurrenTrackedDevice = new VrTrackedDevice();
     //(this as IGH_PreviewObject).Hidden = true;
 }
Exemplo n.º 5
0
 /// <summary>
 /// Initializes a new instance of the ObjLighthouse class.
 /// </summary>
 public ObjLighthouse1()
     : base("Lighthouse1", "Lighthouse1",
            "Tracking of HTC Vive Lighthouse",
            "ViveTrack", "Tracking Device")
 {
     lighthouse          = GH_Convert.ByteArrayToCommonObject <GeometryBase>(System.Convert.FromBase64String(Resources.lighthouse));
     CurrenTrackedDevice = new VrTrackedDevice();
     //(this as IGH_PreviewObject).Hidden = true;
 }
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            OpenvrWrapper temp  = null;
            int           index = 0;

            if (!DA.GetData("Vive", ref temp))
            {
                return;
            }
            DA.GetData("Index", ref index);
            var list = temp.TrackedDevices.IndexesByClasses["Tracker"];

            if (list.Count == 0)
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "No Tracker deteceted");
                this.Message = "";
                return;
            }
            if (index > list.Count - 1)
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "Index exceeds the trackers detected");
                this.Message = "";
                return;
            }

            int globaleindex = temp.TrackedDevices.IndexesByClasses["Tracker"][index];

            CurrenTrackedDevice = temp.TrackedDevices.AllDevices[globaleindex];
            this.Message        = "Tracker" + index;
            CurrenTrackedDevice.ConvertPose();
            CurrenTrackedDevice.GetTrackerCorrectedMatrix4X4();
            XyPlane = Plane.WorldXY;
            XyPlane.Transform(CurrenTrackedDevice.CorrectedMatrix4X4);
            if (!Paused)
            {
                OldPlane     = XyPlane;
                OldTransform = CurrenTrackedDevice.CorrectedMatrix4X4;
            }

            var newtracker = tracker.Duplicate();

            newtracker.Transform(OldTransform);
            DA.SetData("Tracker", newtracker);
            DA.SetData("Plane", OldPlane);
            DA.SetData("Matrix", OldTransform);
        }
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            OpenvrWrapper temp = null;

            if (!DA.GetData("Vive", ref temp))
            {
                return;
            }
            var list = temp.TrackedDevices.IndexesByClasses["Controller"];

            if (list.Count == 0)
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "No Controller deteceted");
                return;
            }
            if (list.Count == 1)
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "There's only one Controller, please use Controller1");
                return;
            }
            int index = temp.TrackedDevices.IndexesByClasses["Controller"][1];

            CurrenTrackedDevice = temp.TrackedDevices.AllDevices[index];
            this.Message        = "Controller2";
            CurrenTrackedDevice.ConvertPose();
            XyPlane = Plane.WorldXY;
            XyPlane.Transform(CurrenTrackedDevice.CorrectedMatrix4X4);
            if (!Paused)
            {
                OldPlane     = XyPlane;
                OldTransform = CurrenTrackedDevice.CorrectedMatrix4X4;
            }

            var newcontroller = controller.Duplicate();

            newcontroller.Transform(OldTransform);
            DA.SetData("Controller", newcontroller);
            DA.SetData("Plane", OldPlane);
            DA.SetData("Matrix", OldTransform);

            CurrenTrackedDevice.GetControllerTriggerState();
            DA.SetDataList("TriggerState", CurrenTrackedDevice.TriggerStates);
            DA.SetDataList("TouchPadState", CurrenTrackedDevice.TouchPadStates);
        }