Lines Matching refs:node

43 static bool _appendShape(SvgLoaderData& loaderData, SvgNode* node, Shape* shape, const Box& vBox, c…
44 static bool _appendClipShape(SvgLoaderData& loaderData, SvgNode* node, Shape* shape, const Box& vBo…
45 static unique_ptr<Scene> _sceneBuildHelper(SvgLoaderData& loaderData, const SvgNode* node, const Bo…
208 static bool _appendClipUseNode(SvgLoaderData& loaderData, SvgNode* node, Shape* shape, const Box& v… in _appendClipUseNode() argument
210 if (node->child.count != 1) return false; in _appendClipUseNode()
211 auto child = *(node->child.data); in _appendClipUseNode()
214 if (node->transform) finalTransform = *node->transform; in _appendClipUseNode()
215 if (node->node.use.x != 0.0f || node->node.use.y != 0.0f) { in _appendClipUseNode()
216 Matrix m = {1, 0, node->node.use.x, 0, 1, node->node.use.y, 0, 0, 1}; in _appendClipUseNode()
225 static bool _appendClipChild(SvgLoaderData& loaderData, SvgNode* node, Shape* shape, const Box& vBo… in _appendClipChild() argument
227 if (node->type == SvgNodeType::Use) { in _appendClipChild()
228 return _appendClipUseNode(loaderData, node, shape, vBox, svgPath); in _appendClipChild()
230 return _appendClipShape(loaderData, node, shape, vBox, svgPath, nullptr); in _appendClipChild()
234 static Matrix _compositionTransform(Paint* paint, const SvgNode* node, const SvgNode* compNode, Svg… in _compositionTransform() argument
238 if (node->transform && type != SvgNodeType::Mask) { in _compositionTransform()
239 m = *node->transform; in _compositionTransform()
244 if (!compNode->node.clip.userSpace) { in _compositionTransform()
254 static void _applyComposition(SvgLoaderData& loaderData, Paint* paint, const SvgNode* node, const B… in _applyComposition() argument
259 if (node->style->clipPath.applying) { in _applyComposition()
262 auto compNode = node->style->clipPath.node; in _applyComposition()
264 node->style->clipPath.applying = true; in _applyComposition()
276 … Matrix finalTransform = _compositionTransform(paint, node, compNode, SvgNodeType::ClipPath); in _applyComposition()
281 node->style->clipPath.applying = false; in _applyComposition()
288 if (node->style->mask.applying) { in _applyComposition()
291 auto compNode = node->style->mask.node; in _applyComposition()
293 node->style->mask.applying = true; in _applyComposition()
297 if (!compNode->node.mask.userSpace) { in _applyComposition()
298 … Matrix finalTransform = _compositionTransform(paint, node, compNode, SvgNodeType::Mask); in _applyComposition()
301 if (node->transform) comp->transform(*node->transform); in _applyComposition()
304 if (compNode->node.mask.type == SvgMaskType::Luminance && !isMaskWhite) { in _applyComposition()
311 node->style->mask.applying = false; in _applyComposition()
317 static void _applyProperty(SvgLoaderData& loaderData, SvgNode* node, Shape* vg, const Box& vBox, co… in _applyProperty() argument
319 SvgStyleProperty* style = node->style; in _applyProperty()
322 if (node->transform && !clip) vg->transform(*node->transform); in _applyProperty()
323 if (node->type == SvgNodeType::Doc || !node->style->display) return; in _applyProperty()
358 if (node->type == SvgNodeType::G || node->type == SvgNodeType::Use) return; in _applyProperty()
394 _applyComposition(loaderData, vg, node, vBox, svgPath); in _applyProperty()
398 static unique_ptr<Shape> _shapeBuildHelper(SvgLoaderData& loaderData, SvgNode* node, const Box& vBo… in _shapeBuildHelper() argument
401 if (_appendShape(loaderData, node, shape.get(), vBox, svgPath)) return shape; in _shapeBuildHelper()
406 static bool _recognizeShape(SvgNode* node, Shape* shape) in _recognizeShape() argument
408 switch (node->type) { in _recognizeShape()
410 if (node->node.path.path) { in _recognizeShape()
411 if (!svgPathToShape(node->node.path.path, shape)) { in _recognizeShape()
419 …shape->appendCircle(node->node.ellipse.cx, node->node.ellipse.cy, node->node.ellipse.rx, node->nod… in _recognizeShape()
423 if (node->node.polygon.pts.count < 2) break; in _recognizeShape()
424 auto pts = node->node.polygon.pts.begin(); in _recognizeShape()
426 for (pts += 2; pts < node->node.polygon.pts.end(); pts += 2) { in _recognizeShape()
433 if (node->node.polyline.pts.count < 2) break; in _recognizeShape()
434 auto pts = node->node.polyline.pts.begin(); in _recognizeShape()
436 for (pts += 2; pts < node->node.polyline.pts.end(); pts += 2) { in _recognizeShape()
442 …shape->appendCircle(node->node.circle.cx, node->node.circle.cy, node->node.circle.r, node->node.ci… in _recognizeShape()
446 …shape->appendRect(node->node.rect.x, node->node.rect.y, node->node.rect.w, node->node.rect.h, node in _recognizeShape()
450 shape->moveTo(node->node.line.x1, node->node.line.y1); in _recognizeShape()
451 shape->lineTo(node->node.line.x2, node->node.line.y2); in _recognizeShape()
462 static bool _appendShape(SvgLoaderData& loaderData, SvgNode* node, Shape* shape, const Box& vBox, c… in _appendShape() argument
464 if (!_recognizeShape(node, shape)) return false; in _appendShape()
466 _applyProperty(loaderData, node, shape, vBox, svgPath, false); in _appendShape()
471 static bool _appendClipShape(SvgLoaderData& loaderData, SvgNode* node, Shape* shape, const Box& vBo… in _appendClipShape() argument
474 auto m = transform ? transform : (node->transform ? node->transform : nullptr); in _appendClipShape()
482 if (!_recognizeShape(node, shape)) return false; in _appendClipShape()
495 _applyProperty(loaderData, node, shape, vBox, svgPath, true); in _appendClipShape()
574 static unique_ptr<Picture> _imageBuildHelper(SvgLoaderData& loaderData, SvgNode* node, const Box& v… in _imageBuildHelper() argument
576 if (!node->node.image.href || !strlen(node->node.image.href)) return nullptr; in _imageBuildHelper()
581 const char* href = node->node.image.href; in _imageBuildHelper()
630 auto sx = node->node.image.w / w; in _imageBuildHelper()
631 auto sy = node->node.image.h / h; in _imageBuildHelper()
632 m = {sx, 0, node->node.image.x, 0, sy, node->node.image.y, 0, 0, 1}; in _imageBuildHelper()
634 if (node->transform) m = *node->transform * m; in _imageBuildHelper()
637 _applyComposition(loaderData, picture.get(), node, vBox, svgPath); in _imageBuildHelper()
717 static unique_ptr<Scene> _useBuildHelper(SvgLoaderData& loaderData, const SvgNode* node, const Box&… in _useBuildHelper() argument
719 auto scene = _sceneBuildHelper(loaderData, node, vBox, svgPath, false, depth + 1, isMaskWhite); in _useBuildHelper()
723 if (node->transform) mUseTransform = *node->transform; in _useBuildHelper()
724 if (node->node.use.x != 0.0f || node->node.use.y != 0.0f) { in _useBuildHelper()
725 Matrix mTranslate = {1, 0, node->node.use.x, 0, 1, node->node.use.y, 0, 0, 1}; in _useBuildHelper()
729 if (node->node.use.symbol) { in _useBuildHelper()
730 auto symbol = node->node.use.symbol->node.symbol; in _useBuildHelper()
733 if (node->node.use.isWidthSet) width = node->node.use.w; in _useBuildHelper()
735 if (node->node.use.isHeightSet) height = node->node.use.h; in _useBuildHelper()
749 if (node->node.use.symbol->transform) { in _useBuildHelper()
750 mSceneTransform = *node->node.use.symbol->transform * mViewBox; in _useBuildHelper()
755 if (!node->node.use.symbol->node.symbol.overflowVisible) { in _useBuildHelper()
761 if (node->node.use.symbol->transform) { in _useBuildHelper()
762 mClipTransform = mUseTransform * *node->node.use.symbol->transform; in _useBuildHelper()
807 static unique_ptr<Text> _textBuildHelper(SvgLoaderData& loaderData, const SvgNode* node, const Box&… in _textBuildHelper() argument
809 auto textNode = &node->node.text; in _textBuildHelper()
814 if (node->transform) textTransform = *node->transform; in _textBuildHelper()
815 translateR(&textTransform, node->node.text.x, node->node.text.y - textNode->fontSize); in _textBuildHelper()
824 _applyTextFill(node->style, text.get(), vBox); in _textBuildHelper()
825 _applyComposition(loaderData, text.get(), node, vBox, svgPath); in _textBuildHelper()
831 static unique_ptr<Scene> _sceneBuildHelper(SvgLoaderData& loaderData, const SvgNode* node, const Bo… in _sceneBuildHelper() argument
840 if (_isGroupType(node->type) || mask) { in _sceneBuildHelper()
843 …if (!mask && node->transform && node->type != SvgNodeType::Symbol) scene->transform(*node->transfo… in _sceneBuildHelper()
845 if (node->style->display && node->style->opacity != 0) { in _sceneBuildHelper()
846 auto child = node->child.data; in _sceneBuildHelper()
847 for (uint32_t i = 0; i < node->child.count; ++i, ++child) { in _sceneBuildHelper()
851 … else if (!((*child)->type == SvgNodeType::Symbol && node->type != SvgNodeType::Use)) in _sceneBuildHelper()
877 _applyComposition(loaderData, scene.get(), node, vBox, svgPath); in _sceneBuildHelper()
878 scene->opacity(node->style->opacity); in _sceneBuildHelper()
937 loaderData.doc->node.doc.vx = vBox.x; in svgSceneBuild()
938 loaderData.doc->node.doc.vy = vBox.y; in svgSceneBuild()
939 loaderData.doc->node.doc.vw = vBox.w; in svgSceneBuild()
940 loaderData.doc->node.doc.vh = vBox.h; in svgSceneBuild()
941 loaderData.doc->node.doc.w = w; in svgSceneBuild()
942 loaderData.doc->node.doc.h = h; in svgSceneBuild()