public Node InsertBefore(Node node, DictKey key)
{
Node newNode;
do
{
node = node.prev;
} while (node.Key != null &&
!ActiveRegion.EdgeLeq(this.tesseator, node.Key, key));
newNode = new Node();
newNode.Key = key;
newNode.next = node.next;
node.next.prev = newNode;
newNode.prev = node;
node.next = newNode;
return newNode;
}