Esempio n. 1
0
    /// <summary>
    /// Détruis le GameObject correspondant à une entrée et retire leur association du dictionnaire.
    /// </summary>
    /// <param name="entryStruct"></param>
    private void RemoveEntry(Circuit.EntryStruct entryStruct)
    {
        EntryObject entryObject = entryObjects[entryStruct];

        entryObjects.Remove(entryStruct);

        entryObject.FadeOutAndDestroy();
    }
Esempio n. 2
0
    /// <summary>
    /// Renvoie la position que doit occuper l'objet représentant l'entry correspondante.
    /// </summary>
    /// <param name="entryStruct"></param>
    /// <returns></returns>
    private Vector3 ComputeEntryPosition(Circuit.EntryStruct entryStruct)
    {
        EntryObject entryObject = entryObjects[entryStruct];

        int col = entryStruct.col;

        return(new Vector3(-((_circuit.NbCol - 1) * localColWidth / 2) + localColWidth * col, 0, 3));
    }
Esempio n. 3
0
    /**
     * ######################################################################################################
     * ############################################### ENTRY ################################################
     * ######################################################################################################
     */

    /// <summary>
    /// Crée le GameObject correspondant à une entrée (qubit).
    /// </summary>
    /// <param name="entryStruct"></param>
    private EntryObject CreateEntryObject(Circuit.EntryStruct entryStruct)
    {
        EntryObject entryObject = ObjectFactory.ENTRY(_gridGame.transform);

        entryObject.entryStruct = entryStruct;

        return(entryObject);
    }
Esempio n. 4
0
    /// <summary>
    /// Clacule et fait transiter une entry vers sa nouvelle position.
    /// </summary>
    /// <param name="entryStruct"></param>
    private void TransitionEntry(Circuit.EntryStruct entryStruct)
    {
        EntryObject entryObject     = entryObjects[entryStruct];
        GameObject  entryGameObject = entryObject.root;

        Vector3 newPosition = ComputeEntryPosition(entryStruct);

        AnimationManager.Move(entryGameObject, newPosition, animationTime);
    }
Esempio n. 5
0
    /// <summary>
    /// Calcule et positionne une entry à sa nouvelle position.
    /// </summary>
    /// <param name="entryStruct"></param>
    private void PositionEntry(Circuit.EntryStruct entryStruct)
    {
        EntryObject entryObject     = entryObjects[entryStruct];
        GameObject  entryGameObject = entryObject.root;

        Vector3 newPosition = ComputeEntryPosition(entryStruct);

        entryGameObject.transform.localPosition = newPosition;
    }
Esempio n. 6
0
    /**
     * ######################################################################################################
     * ######################################################################################################
     * ######################################################################################################
     * ####################################### INTERACTIONS WITH COLS #######################################
     * ######################################################################################################
     * ######################################################################################################
     * ######################################################################################################
     */

    /// <summary>
    ///  Echange en 0 ou 1 la valeur d'une entrée (qubit).
    /// </summary>
    public void SwapEntryValue(Circuit.EntryStruct entryStruct)
    {
        Qubit qubit = entryStruct.qubit;
        int   col   = entryStruct.col;

        if (qubit.Equals(Qubit.Zero))
        {
            _circuit.SetEntry(col, Qubit.One);
        }
        else
        {
            _circuit.SetEntry(col, Qubit.Zero);
        }
    }
Esempio n. 7
0
    /// <summary>
    /// Actualise le material de l'objet correspondant à une entrée (qubit).
    /// </summary>
    /// <param name="entry"></param>
    private void SetEntryMaterial(Circuit.EntryStruct entryStruct)
    {
        Qubit qubit = entryStruct.qubit;

        EntryObject    entryObject     = entryObjects[entryStruct];
        GameObject     entryGameObject = entryObject.entry;
        SpriteRenderer renderer        = entryGameObject.GetComponent <SpriteRenderer>();

        if (qubit.Equals(Qubit.One))
        {
            renderer.sprite = Sprite.Create(ObjectFactory.materialQubitOne, new Rect(0.0f, 0.0f, ObjectFactory.materialQubitOne.width, ObjectFactory.materialQubitOne.height), new Vector2(0.5f, 0.5f));
        }
        else
        {
            renderer.sprite = Sprite.Create(ObjectFactory.materialQubitZero, new Rect(0.0f, 0.0f, ObjectFactory.materialQubitZero.width, ObjectFactory.materialQubitZero.height), new Vector2(0.5f, 0.5f));  //ObjectFactory.materialQubitZero;
        }
    }
Esempio n. 8
0
    /// <summary>
    /// Actualise le material de l'objet correspondant à une entrée (qubit).
    /// </summary>
    /// <param name="entry"></param>
    private void SetEntryMaterial(Circuit.EntryStruct entryStruct)
    {
        Qubit qubit = entryStruct.qubit;

        EntryObject entryObject     = entryObjects[entryStruct];
        GameObject  entryGameObject = entryObject.entry;
        Renderer    renderer        = entryGameObject.GetComponent <Renderer>();

        if (qubit.Equals(Qubit.One))
        {
            renderer.material = ObjectFactory.materialQubitOne;
        }
        else
        {
            renderer.material = ObjectFactory.materialQubitZero;
        }
    }
Esempio n. 9
0
    /**
     * ######################################################################################################
     * ######################################################################################################
     * ######################################################################################################
     * ############################################### GETTERS ##############################################
     * ######################################################################################################
     * ######################################################################################################
     * ######################################################################################################
     */

    /// <summary>
    /// Recupère le "EntryObject" de la colonne "col"
    /// </summary>
    /// <returns> Le "GateObject"</returns>
    /// <param name="indexCol">Indice de la colonne </param>
    /// <param name="indexRow">Indice de la ligne </param>
    public EntryObject GetEntryObject(int col)
    {
        Circuit.EntryStruct entryStruct = _circuit.GetEntry(col);
        return(entryObjects[entryStruct]);
    }
Esempio n. 10
0
    /// <summary>
    /// Crée le GameObject correspondant à une entrée (qubit) et l'ajoute au dictionnaire associant les entrées et leur object.
    /// </summary>
    /// <param name="entryStruct"></param>
    private void AddEntry(Circuit.EntryStruct entryStruct)
    {
        EntryObject entryObject = CreateEntryObject(entryStruct);

        entryObjects.Add(entryStruct, entryObject);
    }