e20961a68feec391d4737b6ff22f15a495032520
[cl-graph.git] / copying.lisp
1 (in-package cl-graph)
2
3 (metacopy:defcopy-methods basic-vertex 
4   :copy-all t)
5
6 (metacopy:defcopy-methods basic-edge 
7   :set (edge-id tag color graph)
8   :copy (element))
9
10 (metacopy:defcopy-methods weighted-edge-mixin 
11   :copy-all t)
12
13 (metacopy:defcopy-methods basic-graph 
14   :copy-all t)
15
16 (metacopy:defcopy-methods graph-container-vertex 
17   :copy-all t)
18
19 (metacopy:defcopy-methods graph-container-edge 
20   :copy-all t)
21
22 (defmethod generate-directed-free-tree ((graph basic-graph) (root basic-vertex))
23   (let ((new-graph (metacopy:copy-thing graph)))
24     (empty! new-graph)
25     (nilf (contains-undirected-edge-p new-graph))
26     (neighbors-to-children new-graph root)
27     (values new-graph)))