Exemple #1
0
    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 ();
    }