/// <summary>
 /// Writes a value for the <code>horizontalOrigin</code> property as a <code>horizontalOrigin</code> value.  The <code>horizontalOrigin</code> property specifies the horizontal origin of the label.  It controls whether the label is left-, center-, or right-aligned with the `position`.
 /// </summary>
 /// <param name="value">The horizontal origin.</param>
 public void WriteHorizontalOriginProperty(CesiumHorizontalOrigin value)
 {
     using (var writer = OpenHorizontalOriginProperty())
     {
         writer.WriteHorizontalOrigin(value);
     }
 }
        /// <summary>
        /// Writes the <code>horizontalOrigin</code> property.  The <code>horizontalOrigin</code> property specifies the horizontal origin.  Valid values are "LEFT", "CENTER", and "RIGHT".
        /// </summary>
        /// <param name="value">The horizontal origin.</param>
        public void WriteHorizontalOrigin(CesiumHorizontalOrigin value)
        {
            const string PropertyName = HorizontalOriginPropertyName;

            if (IsInterval)
            {
                Output.WritePropertyName(PropertyName);
            }
            Output.WriteValue(CesiumFormattingHelper.HorizontalOriginToString(value));
        }
        /// <summary>
        /// Converts a <see cref="CesiumHorizontalOrigin"/> to the corresponding string in a
        /// CZML stream.
        /// </summary>
        /// <param name="horizontalOrigin">The horizontal origin to convert.</param>
        /// <returns>The string representation of the specified <see cref="CesiumHorizontalOrigin"/>.</returns>
        public static string HorizontalOriginToString(CesiumHorizontalOrigin horizontalOrigin)
        {
            switch (horizontalOrigin)
            {
            case CesiumHorizontalOrigin.Left:
                return("LEFT");

            case CesiumHorizontalOrigin.Center:
                return("CENTER");

            case CesiumHorizontalOrigin.Right:
                return("RIGHT");

            default:
                throw new ArgumentException(CesiumLocalization.UnknownEnumerationValue, "horizontalOrigin");
            }
        }
        public void HorizontalOriginCanBeWrittenAsSimpleString()
        {
            const string expectedPropertyName          = "foo";
            const CesiumHorizontalOrigin expectedValue = CesiumHorizontalOrigin.Center;

            using (Packet)
                using (var writer = new HorizontalOriginCesiumWriter(expectedPropertyName))
                {
                    writer.Open(OutputStream);
                    writer.WriteHorizontalOrigin(expectedValue);
                }

            AssertExpectedJson(new Dictionary <string, object>
            {
                { expectedPropertyName, CesiumFormattingHelper.HorizontalOriginToString(expectedValue) },
            });
        }
        public void HorizontalOriginCanBeWrittenInsideInterval()
        {
            var          start = new GregorianDate(2012, 6, 7, 12, 0, 0).ToJulianDate();
            var          stop  = start.AddSeconds(100.0);
            const string expectedPropertyName          = "foo";
            const CesiumHorizontalOrigin expectedValue = CesiumHorizontalOrigin.Center;

            using (Packet)
                using (var writer = new HorizontalOriginCesiumWriter(expectedPropertyName))
                {
                    writer.Open(OutputStream);
                    writer.WriteInterval(start, stop);
                    writer.WriteHorizontalOrigin(expectedValue);
                }

            AssertExpectedJson(expectedPropertyName, new Dictionary <string, object>
            {
                { "interval", CesiumFormattingHelper.ToIso8601Interval(start, stop, Iso8601Format.Compact) },
                { HorizontalOriginCesiumWriter.HorizontalOriginPropertyName, CesiumFormattingHelper.HorizontalOriginToString(expectedValue) },
            });
        }
        public void TestHorizontalOriginToString(CesiumHorizontalOrigin value)
        {
            string s = CesiumFormattingHelper.HorizontalOriginToString(value);

            Assert.IsNotNull(s);
        }
        /// <summary>
        /// Converts a <see cref="CesiumHorizontalOrigin"/> to the corresponding string in a
        /// CZML stream.
        /// </summary>
        /// <param name="horizontalOrigin">The horizontal origin to convert.</param>
        /// <returns>The string representation of the specified <see cref="CesiumHorizontalOrigin"/>.</returns>
        public static string HorizontalOriginToString(CesiumHorizontalOrigin horizontalOrigin)
        {
            switch (horizontalOrigin)
            {
                case CesiumHorizontalOrigin.Left:
                    return "LEFT";

                case CesiumHorizontalOrigin.Center:
                    return "CENTER";

                case CesiumHorizontalOrigin.Right:
                    return "RIGHT";

                default:
                    throw new ArgumentException(CesiumLocalization.UnknownEnumerationValue, "horizontalOrigin");
            }
        }