void ClusterHelper::FindClusters(std::vector<Point*>* pointList){
	InitializeAlgorithm(pointList);

	algorithm->IterateUntilStable();

	if (algorithm->ClusterCount() > 0)
	{
		value = new ClusterData(FlattenIfRequired(MergeClustersIfRequired(algorithm->Clusters)));
		printf("\nCluster Data Generated");
	}

}
void ClusterHelper::Findclusterdats(){ //this uses reduced list
	algorithm.setclustcount = settings->clusterdatcount;
	algorithm.reducedcount = reducedpointsize;
	algorithm.IterateUntilStable();

	if (algorithm.clusterdatcount > 0)
	{

		MergeclusterdatsIfRequired();
		FlattenIfRequired();
		//flatten, then no return, just leave in the array with the correct count
		//printf("\nclusterdat Data Generated");
	}
	else
	{

		clusterdatarray = 0;
	}
}