Sha256: 02788563fa2d9020c57ff7219beaec0ff649bbd0807399a0e91ba4e128a90e35
Contents?: true
Size: 1.8 KB
Versions: 4
Compression:
Stored size: 1.8 KB
Contents
using AIXM::Refinements module AIXM class 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://github.com/openflightmaps/ofmx/wiki/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
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
aixm-0.3.8 | lib/aixm/component/geometry/arc.rb |
aixm-0.3.7 | lib/aixm/component/geometry/arc.rb |
aixm-0.3.6 | lib/aixm/component/geometry/arc.rb |
aixm-0.3.5 | lib/aixm/component/geometry/arc.rb |