CssPerspectiveOriginProperty
More information available at:
https://developer.mozilla.org/en-US/docs/Web/CSS/perspective-origin
Gets the position of the abscissa of the vanishing point.
Gets the position of the ordinate of the vanishing point.
using AngleSharp.Css;
using AngleSharp.Css.Values;
using AngleSharp.Extensions;
using System;
namespace AngleSharp.Dom.Css
{
internal sealed class CssPerspectiveOriginProperty : CssProperty
{
private static readonly IValueConverter<Point> Converter = Converters.LengthOrPercentConverter.To((Length m) => new Point(m, m)).Or(Keywords.Left, new Point(Length.Zero, Length.Half)).Or(Keywords.Center, new Point(Length.Half, Length.Half))
.Or(Keywords.Right, new Point(Length.Full, Length.Half))
.Or(Keywords.Top, new Point(Length.Half, Length.Zero))
.Or(Keywords.Bottom, new Point(Length.Half, Length.Full))
.Or(Converters.WithAny(Converters.LengthOrPercentConverter.Or(Keywords.Left, Length.Zero).Or(Keywords.Right, Length.Full).Or(Keywords.Center, Length.Half)
.Option(Length.Half), Converters.LengthOrPercentConverter.Or(Keywords.Top, Length.Zero).Or(Keywords.Bottom, Length.Full).Or(Keywords.Center, Length.Half)
.Option(Length.Half)).To((Tuple<Length, Length> m) => new Point(m.Item1, m.Item2)));
internal CssPerspectiveOriginProperty(CssStyleDeclaration rule)
: base(PropertyNames.PerspectiveOrigin, rule, PropertyFlags.Animatable)
{
}
protected override object GetDefault(IElement element)
{
return Point.Center;
}
protected override object Compute(IElement element)
{
return Converter.Convert(base.Value);
}
protected override bool IsValid(ICssValue value)
{
return Converter.Validate(value);
}
}
}