10void QSvgVisitor::traverse(
const QSvgStructureNode *node)
12 switch (node->type()) {
13 case QSvgNode::Switch:
14 if (!visitSwitchNodeStart(
static_cast<
const QSvgSwitch *>(node)))
18 if (!visitDocumentNodeStart(
static_cast<
const QSvgDocument *>(node)))
22 if (!visitDefsNodeStart(
static_cast<
const QSvgDefs *>(node)))
26 if (!visitGroupNodeStart(
static_cast<
const QSvgG *>(node)))
30 if (!visitMaskNodeStart(
static_cast<
const QSvgMask *>(node)))
33 case QSvgNode::Symbol:
34 if (!visitSymbolNodeStart(
static_cast<
const QSvgSymbol *>(node)))
37 case QSvgNode::Filter:
38 if (!visitFilterNodeStart(
static_cast<
const QSvgFilterContainer *>(node)))
41 case QSvgNode::Marker:
42 if (!visitMarkerNodeStart(
static_cast<
const QSvgMarker *>(node)))
45 case QSvgNode::Pattern:
46 if (!visitPatternNodeStart(
static_cast<
const QSvgPattern *>(node)))
49 case QSvgNode::FeMerge:
50 case QSvgNode::FeMergenode:
51 case QSvgNode::FeColormatrix:
52 case QSvgNode::FeGaussianblur:
53 case QSvgNode::FeOffset:
54 case QSvgNode::FeComposite:
55 case QSvgNode::FeFlood:
56 case QSvgNode::FeBlend:
57 if (!visitFeFilterPrimitiveNodeStart(
static_cast<
const QSvgFeFilterPrimitive *>(node)))
65 for (
auto &child : node->renderers())
66 traverse(child.get());
68 switch (node->type()) {
69 case QSvgNode::Switch:
70 visitSwitchNodeEnd(
static_cast<
const QSvgSwitch *>(node));
73 visitDocumentNodeEnd(
static_cast<
const QSvgDocument *>(node));
76 visitDefsNodeEnd(
static_cast<
const QSvgDefs *>(node));
79 visitGroupNodeEnd(
static_cast<
const QSvgG *>(node));
82 visitMaskNodeEnd(
static_cast<
const QSvgMask *>(node));
84 case QSvgNode::Symbol:
85 visitSymbolNodeEnd(
static_cast<
const QSvgSymbol *>(node));
87 case QSvgNode::Filter:
88 visitFilterNodeEnd(
static_cast<
const QSvgFilterContainer *>(node));
90 case QSvgNode::Marker:
91 visitMarkerNodeEnd(
static_cast<
const QSvgMarker *>(node));
93 case QSvgNode::Pattern:
94 visitPatternNodeEnd(
static_cast<
const QSvgPattern *>(node));
96 case QSvgNode::FeMerge:
97 case QSvgNode::FeMergenode:
98 case QSvgNode::FeColormatrix:
99 case QSvgNode::FeGaussianblur:
100 case QSvgNode::FeOffset:
101 case QSvgNode::FeComposite:
102 case QSvgNode::FeFlood:
103 case QSvgNode::FeBlend:
104 visitFeFilterPrimitiveNodeEnd(
static_cast<
const QSvgFeFilterPrimitive *>(node));