// *****************************************************************************
//  Copyright (C): Christian Nastasi, 2011                                    
//  Author(s): Christian Nastasi                                              
//  Developed at the:                                                         
//  - Retis LAB, TeCIP Institute, Scuola Superiore Sant'Anna (Pisa)           
//  - School of Elec Eng and Computer Science, Queen Mary University (London) 
//  This file is distributed under the terms in the attached LICENSE_2 file.  
//  If you do not find this file, copies can be found by writing to:          
//  - c.nastasi@sssup.it                                                      
//  - nastasichr@gmail.com                                                    
//  - andrea.cavallaro@eecs.qmul.ac.uk                                        
// *****************************************************************************

#ifndef __WiseCameraDPFMessage_custom_h__
#define __WiseCameraDPFMessage_custom_h__ 

#include "WiseCameraDPFMessage_m.h"
#include <vector>

class WiseCameraDPFMessage : public WiseCameraDPFMessage_Base {
public:
	std::vector<WiseUtils::Gmm::Component> gmm;

public:
	WiseCameraDPFMessage(const char *name=NULL, int kind=0) :
					WiseCameraDPFMessage_Base(name, kind) 
	{ }

	WiseCameraDPFMessage(const WiseCameraDPFMessage& other) :
					WiseCameraDPFMessage_Base(other)
	{
		gmm = other.gmm;
	}

	virtual inline WiseCameraDPFMessage *dup() const 
	{
		return new WiseCameraDPFMessage(*this);
	}

	virtual inline void setGmmArraySize(unsigned int size) 
	{ 
		gmm.resize(size); 
	}

	virtual inline unsigned int getGmmArraySize() const 
	{ 
		return gmm.size(); 
	}

	virtual inline WiseUtils::Gmm::Component& getGmm(unsigned int k) 
	{ 
		return gmm[k]; 
	}

	virtual inline void setGmm(unsigned int k, 
				   const WiseUtils::Gmm::Component& c)
	{
		gmm[k] = c;
	}
};

#endif // __WiseCameraDPFMessage_custom_h__ 
