pcl::PointCloud<pcl::PointXYZ>::Ptr SampleModelGenerator::GenerateSampleCube(const Eigen::Isometry3f center, const float r, const float rRes)
{
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
	for (int i = 0; i < 6; i++)
	{
		Eigen::Vector3f planeCenter = Eigen::Vector3f::Zero();
		planeCenter(i%3) = (i < 3) ? r : -r;
		Eigen::Isometry3f pose = Eigen::Isometry3f::Identity();
		pose.translate(planeCenter);
		(*cloud) += *GenerateSamplePlane(pose, r, rRes);
	}

	pcl::transformPointCloud(*cloud, *cloud, center);

	return cloud;
}