package com.ys.bdtp.android.base.extensions

import android.graphics.Path

/**
 * 为Path扩展logo接口
 *
 * @return  logo的Path路径
 */
fun Path.logo(zoom: Float = 1f): Path {

    val p1 = Path()
    p1.addCircle(0f * zoom, 20f * zoom, 30f * zoom, Path.Direction.CCW)
    val headPath = Path()
    headPath.addCircle(0f * zoom, 0f * zoom, 50f * zoom, Path.Direction.CCW)
    headPath.op(p1, Path.Op.DIFFERENCE)

    val bodyPath = Path()
    bodyPath.rLineTo(40f * zoom, -20f * zoom)
    bodyPath.rLineTo(0f * zoom, 110f * zoom)
    bodyPath.rLineTo(-10f * zoom, 30f * zoom)
    bodyPath.rLineTo(-30f * zoom, 40f * zoom)
    bodyPath.rLineTo(-30f * zoom, -40f * zoom)
    bodyPath.rLineTo(-10f * zoom, -30f * zoom)
    bodyPath.rLineTo(0f * zoom, -110f * zoom)
    bodyPath.close()

    val leftPath = Path()
    leftPath.rLineTo(0f * zoom, 120f * zoom)
    leftPath.rLineTo(20f * zoom, 50f * zoom)
    leftPath.rLineTo(-90f * zoom, -60f * zoom)
    leftPath.rLineTo(-10f * zoom, -30f * zoom)
    leftPath.rLineTo(50f * zoom, 25f * zoom)
    leftPath.rLineTo(0f * zoom, -20f * zoom)
    leftPath.rLineTo(-50f * zoom, -25f * zoom)
    leftPath.rLineTo(0f * zoom, -40f * zoom)
    leftPath.rLineTo(50f * zoom, 25f * zoom)
    leftPath.rLineTo(0f * zoom, -20f * zoom)
    leftPath.rLineTo(-50f * zoom, -25f * zoom)
    leftPath.rLineTo(0f * zoom, -40f * zoom)
    leftPath.close()

    val rightPath = Path()
    rightPath.rLineTo(0f * zoom, 120f * zoom)
    rightPath.rLineTo(-20f * zoom, 50f * zoom)
    rightPath.rLineTo(90f * zoom, -60f * zoom)
    rightPath.rLineTo(10f * zoom, -30f * zoom)
    rightPath.rLineTo(-50f * zoom, 25f * zoom)
    rightPath.rLineTo(0f * zoom, -20f * zoom)
    rightPath.rLineTo(50f * zoom, -25f * zoom)
    rightPath.rLineTo(0f * zoom, -40f * zoom)
    rightPath.rLineTo(-50f * zoom, 25f * zoom)
    rightPath.rLineTo(0f * zoom, -20f * zoom)
    rightPath.rLineTo(50f * zoom, -25f * zoom)
    rightPath.rLineTo(0f * zoom, -40f * zoom)
    rightPath.close()

    val logoPath = Path()
    logoPath.addPath(headPath, 0f * zoom, -90f * zoom)
    logoPath.addPath(bodyPath, 0f * zoom, -20f * zoom)
    logoPath.addPath(leftPath, -60f * zoom, -50f * zoom)
    logoPath.addPath(rightPath, 60f * zoom, -50f * zoom)
    return logoPath
} // Function logo()