Open FlyChary opened 1 month ago
The original cpp code is showed below : I am not sure. Is it support Ascii format ?
::CC_FILE_ERROR SavePointCloud(ccPointCloud* cloud, const QString& filename, const QString& version, int pointFormat)
{
CCTRACE("saving cloud, version " << version.toStdString());
pyCC* capi = initCloudCompare();
if ((cloud == nullptr) || filename.isEmpty())
return ::CC_FERR_BAD_ARGUMENT;
CCTRACE("cloud: " << cloud->getName().toStdString() << " file: " << filename.toStdString());
FileIOFilter::SaveParameters parameters;
parameters.alwaysDisplaySaveDialog = false;
QFileInfo fi(filename);
QString ext = fi.suffix();
if (!version.isEmpty())
{
if (ext == "las" || ext == "laz")
{
if (version =="1.2")
parameters.minorVersion = 2;
if (version =="1.3")
parameters.minorVersion = 3;
if (version =="1.4")
parameters.minorVersion = 4;
CCTRACE("parameters.minorVersion: " << parameters.minorVersion);
}
}
if (pointFormat != -1)
{
parameters.pointFormat = pointFormat;
CCTRACE("parameters.pointFormat: " << parameters.pointFormat);
}
QString fileFilter = "";
const std::vector<FileIOFilter::Shared>& filters = FileIOFilter::GetFilters();
for (const auto filter : filters)
{
//CCTRACE("filter:" << filter->getDefaultExtension().toStdString());
QStringList theFilters = filter->getFileFilters(false);
// for(auto filt : theFilters)
// CCTRACE("filter: " << filt.toStdString());
QStringList matches = theFilters.filter(ext);
if (matches.size())
{
// for (auto filt : matches)
// CCTRACE("filter: " << filt.toStdString());
fileFilter = matches.first();
break;
}
}
CCTRACE("fileFilter: " << fileFilter.toStdString());
::CC_FILE_ERROR result = FileIOFilter::SaveToFile(cloud, filename, parameters, fileFilter); //AsciiFilter::GetFileFilter());
return result;
}
``` cpp
Hello, you are right, the option to save .ply in ascii format is missing, I 'll try to add that in the next release!
Best regards, Paul
I want use cloudComPy to save a point clould. How can I save a file using 'format ascii' rather than 'format binary'?
` cc.SavePointCloud(sample_point, r"test.ply")
`