2 from .base
import LottieObject, LottieProp, LottieEnum
3 from .properties
import MultiDimensional, Value, NVector, ShapeProperty, PositionValue
12 LottieProp(
"anchor_point",
"a", PositionValue,
False),
13 LottieProp(
"position",
"p", PositionValue,
False),
14 LottieProp(
"scale",
"s", MultiDimensional,
False),
19 LottieProp(
"orientation",
"or", MultiDimensional,
False),
35 # Transform Position X
36 #self.position_x = Value()
37 ## Transform Position Y
38 #self.position_y = Value()
39 ## Transform Position Z
40 #self.position_z = Value()
52 from ..utils.transform
import TransformMatrix
53 mat = TransformMatrix()
56 mat.translate(-anchor.x, -anchor.y)
58 scale = self.
scale.get_value(time)
if self.
scale else NVector(100, 100)
59 mat.scale(scale.x / 100, scale.y / 100)
61 skew = (self.
skew.get_value(time) * math.pi / 180)
if self.
skew else 0
64 mat.skew_from_axis(-skew, axis)
66 rot = (self.
rotation.get_value(time) * math.pi / 180)
if self.
rotation else 0
72 ao_angle = self.
position.get_tangent_angle(time)
76 mat.translate(pos.x, pos.y)
84 How masks interact with each other
85 @see https://helpx.adobe.com/after-effects/using/alpha-channels-masks-mattes.html
119 LottieProp(
"shape",
"pt", ShapeProperty,
False),
164 Defines named portions of the composition.