
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///																																  ///
///		FICHIER :	ZooData.cpp																									  ///
///																																  ///
///		NATURE	:	Data Class which manage the data structure of an object of the scene ( name, nb ref...) 					  ///
///																																  ///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


 


#include	"..\Datas\ZooData.h"





int			MyDataVersion = 0;


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// ZNode Class
///
///		- Classe des Nodes - élément de base pour dérivation en 'ZObject', ou 'ZCamera', ou 'ZLight'..
///		- Méthode de gestion de hierarchie - Creation d'enfant de différents types
///		- PRS
///		- Direction de visée
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
/// Constucteur : init de la hiérarchie à NULL							///
///////////////////////////////////////////////////////////////////////////
ZData::ZData()
{
	name	= string("");
	version = MyDataVersion++;
	
	nbRef		= 0;
	referenced	= false;
}



///////////////////////////////////////////////////////////////////////////
/// Decrement the number of references									///
///////////////////////////////////////////////////////////////////////////
/// Input	: NONE
/// Output	: 
///		- decrement the reference counter
/// Return	: NONE
void ZData::DecRef()
{
	nbRef--;
	
	if (nbRef<0)		nbRef = 0;
}



///////////////////////////////////////////////////////////////////////////
/// Increment the number of references									///
///////////////////////////////////////////////////////////////////////////
/// Input	: NONE
/// Output	: 
///		- Increment the reference counter
/// Return	: NONE
void ZData::IncRef()
{
	nbRef++;
	referenced = true;
}



///////////////////////////////////////////////////////////////////////////
/// Set the name of the node											///
///////////////////////////////////////////////////////////////////////////
/// Input	: 
///		- the new name of the node
/// Output	: 
///		- set the new name of the node
/// Return	: NONE
void ZData::SetName(char * newName)
{
	name = string(newName);
}

void ZData::SetName(string newName)
{
	name = string((char*)newName.c_str());
}
