#################################
### COPYRIGHT: Anders Lyhagen ###
#################################

module CAUL_FAQS

  class FlowData

    attr_reader :ggs, :fixs, :bb, :pgr, :tgr, :sg, :pgr_out, :pgr_in, :tgr_out, :tgr_in, :pg, :tg, :proj_ve, :proj_pt, :scale
    attr_writer :ggs, :fixs, :bb, :pgr, :tgr, :sg, :pgr_out, :pgr_in, :tgr_out, :tgr_in, :pg, :tg, :proj_ve, :proj_pt, :scale

    def initialize()
      @ggs = nil          #The groups to be mapped
      @fixs = nil         #fix point (in world coords) for every group
      @proj_ve = nil      #Projection direction onto the projection plane (world coords)
      @proj_pt = nil      #arbitrary point on the proj plane (makes a plane with proj_ve) (world coords)
                          #also used as fix point for scaling
      @scale = nil        #scale factor
      
      @bb = nil           #Bounding box surrounding all groups in ggs
      @sg = nil           #Support group 
      @pgr = nil          #Projection grid
      @tgr = nil          #Target grid
      @pg = nil           #Projection grid group
      @tg = nil           #target grid group
      
      #group transformations
      @pgr_out = nil      #projgrid     -> world coords
      @pgr_in = nil       #world coords -> projgrid
      @tgr_out = nil      #target grid  -> world coords
      @tgr_in = nil       #world coords -> target grid 
    end
  end
end

