#ifndef GTGEN_MOLECULE_H
#define GTGEN_MOLECULE_H

#include "dots.h"

/**
 * The basic class describing one particular molecule at some time point. The time point is,
 * however, not stored in this class but rather in the Cell class, which is expected
 * to use this class for representation of dot-like structures, e.g. proteins.
 *
 * A single dot is used to simulate one fluorescent molecule in any specimen, hence
 * the name of this class.
 *
 * There is a unique ID assigned to every dot in the scene. This ID is not changing
 * between time points for the given dot as long as the dot exists in the scene. In case the
 * dot is split, e.g. after mitotic cell phase, the parent dot should be removed from the
 * scene and two new dots with new unique IDs will emerge instead. Ofcourse, the new ones
 * will have their \e parentID set apropriately.
 */
class Molecule : public Dot
{
//currently, it is nothing more than ordinary dot...

  public:
			 ///empty/default constructor: inits especially positions to (0,0,0)
			 Molecule() : Dot() {};

			 /// but the explicit constructors must be explicitly defined :-/
			 Molecule(i3d::Vector3d<float> const & POS, const size_t PARENTID=0, const size_t BIRTH=0) : 
						Dot(POS, PARENTID, BIRTH) {};
};

#endif
