#
# Created by Boyd Multerer on 2018-06-04.
# Copyright © 2017-2021 Kry10 Limited. All rights reserved.
#
defmodule Scenic.Primitive.Style.Cap do
@moduledoc """
Set how to draw the end of a line.
Example:
graph
|> line( {{0,0}, {100,100}}, cap: :round )
### Data Format
Cap can be any of the following values:
* `:butt` - End of the line is flat, passing through the end point.
* `:round` - End of the line is round, radiating from the end point.
* `:square` - End of the line is flat, but projecting a square around the end point.
"""
use Scenic.Primitive.Style
# ============================================================================
# data verification and serialization
@doc false
def validate(:butt), do: {:ok, :butt}
def validate(:round), do: {:ok, :round}
def validate(:square), do: {:ok, :square}
def validate(data) do
{
:error,
"""
#{IO.ANSI.red()}Invalid Cap specification
Received: #{inspect(data)}
#{IO.ANSI.yellow()}
The :cap style must be must be one of :butt, :round, or :square#{IO.ANSI.default_color()}
"""
}
end
end