/*! 
*   \file  CSignature.cpp
*   \brief Defines class to hold signature of image.
*    
*   \details  
*   CSignature is a container of image-specific signature. 
*
*   \date      October 24, 2011
*   \copyright eBay Research Labs.
*/

#include "CSignature.h"

const std::string CSignature::emptyString("");

/*!
*   \brief Constructor. 
*/
CSignature::CSignature():  m_histColor(), m_fracColor(), m_maxEdgeMag(0), m_matsudaHue(-1) , m_histOrient(),  m_fracEdgePixels(), m_FST()
{
  markAsValid();
}


/*!
*   \brief  Destructor.
*/
CSignature::~CSignature()
{
    // Do nothing;
}


/*!
*   \brief Makes a deep copy of signature. 
*   \param [in]  src  Signature to copy.

*/
void CSignature::MakeDeepCopy(const CSignature &src)
{
    // Version.
    m_version        = src.m_version;

    // General.
    
    // Color.
    m_histColor      = src.m_histColor.clone(); 
    m_fracColor      = src.m_fracColor;

    // Pattern.
    m_maxEdgeMag     = src.m_maxEdgeMag;  
    m_histOrient     = src.m_histOrient.clone(); 
    m_fracEdgePixels = src.m_fracEdgePixels.clone();
    m_FST            = src.m_FST.clone();   
                           
    // Matsuda code word for color distribution.
    m_matsudaHue     = src.m_matsudaHue;

    m_void           = src.m_void;
}
