Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        bool button1State = PluginImport.GetButton1State();

        if (button1State && !previousButton1State)
        {
            penColorNum = (penColorNum + 1) % penColors.Length;
        }
        previousButton1State = button1State;

        //if (PluginImport.GetButton2State()) cleanBoard();
        bool eraseState = PluginImport.GetButton2State();

        if (eraseState)
        {
            changePenColor(new Color(0.25f, 0.25f, 0.25f));
        }
        else
        {
            changePenColor(penColorNum);
        }

        bool shouldDraw = PluginImport.GetContact() && (myCounter > 0);

        if (shouldDraw)
        {
            double[] pos       = ConverterClass.ConvertIntPtrToDouble3(PluginImport.GetProxyPosition());
            double[] dir       = ConverterClass.ConvertIntPtrToDouble3(PluginImport.GetProxyDirection());
            Vector3  position  = new Vector3((float)pos[0], (float)pos[1], (float)pos[2]);
            Vector3  direction = new Vector3((float)dir[0], (float)dir[1], (float)dir[2]);

            double[] realPos      = ConverterClass.ConvertIntPtrToDouble3(PluginImport.GetDevicePosition());
            Vector3  realPosition = new Vector3((float)realPos[0], (float)realPos[1], (float)realPos[2]);
            float    force        = (realPosition - position).magnitude;
            if (force > 1.0f)
            {
                force = 1.0f;
            }

            RaycastHit hitInfo = new RaycastHit();
            bool       hasHit  = Physics.Raycast(position, direction, out hitInfo);

            if (previousShouldDraw)
            {
                drawBlobLine(previousCoord, hitInfo.textureCoord, blobRadius, penColors[penColorNum], force, blobSteps, eraseState);
            }
            else
            {
                drawBlob(hitInfo.textureCoord, blobRadius, penColors[penColorNum], force, eraseState);
            }
            previousCoord = hitInfo.textureCoord;

            boardTexture.SetPixels(boardPixels);
            boardTexture.Apply();
        }
        previousShouldDraw = shouldDraw;
        myCounter++;
    }
Esempio n. 2
0
    // Update is called once per frame
    void Update()
    {
        double[] pos      = ConverterClass.ConvertIntPtrToDouble3(PluginImport.GetDevicePosition());
        Vector3  position = new Vector3((float)pos [0], (float)pos [1], (float)pos [2]);


        button1 = PluginImport.GetButton1State();         // getting state of button 1 on phantom
        Debug.Log(button1 + "     " + button2);           // printing button 1 and button 2 state on console
        if (button1 && !previousbutton1state)             // routine for writing coordinate values to text file
        {
            //////////////////////////////////////////////////////////////////
            using (StreamWriter writer = new StreamWriter("G:\\log.txt", true))

                // Loop through ten numbers.
                for (int i = 0; i < 3; i++)
                {
                    //Write format string to file.
                    //writer.Write ("{0:0.0} ", position [i]);
                    writer.WriteLine(position);
                }                 // for loop

            using (StreamWriter writer =
                       new StreamWriter("G:\\log.txt", true)) {
                writer.WriteLine("\r\n");
//				//writer.WriteLine("First target coordinates");
            }             // stream
//
        }

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

        button2 = PluginImport.GetButton2State();
        if (button2 && !previousbutton2state)                                      // Controlling invisibility of the pointer object
        {
            visibility.GetComponent <MeshRenderer> ().enabled = false;             // making object invisible
        } // update
        previousbutton2state = button2;

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