Sha256: 919432efbf0db38ac61260fa92fa091d2f23ac73d65f6af6c2b27addeceedb85
Contents?: true
Size: 1.8 KB
Versions: 3
Compression:
Stored size: 1.8 KB
Contents
using AIXM::Refinements module AIXM module Component class Geometry # Arcs are clockwise or counter clockwise circle segments around a # {#center_xy} and starting at {#xy}. # # ===Cheat Sheet in Pseudo Code: # arc = AIXM.arc( # xy: AIXM.xy # center_xy: AIXM.xy # clockwise: true or false # ) # # @see https://gitlab.com/openflightmaps/ofmx/wikis/Airspace#arc class Arc < Point # @return [AIXM::XY] center point attr_reader :center_xy def initialize(xy:, center_xy:, clockwise:) super(xy: xy) self.center_xy, self.clockwise = center_xy, clockwise end # @return [String] def inspect %Q(#<#{self.class} xy="#{xy}" center_xy="#{center_xy}" clockwise=#{clockwise}>) end def center_xy=(value) fail(ArgumentError, "invalid center xy") unless value.is_a? AIXM::XY @center_xy = value end # @!attribute [w] clockwise # @return [Boolean] wheter the arc is going clockwise (true) or not (false) def clockwise? @clockwise end def clockwise=(value) fail(ArgumentError, "clockwise must be true or false") unless [true, false].include? value @clockwise = value end # @return [String] AIXM or OFMX markup def to_xml builder = Builder::XmlMarkup.new(indent: 2) builder.Avx do |avx| avx.codeType(clockwise? ? 'CWA' : 'CCA') avx.geoLat(xy.lat(AIXM.schema)) avx.geoLong(xy.long(AIXM.schema)) avx.codeDatum('WGE') avx.geoLatArc(center_xy.lat(AIXM.schema)) avx.geoLongArc(center_xy.long(AIXM.schema)) end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
aixm-1.0.0 | lib/aixm/component/geometry/arc.rb |
aixm-0.3.11 | lib/aixm/component/geometry/arc.rb |
aixm-0.3.10 | lib/aixm/component/geometry/arc.rb |