// 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++; }
// 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 } }