Blob Blame Raw
"""
Will store all the functions corresponding to Image Layer in lottie
"""

import sys
import settings
from helpers.transform import gen_helpers_transform
from misc import Count, change_axis
from helpers.blendMode import get_blend
from sources.image import add_image_asset
sys.path.append("..")


def gen_layer_image(lottie, layer, idx):
    """
    Generates the dictionary corresponding to layers/image.json
    """
    index = Count()
    lottie["ddd"] = settings.DEFAULT_3D
    lottie["ind"] = idx
    lottie["ty"] = settings.LAYER_IMAGE_TYPE
    lottie["nm"] = settings.LAYER_IMAGE_NAME + str(idx)
    lottie["sr"] = settings.LAYER_DEFAULT_STRETCH
    lottie["ks"] = {}   # Transform properties to be filled

    settings.lottie_format["assets"].append({})
    st = add_image_asset(settings.lottie_format["assets"][-1], layer)
    asset = settings.lottie_format["assets"][-1]

    # setting class (jpg, png)
    lottie["cl"] = asset["p"].split(".")[-1] 

    # setting the reference id
    lottie["refId"] = asset["id"]

    # finding the center of image
    x_val = (float(st["br"][0][0].text) + float(st["tl"][0][0].text)) / 2
    y_val = (float(st["br"][0][1].text) + float(st["tl"][0][1].text)) / 2
    x_val *= settings.PIX_PER_UNIT
    y_val *= settings.PIX_PER_UNIT
    pos = [x_val, y_val]
    pos = change_axis(pos[0], pos[1])
    anchor = pos
    gen_helpers_transform(lottie["ks"], layer, pos, anchor)


    lottie["ao"] = settings.LAYER_DEFAULT_AUTO_ORIENT
    
    lottie["ip"] = settings.lottie_format["ip"]
    lottie["op"] = settings.lottie_format["op"]
    lottie["st"] = 0            # Don't know yet
    get_blend(lottie, layer)
    lottie["markers"] = []      # Markers to be filled yet