Exemplo n.º 1
0
 private void Select()
 {
     isSelected           = true;
     sphereMaterial.color = COLOR_SELECTED;
     Designer_CellEditor.AddSelectedNode(this);
     //GetComponent<Rigidbody>().drag = float.MaxValue;
 }
Exemplo n.º 2
0
    private void Deselect(bool _hover)
    {
        isSelected = false;

        if (_hover)
        {
            sphereMaterial.color = COLOR_HOVER;
        }
        else
        {
            sphereMaterial.color = COLOR_BASE;
        }
        Designer_CellEditor.RemoveSelectedNode(this);
        //GetComponent<Rigidbody>().drag = 1f;
    }
Exemplo n.º 3
0
    private void CheckInput()
    {
        if (!Designer_CellEditor.GetEditorInputEnabled())
        {
            return;
        }

        CheckClick();

        if (Input.GetKeyDown(KeyCode.Delete) && isSelected && eType != ENodeType.EBase)
        {
            parentNode.RemoveChild(ePositionToParent);
        }

        if ((Input.GetKeyDown(KeyCode.A) && (Input.GetKey(KeyCode.RightControl) || Input.GetKey(KeyCode.LeftControl))) ||
            (Input.GetKey(KeyCode.A) && (Input.GetKeyDown(KeyCode.RightControl) || Input.GetKeyDown(KeyCode.LeftControl))))
        {
            Select();
        }

        Scale();
    }
Exemplo n.º 4
0
    private List <Node_CellEditor> GetSymmetryNodes(ESymmetry _eSymmetry)
    {
        List <Node_CellEditor> ret       = new List <Node_CellEditor>();
        Stack <ENodePosition>  positions = new Stack <ENodePosition>();

        positions.Push(ePositionToParent);
        Node_CellEditor center   = parentNode;
        int             children = center.GetChildCount();

        //find the center of symmetry
        if (Designer_CellEditor.HasSymmetryNode())
        {
            while (center.eType != ENodeType.EBase && !center.symmetryNode)
            {
                positions.Push(center.ePositionToParent);
                center   = center.parentNode;
                children = center.GetChildCount();
            }

            //if the base is reached withou finding the symmetry node, stop
            if (!center.symmetryNode)
            {
                return(ret);
            }
        }
        else
        {
            while (center.eType != ENodeType.EBase)
            {
                positions.Push(center.ePositionToParent);
                center   = center.parentNode;
                children = center.GetChildCount();
            }
        }
        //if the symmetry node has only one child, stop
        if (children == 1)
        {
            return(ret);
        }


        //now we have the center of symmetry
        //iterater over all the steps it took to get here, but backwards

        if (_eSymmetry == ESymmetry.EMirror || _eSymmetry == ESymmetry.EPointMirror)
        {
            ENodePosition curPos;
            curPos = positions.Pop();
            while (positions.Count != 0 && center != null)
            {
                curPos = UTIL_CellEditor.GetOppositePosition(curPos);
                center = center.GetChild(curPos);
            }

            if (center != null)
            {
                ret.Add(center);
            }
        }
        else if (_eSymmetry == ESymmetry.EPoint)
        {
            //F**K!
        }



        return(ret);
    }