Blame synfig-studio/plugins/lottie-exporter/layers/solid.py

AnishGulati 7cf124
"""
AnishGulati 7cf124
Will store all the functions corresponding to solids in lottie
AnishGulati 7cf124
"""
AnishGulati decf6d
AnishGulati 7cf124
import sys
AnishGulati 7cf124
import settings
AnishGulati ac3983
from common.misc import get_color_hex
AnishGulati 1f6b9a
from common.Count import Count
AnishGulati 1292be
from common.Layer import Layer
AnishGulati 7cf124
from helpers.blendMode import get_blend
AnishGulati 0635b5
from helpers.transform import gen_helpers_transform
AnishGulati 1db9b5
from effects.fill import gen_effects_fill
AnishGulati 0635b5
from synfig.group import get_additional_width, get_additional_height
AnishGulati 7cf124
sys.path.append("..")
AnishGulati 7cf124
AnishGulati decf6d
AnishGulati ac3983
def gen_layer_solid(lottie, layer, idx):
AnishGulati 7cf124
    """
AnishGulati 7cf124
    Generates the dictionary corresponding to layers/solid.json
AnishGulati 0f1f11
AnishGulati 0f1f11
    Args:
AnishGulati 1292be
        lottie (dict)       : Lottie generated solid layer stored here
AnishGulati a3579e
        layer  (common.Layer.Layer) : Synfig format solid layer
AnishGulati 1292be
        idx    (int)        : Stores the index(number of) of solid layer
AnishGulati 0f1f11
AnishGulati 0f1f11
    Returns:
AnishGulati 0f1f11
        (None)
AnishGulati 7cf124
    """
AnishGulati 7cf124
    index = Count()
AnishGulati 7cf124
    lottie["ddd"] = settings.DEFAULT_3D
AnishGulati 7cf124
    lottie["ind"] = idx
AnishGulati 7cf124
    lottie["ty"] = settings.LAYER_SOLID_TYPE
AnishGulati ac3983
    lottie["nm"] = layer.get_description()
AnishGulati 7cf124
    lottie["sr"] = settings.LAYER_DEFAULT_STRETCH
AnishGulati 7cf124
    lottie["ks"] = {}   # Transform properties to be filled
AnishGulati 1db9b5
    lottie["ef"] = []   # Stores the effects
AnishGulati 1db9b5
AnishGulati 3ca27d
    pos = [settings.lottie_format["w"]/2 + get_additional_width()/2,
AnishGulati 0635b5
           settings.lottie_format["h"]/2 + get_additional_height()/2]
AnishGulati 3ca27d
AnishGulati 7cf124
    anchor = pos
AnishGulati a3579e
    gen_helpers_transform(lottie["ks"], pos, anchor)
AnishGulati 7cf124
AnishGulati 1db9b5
    lottie["ef"].append({})
AnishGulati a3579e
    gen_effects_fill(lottie["ef"][-1], layer, index.inc())
AnishGulati 1db9b5
AnishGulati 7cf124
    lottie["ao"] = settings.LAYER_DEFAULT_AUTO_ORIENT
AnishGulati 3ca27d
    lottie["sw"] = settings.lottie_format["w"] + get_additional_width() # Solid Width
AnishGulati 3ca27d
    lottie["sh"] = settings.lottie_format["h"] + get_additional_height() # Solid Height
AnishGulati 0f1f11
AnishGulati 1d9f57
    lottie["sc"] = get_color_hex(layer.get_param("color").get()[0])
AnishGulati 7cf124
AnishGulati 7cf124
    lottie["ip"] = settings.lottie_format["ip"]
AnishGulati 7cf124
    lottie["op"] = settings.lottie_format["op"]
AnishGulati 7cf124
    lottie["st"] = 0            # Don't know yet
AnishGulati a3579e
    get_blend(lottie, layer)