private void MoveYPosition(GameObject pointOfCollision) { if (newMovement) { newMovement = false; connectedModelingObject.CalculateBoundingBox(); connectedModelingObject.initialCoordinatesBoundingBox = new Vector3[4]; for (int j = 0; j < 4; j++) { connectedModelingObject.initialCoordinatesBoundingBox[j] = connectedModelingObject.boundingBox.coordinates[j + 4]; } connectedModelingObject.PositionOnMovementStart = 0.25f * connectedModelingObject.boundingBox.coordinates[4] + 0.25f * connectedModelingObject.boundingBox.coordinates[5] + 0.25f * connectedModelingObject.boundingBox.coordinates[6] + 0.25f * connectedModelingObject.boundingBox.coordinates[7]; initialOffsetToHandle = transform.position - pointOfCollision.transform.position; //Debug.Log ("initial offset" + initialOffsetToHandle + "transform.position at " + transform.position + " point of collision " + pointOfCollision.transform.position); //Debug.Log ("new handle griff"); //initialInput = CalculateInputFromPoint(pointOfCollision.transform.position, transform.position, transform.position + transform.forward); //Debug.Log("Set initial input at" + initialInput); //float RasteredLengthInitial = RasterManager.Instance.Raster(((initialInput) * (Vector3.up).magnitude)); //initialInput = RasteredLengthInitial / (Vector3.up).magnitude; } // destroy previous distance vis foreach (Transform visualObject in connectedModelingObject.DistanceVisualisation) { Destroy(visualObject.gameObject); } float input = CalculateInputFromPoint((pointOfCollision.transform.position + initialOffsetToHandle), transform.position, transform.position + transform.forward); float RasteredLength = RasterManager.Instance.Raster(((input) * (Vector3.up).magnitude)); input = RasteredLength / (Vector3.up).magnitude; Vector3 position = initialPositionHandle + ((input) * Vector3.up); // Debug.Log ("input is " + input + " minus initial input: " + (input - initialInput) + "with initial input: " + initialInput); Vector3 distance = position - transform.position; Vector3 prevPos = connectedModelingObject.transform.position; connectedModelingObject.transform.position = connectedModelingObject.transform.position + distance; // keep above 0 connectedModelingObject.KeepAboveZero(prevPos); //connectedModelingObject.VisualizeMovement (); }