/*
 *  TnMapBillboardParams.h
 *  OpenGL Map Engine
 *
 *  Created by Thant on 11/12/13
 *  Copyright 2013 TeleNav. All rights reserved.
 *
 */

#ifndef TN_MAP_BILLBOARD_PARAMS_H
#define TN_MAP_BILLBOARD_PARAMS_H

#include "TnMapAnnotationParams.h"

class TnMapConf;

/*! The difference between a BillboardLabel and a BillboardIcon is
 *  that the geometry for billboard labels is built based on the text
 *  label width. The text is always centered and the origin is the
 *  lower-middle instead of the lower-left. The width and height of
 *  the icon specfies how much bigger than the text the icon needs to
 *  be.
 */

class TnMapBillboardParams : public TnMapAnnotationParams
{
public:

    friend class TnMapStyleParamsFactory;
    
    double GetCullBoundsScale() const;
    void SetCullBoundsScale(double value) { cull_bounds_scale = value; }
    double GetIconBorderWidth() const;
    void SetIconBorderWidth(double value) { icon_border_w = value; }

private:
    
    //Factory responsible for creation
    TnMapBillboardParams(Tn::Foundation::shared_ptr<TnMapConf> const & conf, 
                         std::string const & style, 
                         uint32_t zoomLevel);
    
    double cull_bounds_scale;
    double icon_border_w;
};

#endif
