DuplicateSubgraphVisitor duplicates the graph rooted at node where the traversal began.
The main extension is that it generates Node ids based on a table of id's.
The typical usage should be something like:
options = DuplicateVisitor.kDuplicateSettings duplicateVisitor = DuplicateSubgraphVisitor( "", options ) visitorRef = NodeVisitorRef( duplicateVisitor )
# Register all modelImportIds and their corresponding copyIds # for (modelImportId, copyId) in modelImportMap.iteritems() : duplicateVisitor.registerModelImportId( modelImportId, copyId )
rootNode.accept( duplicateVisitor )
#include <DuplicateSubgraphVisitor.h>
Public Member Functions |
|
DuplicateSubgraphVisitor (const awString::IString ©Id, int options) | |
void | registerModelImportId (const awString::IString &modelImportId, const awString::IString ©Id) |
Protected Member Functions |
|
virtual | ~DuplicateSubgraphVisitor () |
virtual awSupport::Id | generateNodeId (const Node &node) |
DuplicateSubgraphVisitor | ( | const awString::IString & | copyId, |
int | options | ||
) |
virtual ~DuplicateSubgraphVisitor | ( | ) | [protected, virtual] |
void registerModelImportId | ( | const awString::IString & | modelImportId, |
const awString::IString & | copyId | ||
) |
virtual awSupport::Id generateNodeId | ( | const Node & | node | ) | [protected, virtual] |
Reimplemented from DuplicateModelVisitor.