public MixtureModel getResolution(int resolution){
		
		if (resolution==1 || (this.leftChild==null && this.rightChild==null)){
			
			// Mixture model
			MixtureModel mix = new MixtureModel(1);
			mix.EF           = this.EF;
			mix.weight[0]    = this.weight;
			mix.param[0]     = Clustering.getCentroid(this.node, this.type);
			
			// Return the mixture model converted in source (lambda) parameters
			return mixtureT2L(mix);
		}
		else{
			
			// Variables
			int          n1  = 0   , n2  = 0;
			double       w1  = 0   , w2  = 0;
			MixtureModel mm1 = null, mm2 = null;
			
			// Get the mixture model of the right and left child
			if (this.leftChild!=null){
				mm1 = this.leftChild.getResolution(resolution-1);
				n1  = mm1.size;
				w1  = this.leftChild.weight;
			}
			if (this.rightChild!=null){
				mm2 = this.rightChild.getResolution(resolution-1);
				n2  = mm2.size;
				w2  = this.rightChild.weight;
			}
			
			// Fusion the two mixture models
			MixtureModel mix = new MixtureModel(n1+n2);
			mix.EF = this.EF;
			int i;
			for (i=0; i<n1; i++){
				mix.param[i]  = mm1.param[i];
				mix.weight[i] = w1 * mm1.weight[i];
			}
			for (i=0; i<n2; i++){
				mix.param[n1+i]  = mm2.param[i];
				mix.weight[n1+i] = w2 * mm2.weight[i];
			}
			mix.normalizeWeights();
			
			// Return the mixture model
			return mix;
		}
	}