Warning, file /graphics/glaxnimate/src/core/model/visitor.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #include "visitor.hpp"
0008 
0009 #include "model/document_node.hpp"
0010 #include "model/document.hpp"
0011 #include "model/assets/assets.hpp"
0012 #include "model/assets/composition.hpp"
0013 
0014 
0015 void glaxnimate::model::Visitor::visit(glaxnimate::model::Document* doc, model::Composition* main, bool skip_locked)
0016 {
0017     on_visit_document(doc, main);
0018     visit(doc->assets(), skip_locked);
0019     on_visit_document_end(doc, main);
0020 }
0021 
0022 void glaxnimate::model::Visitor::visit(glaxnimate::model::DocumentNode* node, bool skip_locked)
0023 {
0024     if ( skip_locked )
0025     {
0026         auto visual = node->cast<VisualNode>();
0027         if ( visual && visual->locked.get() )
0028             return;
0029     }
0030 
0031     on_visit(node);
0032     for ( auto ch : node->docnode_children() )
0033         visit(ch, skip_locked);
0034     on_visit_end(node);
0035 }