void Update()
    {
        ThreadFollowPoint.transform.position = NeedleThreadPoint.transform.position;
        if (CollisionHappend)
        {
            Debug.Log("Collision Occured" + this.gameObject.name);
        }
        else
        {
            //Debug.Log("No Collision");
        }


        if (PluginImport.GetButton1State() == true)
        {
            Debug.Log("Button1 Pressed");
            isButtonClicked = true;
        }
        else
        {
            isButtonClicked = false;
        }

        //if(PluginImport.GetButtonState(1,2))
        //{
        //    Debug.Log("Button1 Pressed");
        //    isButtonClicked = true;
        //}
        //else
        //{
        //    isButtonClicked = false;
        //}

        if (PluginImport.GetButtonState(1, 1))
        {
            Debug.Log("Button2Pressed");

            //GameObject NeedleObject = Instantiate(NeedleStopPoint, NeedDleStopTransform.position, Quaternion.identity, NeedleParent);
            //NeedleObject.name = NeedleParent.transform.childCount.ToString();
        }



        if (Input.GetKeyDown(KeyCode.Space))
        {
            //isButtonClicked = true;
        }

        if (Input.GetKeyUp(KeyCode.Space))
        {
            //isButtonClicked = false;
        }

        if (isButtonClicked)
        {
            if (CollisionHappend)
            {
                if (CollidedObject.name == "forcepNeedlePoint")
                {
                    transform.position = ForcepPoint.transform.position;
                    this.transform.SetParent(ForcepPoint.transform);
                }
            }
        }
        else
        {
            this.transform.SetParent(GameObject.Find("ButtonResetPoint").transform);
        }
    }
Esempio n. 2
0
    void Update()
    {
        //  myGenericFunctionsClassScript.GetProxyValues();

        /////////////////////////////////// getting position of Haptic device ///////////////////////
        double[] pos = ConverterClass.ConvertIntPtrToDouble3(PluginImport.GetProxyPosition());
        //Vector3 position1 = new Vector3 ((float)pos [2], (float)pos [1], -(float)pos [0]);                   // applying rotation as device is rotated 90 degrees to left... swapping coordinates
        /////////////////////////////////////////////////////////////////////////////////////////////

        Vector3 position1 = new Vector3((float)pos [0], (float)pos [1], (float)pos [2]);

        position1 = rotation * position1;

        ///////////////////////////////// Instantiation of Targets as Key B is pressed + writing target coordinates to text file //////////////////////////

        button1 = PluginImport.GetButton1State();
        if (button1 && !previousbutton1stateI)
        {
            target [i] = Instantiate(ball);
            target [i].transform.position = new Vector3(i * 0.1f, j * 1.0f, -1.0f);

            using (StreamWriter writer = new StreamWriter("D:\\log.txt", true)) {
                writer.WriteLine("");
                writer.Write("Position for Target ");
                writer.Write(i + 1);
                writer.Write(" = ");
                writer.Write(target[i].transform.position);
            }

            if (i > 0)
            {
                Destroy(target [i - 1]);                    // destroying previous targets as the next target is displayed
            }
            i++;
            j = j + 0.1f;
        }

        previousbutton1stateI = button1;
        //////////////////////////////////////////////////////////////////////////////////////////////////////////



        button1 = PluginImport.GetButton1State();             // getting state of button 1 on phantom

        ///////////////////////////// routine for writing pointer current position to text file/////////////////////////////////////
        if (button1 && !previousbutton1state)
        {
            if (targetwritecounter > 0)
            {
                using (StreamWriter writer = new StreamWriter("D:\\log.txt", true)) {
                    writer.WriteLine("");
                    writer.Write("Hand position for target ");
                    writer.Write(targetwritecounter);
                    writer.Write(" = ");
                    writer.Write(gameObject.transform.position);
                }
            }

            targetwritecounter++;
        }

        previousbutton1state = button1;
        //////////////////////////////////////////////////////////////////////////////////////////////


        //////////////////////////////////// Controlling visibility of haptic sphere /////////////////

        if (Input.GetKeyDown(KeyCode.A))                                         // Controlling invisibility of the pointer object
        {
            visibility.GetComponent <MeshRenderer> ().enabled = false;           // making object invisible on pressing A
        }


        if (Input.GetKeyDown(KeyCode.S))
        {
            visibility.GetComponent <MeshRenderer> ().enabled = true;                           // Making object visible again on pressing S
        }
        //////////////////////////////////////////////////////////////////////////////////////////////



        ////////////////////////// Recentering of Head Set (Occulus)/////////////////////////////////////////
        if (Input.GetKeyDown(KeyCode.F12))
        {
            InputTracking.Recenter();
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////


        /***************************************************************/
        //Haptic Rendering Loop
        /***************************************************************/
        //	PluginImport.RenderHaptic ();


        ///////////// Origin offset for phantom local coordinates/////////////////////
        position1 [0] = position1 [0] - (-0.2178f);
        position1 [1] = position1 [1] - (-0.8274f);
        position1 [2] = position1 [2] - (-0.0001f);
        ///////////////////////////////////////////////////////////////////////////////
        Debug.Log("Phantom Coordinates" + position1.ToString("F4"));

        ////////////////// scaling between real world distance and unity distance ///////////////

        position1 [0] = position1 [0] * 0.33f;                             //Real world 10cm = 30cm in unity      // scaling factor10/30
        position1 [1] = position1 [1] * 0.5882f;                           //Real world 10cm = 17cm in unity      // scaling factor10/17
        position1 [2] = position1 [2] * 0.625f;                            //Real world 10cm = 16cm in unity      // scaling factor10/16

        //////////////////////////////////////////////////////////////////////////////////////////

        //////////////// Linear transformation from phantom origin to occulus origin /////////////////
        //	position1 [0] = position1 [0]   + 0.006f+ 0.08f;
        position1 [1]      = position1 [1] + 0.63f;
        position1 [2]      = position1 [2] + 0.3f;
        transform.position = position1;
        //Debug.Log ("Phantom Coordinates" + position1.ToString ("F4"));

        //////////////////////////////////////////////////////////////////////////////////////////////



        ////////////////////////////// Printing Phantom coordinates to console //////////////////////

        //Debug.Log ("Phantom Coordinates" + position1.ToString ("F4"));

        //////////////////////////////////////////////////////////////////////////////////////////////

        //Debug.Log ("Button 1: " + PluginImport.GetButton1State());
        //Debug.Log ("Button 2: " + PluginImport.GetButton2State());
    }