override fun createMapper()

in platf-skia/src/commonMain/kotlin/org/jetbrains/letsPlot/skia/mapping/svg/SvgNodeMapperFactory.kt [25:42]


    override fun createMapper(source: SvgNode): Mapper<out SvgNode, out Element> {
        var src = source
        val target = SvgUtils.newElement(src, peer)

        if (src is SvgImageElementEx) {
            src = src.asImageElement(SkiaRGBEncoder)
        }

        return when (src) {
            is SvgStyleElement -> SvgStyleElementMapper(src, target as Group, peer)
            is SvgGElement -> SvgGElementMapper(src, target as Group, peer)
            is SvgSvgElement -> SvgSvgElementMapper(src, peer)
            is SvgTextElement -> SvgTextElementMapper(src, target as Text, peer)
            is SvgImageElement -> SvgImageElementMapper(src, target as Image, peer)
            is SvgElement -> SvgElementMapper(src, target, peer)
            else -> throw IllegalArgumentException("Unsupported SvgElement: " + src::class.simpleName)
        }
    }