Exemplo n.º 1
0
    /// <summary>
    /// Creates Gameobjects from the pieces of the X3DObject
    /// </summary>
    /// <returns>The parent GameObject which contains all pieces as children</returns>
    public GameObject CreateGameObjects()
    {
        // create the parent object
        parent = new GameObject("X3D Parent");
        ObjectInfo objInfo = parent.AddComponent <ObjectInfo>();

        objInfo.ModelName = ModelName;

        AttachementManager attachementManager = parent.AddComponent <AttachementManager>();

        parentBounds = new Bounds();
        foreach (X3DPiece piece in pieces)
        {
            List <GameObject> pieceObjects = piece.CreateGameObject(shader);
            foreach (GameObject subObject in pieceObjects)
            {
                Renderer renderer = subObject.GetComponent <Renderer>();
                parentBounds.Encapsulate(renderer.bounds);
                // assign the parent
                subObject.transform.parent = parent.transform;
                // assign the TapNotifier; it can notfiy the parents about tap events
                TapNotifier tapNotifier = subObject.AddComponent <TapNotifier>();
            }
        }

        objInfo.Bounds = parentBounds;

        // initialize the attachement manager => this creates the annotation manager and informs the tap notifier
        attachementManager.Init();


        // normalize size so that maximum axis size is 1

        float max = Math.Max(Math.Max(parentBounds.size.x, parentBounds.size.y), parentBounds.size.z);

        float factor = 1 / max;


        parent.transform.localScale = new Vector3(
            parent.transform.localScale.x * factor,
            parent.transform.localScale.y * factor,
            parent.transform.localScale.z * factor);

        parentBounds.size *= factor;


        // reset any offset so that the object is centered
        parent.transform.localPosition -= parentBounds.center * factor;

        return(parent);
    }
Exemplo n.º 2
0
    public void SetUp()
    {
        GameObject go = new GameObject("TapNotifier");

        notifier = go.AddComponent <TapNotifier>();
    }