public double getTotalOverlaps() {
		if(cachedTotalOverlap != null){
			return cachedTotalOverlap;
		}
		GeometryFactory factory = Helper.getGeometryFactory();
		double totalOverlap = 0;
		for (LabelGene gene : this) {
			double overlapArea = getGeneOverlap(gene, factory);
			if (overlapArea > 0) {
				totalOverlap = totalOverlap + overlapArea;
				gene.setMarked(true);
			} else {
				gene.setMarked(false);
			}
		}
		cachedTotalOverlap = totalOverlap;
		return totalOverlap;
	}