Esempio n. 1
0
        public void DetachNodes(int knobID, QQ_KnobType type)
        {
            QQ_Knob knob = selectedNode.GetKnob(type, knobID);

            List <int> keys = new List <int>();

            if (knob.Connections.Count > 0)
            {
                foreach (KeyValuePair <int, List <int> > connection in knob.Connections.dictionary)
                {
                    int     connectionCount = connection.Value.Count;
                    QQ_Node conn            = db.GetNode(connection.Key);
                    for (int j = 0; j < connectionCount; ++j)
                    {
                        conn.DisconnectNode(selectedNode.ID, connection.Value[j], type == QQ_KnobType.Input ? QQ_KnobType.Output : QQ_KnobType.Input);
                    }
                    keys.Add(connection.Key);
                }
            }
            int keyCount = keys.Count;

            for (int j = 0; j < keyCount; ++j)
            {
                selectedNode.DisconnectNode(keys[j], knobID, type);
            }
        }