in src/Avalonia.Base/Rendering/Composition/Expressions/ExpressionVariant.cs [50:233]
public ExpressionVariant GetProperty(string property)
{
if (Type == VariantType.Vector2)
{
if (ReferenceEquals(property, "X"))
return Vector2.X;
if (ReferenceEquals(property, "Y"))
return Vector2.Y;
return default;
}
if (Type == VariantType.Vector)
{
if (ReferenceEquals(property, "X"))
return Vector.X;
if (ReferenceEquals(property, "Y"))
return Vector.Y;
return default;
}
if (Type == VariantType.Vector3)
{
if (ReferenceEquals(property, "X"))
return Vector3.X;
if (ReferenceEquals(property, "Y"))
return Vector3.Y;
if (ReferenceEquals(property, "Z"))
return Vector3.Z;
if(ReferenceEquals(property, "XY"))
return new Vector2(Vector3.X, Vector3.Y);
if(ReferenceEquals(property, "YX"))
return new Vector2(Vector3.Y, Vector3.X);
if(ReferenceEquals(property, "XZ"))
return new Vector2(Vector3.X, Vector3.Z);
if(ReferenceEquals(property, "ZX"))
return new Vector2(Vector3.Z, Vector3.X);
if(ReferenceEquals(property, "YZ"))
return new Vector2(Vector3.Y, Vector3.Z);
if(ReferenceEquals(property, "ZY"))
return new Vector2(Vector3.Z, Vector3.Y);
return default;
}
if (Type == VariantType.Vector3D)
{
if (ReferenceEquals(property, "X"))
return Vector3D.X;
if (ReferenceEquals(property, "Y"))
return Vector3D.Y;
if (ReferenceEquals(property, "Z"))
return Vector3D.Z;
if(ReferenceEquals(property, "XY"))
return new Vector(Vector3D.X, Vector3D.Y);
if(ReferenceEquals(property, "YX"))
return new Vector(Vector3D.Y, Vector3D.X);
if(ReferenceEquals(property, "XZ"))
return new Vector(Vector3D.X, Vector3D.Z);
if(ReferenceEquals(property, "ZX"))
return new Vector(Vector3D.Z, Vector3D.X);
if(ReferenceEquals(property, "YZ"))
return new Vector(Vector3D.Y, Vector3D.Z);
if(ReferenceEquals(property, "ZY"))
return new Vector(Vector3D.Z, Vector3D.Y);
return default;
}
if (Type == VariantType.Vector4)
{
if (ReferenceEquals(property, "X"))
return Vector4.X;
if (ReferenceEquals(property, "Y"))
return Vector4.Y;
if (ReferenceEquals(property, "Z"))
return Vector4.Z;
if (ReferenceEquals(property, "W"))
return Vector4.W;
return default;
}
if (Type == VariantType.Matrix3x2)
{
if (ReferenceEquals(property, "M11"))
return Matrix3x2.M11;
if (ReferenceEquals(property, "M12"))
return Matrix3x2.M12;
if (ReferenceEquals(property, "M21"))
return Matrix3x2.M21;
if (ReferenceEquals(property, "M22"))
return Matrix3x2.M22;
if (ReferenceEquals(property, "M31"))
return Matrix3x2.M31;
if (ReferenceEquals(property, "M32"))
return Matrix3x2.M32;
return default;
}
if (Type == VariantType.AvaloniaMatrix)
{
if (ReferenceEquals(property, "M11"))
return AvaloniaMatrix.M11;
if (ReferenceEquals(property, "M12"))
return AvaloniaMatrix.M12;
if (ReferenceEquals(property, "M13"))
return AvaloniaMatrix.M13;
if (ReferenceEquals(property, "M21"))
return AvaloniaMatrix.M21;
if (ReferenceEquals(property, "M22"))
return AvaloniaMatrix.M22;
if (ReferenceEquals(property, "M23"))
return AvaloniaMatrix.M23;
if (ReferenceEquals(property, "M31"))
return AvaloniaMatrix.M31;
if (ReferenceEquals(property, "M32"))
return AvaloniaMatrix.M32;
if (ReferenceEquals(property, "M33"))
return AvaloniaMatrix.M33;
return default;
}
if (Type == VariantType.Matrix4x4)
{
if (ReferenceEquals(property, "M11"))
return Matrix4x4.M11;
if (ReferenceEquals(property, "M12"))
return Matrix4x4.M12;
if (ReferenceEquals(property, "M13"))
return Matrix4x4.M13;
if (ReferenceEquals(property, "M14"))
return Matrix4x4.M14;
if (ReferenceEquals(property, "M21"))
return Matrix4x4.M21;
if (ReferenceEquals(property, "M22"))
return Matrix4x4.M22;
if (ReferenceEquals(property, "M23"))
return Matrix4x4.M23;
if (ReferenceEquals(property, "M24"))
return Matrix4x4.M24;
if (ReferenceEquals(property, "M31"))
return Matrix4x4.M31;
if (ReferenceEquals(property, "M32"))
return Matrix4x4.M32;
if (ReferenceEquals(property, "M33"))
return Matrix4x4.M33;
if (ReferenceEquals(property, "M34"))
return Matrix4x4.M34;
if (ReferenceEquals(property, "M41"))
return Matrix4x4.M41;
if (ReferenceEquals(property, "M42"))
return Matrix4x4.M42;
if (ReferenceEquals(property, "M43"))
return Matrix4x4.M43;
if (ReferenceEquals(property, "M44"))
return Matrix4x4.M44;
return default;
}
if (Type == VariantType.Quaternion)
{
if (ReferenceEquals(property, "X"))
return Quaternion.X;
if (ReferenceEquals(property, "Y"))
return Quaternion.Y;
if (ReferenceEquals(property, "Z"))
return Quaternion.Z;
if (ReferenceEquals(property, "W"))
return Quaternion.W;
return default;
}
if (Type == VariantType.Color)
{
if (ReferenceEquals(property, "A"))
return Color.A;
if (ReferenceEquals(property, "R"))
return Color.R;
if (ReferenceEquals(property, "G"))
return Color.G;
if (ReferenceEquals(property, "B"))
return Color.B;
return default;
}
return default;
}