#5 Update to 2.11.3
Closed 2 years ago by churchyard. Opened 3 years ago by orion.
rpms/ orion/cloudcompare 2.11  into  rawhide

@@ -1,415 +0,0 @@ 

- --- CloudCompare-2.9.1/libs/qCC_io/ShpFilter.cpp	2017-11-03 12:30:42.000000000 +0100

- +++ ./ShpFilter.cpp	2018-02-23 14:19:46.837624000 +0100

- @@ -72,6 +72,34 @@

-  						SHP_MULTI_PATCH		= 31

-  };

-  

- +//DGM: by default qToLittleEndian and qFromLittleEndian only works for integer types!

- +double swapD(double in)

- +{

- +	//! Change the endianness (see https://stackoverflow.com/questions/41012414/convert-double-value-from-little-endian-to-big-endian)

- +	std::array<char, sizeof(double)> p;

- +	memcpy(&p[0], &in, sizeof(double));

- +	std::reverse(p.begin(), p.end());

- +	memcpy(&in, &p[0], sizeof(double));

- +	return in;

- +}

- +

- +double qFromLittleEndianD(double in)

- +{

- +#if Q_BYTE_ORDER == Q_BIG_ENDIAN

- +	return swapD(in);

- +#endif

- +	return in;

- +}

- +

- +double qToLittleEndianD(double in)

- +{

- +#if Q_BYTE_ORDER == Q_BIG_ENDIAN

- +	return swapD(in);

- +#endif

- +	return in;

- +}

- +

- +

-  //! Shape File Save dialog

-  class SaveSHPFileDialog : public QDialog, public Ui::SaveSHPFileDlg

-  {

- @@ -271,10 +299,10 @@

-  	{

-  		//The Bounding Box for the PolyLine stored in the order Xmin, Ymin, Xmax, Ymax

-  		//DGM: ignored

- -		//double xMin = qFromLittleEndian<double>(*reinterpret_cast<double*>(header   ));

- -		//double xMax = qFromLittleEndian<double>(*reinterpret_cast<double*>(header+ 8));

- -		//double yMin = qFromLittleEndian<double>(*reinterpret_cast<double*>(header+16));

- -		//double yMax = qFromLittleEndian<double>(*reinterpret_cast<double*>(header+24));

- +		//double xMin = qFromLittleEndianD(*reinterpret_cast<double*>(header   ));

- +		//double xMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+ 8));

- +		//double yMin = qFromLittleEndianD(*reinterpret_cast<double*>(header+16));

- +		//double yMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+24));

-  	}

-  

-  	//Byte 32: NumParts (The number of parts in the PolyLine)

- @@ -321,8 +349,8 @@

-  			//check for errors

-  			if (file.error() != QFile::NoError)

-  				return CC_FERR_READING;

- -			double x = qFromLittleEndian<double>(*reinterpret_cast<double*>(header));

- -			double y = qFromLittleEndian<double>(*reinterpret_cast<double*>(header + 8));

- +			double x = qFromLittleEndianD(*reinterpret_cast<double*>(header));

- +			double y = qFromLittleEndianD(*reinterpret_cast<double*>(header + 8));

-  			points[i].x = static_cast<PointCoordinateType>(x + PShift.x);

-  			points[i].y = static_cast<PointCoordinateType>(y + PShift.y);

-  			points[i].z = 0;

- @@ -337,8 +365,8 @@

-  		{

-  			file.read(header, 16);

-  			//DGM: ignored

- -			//double zMin = qFromLittleEndian<double>(*reinterpret_cast<double*>(header  ));

- -			//double zMax = qFromLittleEndian<double>(*reinterpret_cast<double*>(header+8));

- +			//double zMin = qFromLittleEndianD(*reinterpret_cast<double*>(header  ));

- +			//double zMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+8));

-  		}

-  

-  		//Z coordinates (an array of length NumPoints)

- @@ -349,7 +377,7 @@

-  				//check for errors

-  				if (file.error() != QFile::NoError)

-  					return CC_FERR_READING;

- -				double z = qFromLittleEndian<double>(*reinterpret_cast<double*>(header));

- +				double z = qFromLittleEndianD(*reinterpret_cast<double*>(header));

-  				points[i].z = static_cast<PointCoordinateType>(z + PShift.z);

-  			}

-  		}

- @@ -365,8 +393,8 @@

-  			//check for errors

-  			if (file.error() != QFile::NoError)

-  				return CC_FERR_READING;

- -			double mMin = qFromLittleEndian<double>(*reinterpret_cast<double*>(header));

- -			double mMax = qFromLittleEndian<double>(*reinterpret_cast<double*>(header + 8));

- +			double mMin = qFromLittleEndianD(*reinterpret_cast<double*>(header));

- +			double mMax = qFromLittleEndianD(*reinterpret_cast<double*>(header + 8));

-  

-  			if (mMin != ESRI_NO_DATA && mMax != ESRI_NO_DATA)

-  			{

- @@ -391,7 +419,7 @@

-  				//check for errors

-  				if (file.error() != QFile::NoError)

-  					return CC_FERR_READING;

- -				double m = qFromLittleEndian<double>(*reinterpret_cast<double*>(header));

- +				double m = qFromLittleEndianD(*reinterpret_cast<double*>(header));

-  				scalarValues[i] = (m == ESRI_NO_DATA ? NAN_VALUE : static_cast<ScalarType>(m));

-  			}

-  		}

- @@ -509,10 +537,10 @@

-  

-  	//Byte 4: Box

-  	{

- -		double xMin = qToLittleEndian<double>(bbMing.u[X]);

- -		double xMax = qToLittleEndian<double>(bbMaxg.u[X]);

- -		double yMin = qToLittleEndian<double>(bbMing.u[Y]);

- -		double yMax = qToLittleEndian<double>(bbMaxg.u[Y]);

- +		double xMin = qToLittleEndianD(bbMing.u[X]);

- +		double xMax = qToLittleEndianD(bbMaxg.u[X]);

- +		double yMin = qToLittleEndianD(bbMing.u[Y]);

- +		double yMax = qToLittleEndianD(bbMaxg.u[Y]);

-  		//The Bounding Box for the PolyLine stored in the order Xmin, Ymin, Xmax, Ymax

-  		/*Byte  4*/file.write((const char*)&xMin, 8);

-  		/*Byte 12*/file.write((const char*)&yMin, 8);

- @@ -595,8 +623,8 @@

-  			const CCVector3* P = vertices->getPoint(ii % realNumPoints); //warning: handle loop if polyline is closed

-  			CCVector3d Pg = poly->toGlobal3d(*P);

-  

- -			double x = qToLittleEndian<double>(Pg.u[X]);

- -			double y = qToLittleEndian<double>(Pg.u[Y]);

- +			double x = qToLittleEndianD(Pg.u[X]);

- +			double y = qToLittleEndianD(Pg.u[Y]);

-  			/*Byte 0*/file.write((const char*)&x, 8);

-  			/*Byte 8*/file.write((const char*)&y, 8);

-  			bytesWritten += 16;

- @@ -608,8 +636,8 @@

-  	{

-  		//Z boundaries

-  		{

- -			double zMin = qToLittleEndian<double>(bbMing.u[Z]);

- -			double zMax = qToLittleEndian<double>(bbMaxg.u[Z]);

- +			double zMin = qToLittleEndianD(bbMing.u[Z]);

- +			double zMax = qToLittleEndianD(bbMaxg.u[Z]);

-  			file.write((const char*)&zMin, 8);

-  			file.write((const char*)&zMax, 8);

-  			bytesWritten += 16;

- @@ -622,7 +650,7 @@

-  				int32_t ii = (inverseOrder ? numPoints - 1 - i : i);

-  				const CCVector3* P = vertices->getPoint(ii % realNumPoints); //warning: handle loop if polyline is closed

-  				CCVector3d Pg = poly->toGlobal3d(*P);

- -				double z = qToLittleEndian<double>(Pg.u[Z]);

- +				double z = qToLittleEndianD(Pg.u[Z]);

-  				file.write((const char*)&z, 8);

-  				bytesWritten += 8;

-  			}

- @@ -651,8 +679,8 @@

-  					}

-  				}

-  			}

- -			mMin = qToLittleEndian<double>(mMin);

- -			mMax = qToLittleEndian<double>(mMax);

- +			mMin = qToLittleEndianD(mMin);

- +			mMax = qToLittleEndianD(mMax);

-  			file.write((const char*)&mMin, 8);

-  			file.write((const char*)&mMax, 8);

-  			bytesWritten += 16;

- @@ -660,13 +688,13 @@

-  

-  		//M values (for each part - just one here)

-  		{

- -			double scalar = qToLittleEndian<double>(ESRI_NO_DATA);

- +			double scalar = qToLittleEndianD(ESRI_NO_DATA);

-  			for (int32_t i = 0; i < numPoints; ++i)

-  			{

-  				if (hasSF)

-  				{

-  					scalar = static_cast<double>(vertices->getPointScalarValue(i % realNumPoints)); //warning: handle loop if polyline is closed

- -					scalar = qToLittleEndian<double>(scalar);

- +					scalar = qToLittleEndianD(scalar);

-  				}

-  				file.write((const char*)&scalar, 8);

-  				bytesWritten += 8;

- @@ -686,10 +714,10 @@

-  	{

-  		//The Bounding Box for the Cloud stored in the order Xmin, Ymin, Xmax, Ymax

-  		//DGM: ignored

- -		//double xMin = qFromLittleEndian<double>(*reinterpret_cast<double*>(header   ));

- -		//double xMax = qFromLittleEndian<double>(*reinterpret_cast<double*>(header+ 8));

- -		//double yMin = qFromLittleEndian<double>(*reinterpret_cast<double*>(header+16));

- -		//double yMax = qFromLittleEndian<double>(*reinterpret_cast<double*>(header+24));

- +		//double xMin = qFromLittleEndianD(*reinterpret_cast<double*>(header   ));

- +		//double xMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+ 8));

- +		//double yMin = qFromLittleEndianD(*reinterpret_cast<double*>(header+16));

- +		//double yMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+24));

-  	}

-  

-  	//Byte 32: NumPoints (The total number of points)

- @@ -708,8 +736,8 @@

-  		for (int32_t i = 0; i < numPoints; ++i)

-  		{

-  			file.read(header, 16);

- -			double x = qFromLittleEndian<double>(*reinterpret_cast<double*>(header));

- -			double y = qFromLittleEndian<double>(*reinterpret_cast<double*>(header + 8));

- +			double x = qFromLittleEndianD(*reinterpret_cast<double*>(header));

- +			double y = qFromLittleEndianD(*reinterpret_cast<double*>(header + 8));

-  			CCVector3 P(static_cast<PointCoordinateType>(x + PShift.x),

-  				static_cast<PointCoordinateType>(y + PShift.y),

-  				0);

- @@ -724,8 +752,8 @@

-  		{

-  			file.read(header, 16);

-  			//DGM: ignored

- -			//double zMin = qFromLittleEndian<double>(*reinterpret_cast<double*>(header  ));

- -			//double zMax = qFromLittleEndian<double>(*reinterpret_cast<double*>(header+8));

- +			//double zMin = qFromLittleEndianD(*reinterpret_cast<double*>(header  ));

- +			//double zMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+8));

-  		}

-  

-  		//Z coordinates (an array of length NumPoints)

- @@ -733,7 +761,7 @@

-  			for (int32_t i = 0; i < numPoints; ++i)

-  			{

-  				file.read(header, 8);

- -				double z = qFromLittleEndian<double>(*reinterpret_cast<double*>(header));

- +				double z = qFromLittleEndianD(*reinterpret_cast<double*>(header));

-  				const CCVector3* P = cloud->getPoint(i);

-  				const_cast<CCVector3*>(P)->z = static_cast<PointCoordinateType>(z + PShift.z);

-  			}

- @@ -749,8 +777,8 @@

-  		ccScalarField* sf = 0;

-  		{

-  			file.read(header, 16);

- -			double mMin = qFromLittleEndian<double>(*reinterpret_cast<double*>(header));

- -			double mMax = qFromLittleEndian<double>(*reinterpret_cast<double*>(header + 8));

- +			double mMin = qFromLittleEndianD(*reinterpret_cast<double*>(header));

- +			double mMax = qFromLittleEndianD(*reinterpret_cast<double*>(header + 8));

-  

-  			if (mMin != ESRI_NO_DATA && mMax != ESRI_NO_DATA)

-  			{

- @@ -770,7 +798,7 @@

-  			for (int32_t i = 0; i < numPoints; ++i)

-  			{

-  				file.read(header, 8);

- -				double m = qFromLittleEndian<double>(*reinterpret_cast<double*>(header));

- +				double m = qFromLittleEndianD(*reinterpret_cast<double*>(header));

-  				ScalarType s = m == ESRI_NO_DATA ? NAN_VALUE : static_cast<ScalarType>(m);

-  				sf->addElement(s);

-  			}

- @@ -809,10 +837,10 @@

-  

-  	//Byte 4: Box

-  	{

- -		double xMin = qToLittleEndian<double>(bbMing.x);

- -		double xMax = qToLittleEndian<double>(bbMaxg.x);

- -		double yMin = qToLittleEndian<double>(bbMing.y);

- -		double yMax = qToLittleEndian<double>(bbMaxg.y);

- +		double xMin = qToLittleEndianD(bbMing.x);

- +		double xMax = qToLittleEndianD(bbMaxg.x);

- +		double yMin = qToLittleEndianD(bbMing.y);

- +		double yMax = qToLittleEndianD(bbMaxg.y);

-  		//The Bounding Box for the Cloud stored in the order Xmin, Ymin, Xmax, Ymax

-  		/*Byte  4*/file.write((const char*)&xMin, 8);

-  		/*Byte 12*/file.write((const char*)&yMin, 8);

- @@ -836,8 +864,8 @@

-  			const CCVector3* P = cloud->getPoint(i);

-  			CCVector3d Pg = cloud->toGlobal3d(*P);

-  

- -			double x = qToLittleEndian<double>(Pg.x);

- -			double y = qToLittleEndian<double>(Pg.y);

- +			double x = qToLittleEndianD(Pg.x);

- +			double y = qToLittleEndianD(Pg.y);

-  			/*Byte 0*/file.write((const char*)&x, 8);

-  			/*Byte 8*/file.write((const char*)&y, 8);

-  			bytesWritten += 16;

- @@ -846,8 +874,8 @@

-  

-  	//Z boundaries

-  	{

- -		double zMin = qToLittleEndian<double>(bbMing.z);

- -		double zMax = qToLittleEndian<double>(bbMaxg.z);

- +		double zMin = qToLittleEndianD(bbMing.z);

- +		double zMax = qToLittleEndianD(bbMaxg.z);

-  		file.write((const char*)&zMin, 8);

-  		file.write((const char*)&zMax, 8);

-  		bytesWritten += 16;

- @@ -859,7 +887,7 @@

-  		{

-  			const CCVector3* P = cloud->getPoint(i);

-  			CCVector3d Pg = cloud->toGlobal3d(*P);

- -			double z = qToLittleEndian<double>(Pg.z);

- +			double z = qToLittleEndianD(Pg.z);

-  			file.write((const char*)&z, 8);

-  			bytesWritten += 8;

-  		}

- @@ -888,8 +916,8 @@

-  				}

-  			}

-  		}

- -		mMin = qToLittleEndian<double>(mMin);

- -		mMax = qToLittleEndian<double>(mMax);

- +		mMin = qToLittleEndianD(mMin);

- +		mMax = qToLittleEndianD(mMax);

-  		file.write((const char*)&mMin, 8);

-  		file.write((const char*)&mMax, 8);

-  		bytesWritten += 16;

- @@ -897,13 +925,13 @@

-  

-  	//M values

-  	{

- -		double scalar = qToLittleEndian<double>(ESRI_NO_DATA);

- +		double scalar = qToLittleEndianD(ESRI_NO_DATA);

-  		for (int32_t i = 0; i < numPoints; ++i)

-  		{

-  			if (hasSF)

-  			{

-  				scalar = static_cast<double>(cloud->getPointScalarValue(i));

- -				scalar = qToLittleEndian<double>(scalar);

- +				scalar = qToLittleEndianD(scalar);

-  			}

-  			file.write((const char*)&scalar, 8);

-  			bytesWritten += 8;

- @@ -918,8 +946,8 @@

-  	char buffer[16];

-  	file.read(buffer, 16);

-  

- -	double x = qFromLittleEndian<double>(*reinterpret_cast<double*>(buffer));

- -	double y = qFromLittleEndian<double>(*reinterpret_cast<double*>(buffer + 8));

- +	double x = qFromLittleEndianD(*reinterpret_cast<double*>(buffer));

- +	double y = qFromLittleEndianD(*reinterpret_cast<double*>(buffer + 8));

-  	CCVector3 P(static_cast<PointCoordinateType>(x + PShift.x),

-  		static_cast<PointCoordinateType>(y + PShift.y),

-  		0);

- @@ -930,7 +958,7 @@

-  		//Z coordinate

-  		{

-  			file.read(buffer, 8);

- -			double z = qFromLittleEndian<double>(*reinterpret_cast<double*>(buffer));

- +			double z = qFromLittleEndianD(*reinterpret_cast<double*>(buffer));

-  			P.z = static_cast<PointCoordinateType>(z + PShift.z);

-  		}

-  	}

- @@ -957,7 +985,7 @@

-  		//Measure

-  		{

-  			file.read(buffer, 8);

- -			double m = qFromLittleEndian<double>(*reinterpret_cast<double*>(buffer));

- +			double m = qFromLittleEndianD(*reinterpret_cast<double*>(buffer));

-  			if (m != ESRI_NO_DATA)

-  			{

-  				s = static_cast<ScalarType>(m);

- @@ -1144,10 +1172,10 @@

-  		_header += 4;

-  

-  		//X and Y bounaries

- -		double xMin = qToLittleEndian<double>(bbMinCorner.u[X]);

- -		double xMax = qToLittleEndian<double>(bbMaxCorner.u[X]);

- -		double yMin = qToLittleEndian<double>(bbMinCorner.u[Y]);

- -		double yMax = qToLittleEndian<double>(bbMaxCorner.u[Y]);

- +		double xMin = qToLittleEndianD(bbMinCorner.u[X]);

- +		double xMax = qToLittleEndianD(bbMaxCorner.u[X]);

- +		double yMin = qToLittleEndianD(bbMinCorner.u[Y]);

- +		double yMax = qToLittleEndianD(bbMaxCorner.u[Y]);

-  		//Byte 36: box X min

-  		memcpy(_header, (const char*)&xMin, 8);

-  		_header += 8;

- @@ -1163,8 +1191,8 @@

-  

-  		//Z bounaries

-  		//Unused, with value 0.0, if not Measured or Z type

- -		double zMin = outputShapeType < SHP_POINT_Z ? 0.0 : qToLittleEndian<double>(bbMinCorner.u[Z]);

- -		double zMax = outputShapeType < SHP_POINT_Z ? 0.0 : qToLittleEndian<double>(bbMaxCorner.u[Z]);

- +		double zMin = outputShapeType < SHP_POINT_Z ? 0.0 : qToLittleEndianD(bbMinCorner.u[Z]);

- +		double zMax = outputShapeType < SHP_POINT_Z ? 0.0 : qToLittleEndianD(bbMaxCorner.u[Z]);

-  		//Byte 68: box Z min

-  		memcpy(_header, (const char*)&zMin, 8);

-  		_header += 8;

- @@ -1447,25 +1475,25 @@

-  

-  		//X and Y bounaries

-  		//Byte 36: box X min

- -		double xMin = qFromLittleEndian<double>(*reinterpret_cast<const double*>(_header));

- +		double xMin = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));

-  		_header += 8;

-  		//Byte 44: box Y min

- -		double yMin = qFromLittleEndian<double>(*reinterpret_cast<const double*>(_header));

- +		double yMin = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));

-  		_header += 8;

-  		//Byte 52: box X max

- -		//double xMax = qFromLittleEndian<double>(*reinterpret_cast<const double*>(_header));

- +		//double xMax = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));

-  		_header += 8;

-  		//Byte 60: box Y max

- -		//double yMax = qFromLittleEndian<double>(*reinterpret_cast<const double*>(_header));

- +		//double yMax = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));

-  		_header += 8;

-  

-  		//Z bounaries

-  		//Unused, with value 0.0, if not Measured or Z type

-  		//Byte 68: box Z min

- -		double zMin = qFromLittleEndian<double>(*reinterpret_cast<const double*>(_header));

- +		double zMin = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));

-  		_header += 8;

-  		//Byte 76: box Z max

- -		//double zMax = qFromLittleEndian<double>(*reinterpret_cast<const double*>(_header));

- +		//double zMax = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));

-  		_header += 8;

-  

-  		if (std::isnan(zMin))

- @@ -1482,10 +1510,10 @@

-  

-  		//M bounaries (M = measures)

-  		//Byte 84: M min

- -		//double mMin = qFromLittleEndian<double>(*reinterpret_cast<const double*>(_header));

- +		//double mMin = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));

-  		_header += 8;

-  		//Byte 92: M max

- -		//double mMax = qFromLittleEndian<double>(*reinterpret_cast<const double*>(_header));

- +		//double mMax = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));

-  		_header += 8;

-  	}

-  	assert(fileLength >= 100);

file removed
-26
@@ -1,26 +0,0 @@ 

- From 835c06c97ef5c141411d7edac913e178d7ced7be Mon Sep 17 00:00:00 2001

- From: indivisibleatom <mukulsati@gmail.com>

- Date: Fri, 2 Mar 2018 18:23:02 -0500

- Subject: [PATCH] Deprecated ROS headers are removed in

-  PointCloudLibrary/pcl@c50d8ada7e6556c4db6c81f6b8541c826fefda25.

- 

- The inclusion of these causes a compile error. This fixes only the compile

- error. Unfortunately, I do not know enough about cloud compare / PCL to note what fails at

- run-time.

- ---

-  plugins/qPCL/PclUtils/utils/my_point_types.h | 2 +-

-  1 file changed, 1 insertion(+), 1 deletion(-)

- 

- diff --git a/plugins/qPCL/PclUtils/utils/my_point_types.h b/plugins/qPCL/PclUtils/utils/my_point_types.h

- index cb33d71eb..0fd729730 100644

- --- a/plugins/qPCL/PclUtils/utils/my_point_types.h

- +++ b/plugins/qPCL/PclUtils/utils/my_point_types.h

- @@ -19,7 +19,7 @@

-  #define Q_PCL_PLUGIN_MY_POINT_TYPES_H

-  

-  //PCL

- -#include <pcl/ros/register_point_struct.h>

- +#include <pcl/register_point_struct.h>

-  #include <pcl/point_types.h>

-  

-  //! PCL custom point type used for reading RGB data

@@ -1,34 +0,0 @@ 

- diff --git a/CMakeSetCompilerOptions.cmake b/CMakeSetCompilerOptions.cmake

- index b73e149..11c9f56 100644

- --- a/CMakeSetCompilerOptions.cmake

- +++ b/CMakeSetCompilerOptions.cmake

- @@ -5,13 +5,13 @@ if( UNIX OR MINGW )

-      #   https://cmake.org/cmake/help/v3.1/prop_tgt/CXX_STANDARD.html

-      include(CheckCXXCompilerFlag)

-      

- -    CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)

- +    CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)

-      

- -    if (NOT COMPILER_SUPPORTS_CXX11)

- -        message(ERROR "Your compiler does not support C++11")

- +    if (NOT COMPILER_SUPPORTS_CXX14)

- +        message(ERROR "Your compiler does not support C++14")

-      endif()

-      

- -    set( CXX11_FLAG "-std=c++11")

- +    set( CXX11_FLAG "-std=c++14")

-      

-      # MinGW doesn't use fPIC

-      if( UNIX )

- diff --git a/plugins/qPCL/PclUtils/utils/my_point_types.h b/plugins/qPCL/PclUtils/utils/my_point_types.h

- index 0fd7297..ee2bdb9 100644

- --- a/plugins/qPCL/PclUtils/utils/my_point_types.h

- +++ b/plugins/qPCL/PclUtils/utils/my_point_types.h

- @@ -21,6 +21,7 @@

-  //PCL

-  #include <pcl/register_point_struct.h>

-  #include <pcl/point_types.h>

- +#include <boost/cstdint.hpp>

-  

-  //! PCL custom point type used for reading RGB data

-  struct OnlyRGB

@@ -1,118 +0,0 @@ 

- From 457ee6699bfbe95a387bc53667c6b2ab39917d3b Mon Sep 17 00:00:00 2001

- From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>

- Date: Thu, 22 Feb 2018 17:23:25 +0100

- Subject: [PATCH] Be explicit about signed chars

- 

- Chars being signed is apparently an implementation detail, see [1].

- 

- This was failing the build on various architectures:

- 

-     ppc64le aarch64 ppc64 s390x armv7hl

- 

- With:

- 

-     CC/src/ChamferDistanceTransform.cpp:44:1:

-     error: narrowing conversion of '-1' from 'int' to 'char' inside { }

-     ...

- 

- [1] https://stackoverflow.com/q/31634962/1839451

- ---

-  CC/src/ChamferDistanceTransform.cpp | 22 +++++++++++-----------

-  1 file changed, 11 insertions(+), 11 deletions(-)

- 

- diff --git a/CC/src/ChamferDistanceTransform.cpp b/CC/src/ChamferDistanceTransform.cpp

- index 5cba46c6..026b2349 100644

- --- a/CC/src/ChamferDistanceTransform.cpp

- +++ b/CC/src/ChamferDistanceTransform.cpp

- @@ -26,7 +26,7 @@

-  using namespace CCLib;

-  

-  //! Forward mask shifts and weights (Chamfer 3-4-5)

- -const char ForwardNeighbours345[14*4] = {

- +const signed char ForwardNeighbours345[14*4] = {

-  	-1,-1,-1, 5,

-  	 0,-1,-1, 4,

-  	 1,-1,-1, 5,

- @@ -44,7 +44,7 @@ const char ForwardNeighbours345[14*4] = {

-  };

-  

-  //! Backward mask shifts and weights (Chamfer 3-4-5)

- -const char BackwardNeighbours345[14*4] = {

- +const signed char BackwardNeighbours345[14*4] = {

-  	 0, 0, 0, 0,

-  	 1, 0, 0, 3,

-  	-1, 1, 0, 4,

- @@ -62,7 +62,7 @@ const char BackwardNeighbours345[14*4] = {

-  };

-  

-  //! Forward mask shifts and weights (Chamfer 1-1-1)

- -const char ForwardNeighbours111[14*4] = {

- +const signed char ForwardNeighbours111[14*4] = {

-  	-1,-1,-1, 1,

-  	 0,-1,-1, 1,

-  	 1,-1,-1, 1,

- @@ -80,7 +80,7 @@ const char ForwardNeighbours111[14*4] = {

-  };

-  

-  //! Backward masks shifts and weights (Chamfer 1-1-1)

- -const char BackwardNeighbours111[14*4] = {

- +const signed char BackwardNeighbours111[14*4] = {

-  	 0, 0, 0, 0,

-  	 1, 0, 0, 1,

-  	-1, 1, 0, 1,

- @@ -101,7 +101,7 @@ const char BackwardNeighbours111[14*4] = {

-  //																					unsigned jStart,

-  //																					unsigned kStart,

-  //																					bool forward,

- -//																					const char neighbours[14][4],

- +//																					const signed char neighbours[14][4],

-  //																					NormalizedProgress* normProgress/*=0*/)

-  //{

-  //	assert(!m_grid.empty());

- @@ -169,8 +169,8 @@ int ChamferDistanceTransform::propagateDistance(CC_CHAMFER_DISTANCE_TYPE type, G

-          return -1;

-  	}

-  

- -	const char* fwNeighbours = 0;

- -	const char* bwNeighbours = 0;

- +	const signed char* fwNeighbours = 0;

- +	const signed char* bwNeighbours = 0;

-  	switch (type)

-  	{

-  	case CHAMFER_111:

- @@ -216,7 +216,7 @@ int ChamferDistanceTransform::propagateDistance(CC_CHAMFER_DISTANCE_TYPE type, G

-  		{

-  			for (unsigned char v=0; v<14; ++v)

-  			{

- -				const char* fwNeighbour = fwNeighbours + 4*v;

- +				const signed char* fwNeighbour = fwNeighbours + 4*v;

-  				neighborShift[v] =	static_cast<int>(fwNeighbour[0]) +

-  									static_cast<int>(fwNeighbour[1]) * static_cast<int>(m_rowSize) +

-  									static_cast<int>(fwNeighbour[2]) * static_cast<int>(m_sliceSize);

- @@ -233,7 +233,7 @@ int ChamferDistanceTransform::propagateDistance(CC_CHAMFER_DISTANCE_TYPE type, G

-  

-  					for (unsigned char v=1; v<14; ++v)

-  					{

- -						const char* fwNeighbour = fwNeighbours + 4*v;

- +						const signed char* fwNeighbour = fwNeighbours + 4*v;

-  						GridElement neighborVal = _grid[neighborShift[v]] + static_cast<GridElement>(fwNeighbour[3]);

-  						minVal = std::min(minVal, neighborVal);

-  					}

- @@ -260,7 +260,7 @@ int ChamferDistanceTransform::propagateDistance(CC_CHAMFER_DISTANCE_TYPE type, G

-  		{

-  			for (unsigned char v=0; v<14; ++v)

-  			{

- -				const char* bwNeighbour = bwNeighbours + 4*v;

- +				const signed char* bwNeighbour = bwNeighbours + 4*v;

-  				neighborShift[v] =	static_cast<int>(bwNeighbour[0]) +

-  									static_cast<int>(bwNeighbour[1]) * static_cast<int>(m_rowSize) +

-  									static_cast<int>(bwNeighbour[2]) * static_cast<int>(m_sliceSize);

- @@ -279,7 +279,7 @@ int ChamferDistanceTransform::propagateDistance(CC_CHAMFER_DISTANCE_TYPE type, G

-  

-  					for (unsigned char v=1; v<14; ++v)

-  					{

- -						const char* bwNeighbour = bwNeighbours + 4*v;

- +						const signed char* bwNeighbour = bwNeighbours + 4*v;

-  						GridElement neighborVal = _grid[neighborShift[v]] + static_cast<GridElement>(bwNeighbour[3]);

-  						minVal = std::min(minVal, neighborVal);

-  					}

file modified
+11 -33
@@ -18,13 +18,12 @@ 

  %global edition Release

  %global cname   CloudCompare

  Name:           cloudcompare

- Version:        2.9.1

- Release:        11%{?dist}

+ Version:        2.11.3

+ Release:        2%{?dist}

  Summary:        3D point cloud and mesh processing software

  

  # Main part is GPLv2+

  # CCLib is LGPLv2+

- # Plugins from Source1 and Source2 are MIT

  # dxflib is GPLv2+

  # shapelib is (LGPLv2+ or MIT)

  # as the result is compiled into one piece, it should be:
@@ -34,29 +33,10 @@ 

  

  Source0:        https://github.com/%{cname}/%{cname}/archive/v%{version}/%{cname}-%{version}.tar.gz

  

- # git submodules

- %global pr_commit f42872b45ac35bf85efc662d348bb5d8ac9e5577

- Source1:        https://github.com/%{cname}/PoissonRecon/archive/%{pr_commit}/PoissonRecon-%{pr_commit}.tar.gz

- 

- %global nh_commit 61ba8056d72eedffadb838d9051cc8975ec7a825

- Source2:        https://github.com/%{cname}/normals_Hough/archive/%{nh_commit}/normals_Hough-%{nh_commit}.tar.gz

- 

  # desktop files

  Source3:        %{name}.desktop

  Source4:        ccviewer.desktop

  

- # https://github.com/CloudCompare/CloudCompare/pull/648

- Patch0:         %{name}-signed-chars.patch

- 

- # https://github.com/CloudCompare/CloudCompare/issues/649

- Patch1:         %{name}-big-endian.patch

- 

- # https://github.com/CloudCompare/CloudCompare/pull/661

- Patch2:         %{name}-pcl.patch

- 

- # https://github.com/CloudCompare/CloudCompare/pull/1310

- Patch3:         %{name}-pcl1.11.patch

- 

  BuildRequires:  boost-devel

  BuildRequires:  desktop-file-utils

  BuildRequires:  cmake >= 3
@@ -142,19 +122,11 @@ 

  %prep

  %autosetup -n %{cname}-%{version} -p1

  

- rmdir plugins/qPoissonRecon/PoissonReconLib

- tar -xf %{SOURCE1}

- mv PoissonRecon-%{pr_commit} plugins/qPoissonRecon/PoissonReconLib

- 

- rmdir plugins/qHoughNormals/normals_Hough

- tar -xf %{SOURCE2}

- mv normals_Hough-%{nh_commit} plugins/qHoughNormals/normals_Hough

- 

  # fix spurious executable permissions

  # https://github.com/aboulch/normals_Hough/pull/5

  # https://github.com/CloudCompare/normals_Hough/pull/3

  # https://github.com/CloudCompare/CloudCompare/pull/650

- find plugins/qHoughNormals '(' -name '*.h' -o -name '*.hpp' ')' -exec chmod -x {} \;

+ find plugins/core/Standard/qHoughNormals '(' -name '*.h' -o -name '*.hpp' ')' -exec chmod -x {} \;

  

  # On 64bits, change /usr/lib/cloudcompare to /usr/lib64/cloudcompare

  sed -i 's|lib/%{name}|%{_lib}/%{name}|g' $(grep -r lib/%{name} -l)
@@ -165,7 +137,7 @@ 

  # Remove bundle shapelib https://github.com/CloudCompare/CloudCompare/issues/497

  rm -rf contrib/shapelib-*

  sed -i 's/add_subdirectory.*//' contrib/ShapeLibSupport.cmake

- sed -i 's/ SHAPELIB / shp /g' plugins/qFacets/CMakeLists.txt contrib/ShapeLibSupport.cmake

+ sed -i 's/ SHAPELIB / shp /g' plugins/core/Standard/qFacets/CMakeLists.txt contrib/ShapeLibSupport.cmake

  

  %build

  mkdir build
@@ -237,7 +209,7 @@ 

  

  %files

  %doc README.md CONTRIBUTING.md CHANGELOG.md

- %license license.txt license_headers.txt

+ %license license.txt

  %{_bindir}/%{name}

  %{_bindir}/%{cname}

  %{_bindir}/ccviewer
@@ -253,6 +225,12 @@ 

  %doc doc

  

  %changelog

+ * Thu Nov 25 2021 Orion Poplawski <orion@nwra.com> - 2.11.3-2

+ - Rebuild for vtk 9.1.0

+ 

+ * Sun Jan 24 2021 Orion Poplawski <orion@nwra.com> - 2.11.3-1

+ - Update to 2.11.3

+ 

  * Fri Nov  6 21:48:57 CET 2020 Sandro Mani <manisandro@gmail.com> - 2.9.1-11

  - Rebuild (proj, gdal)

  

file modified
+1 -3
@@ -1,3 +1,1 @@ 

- SHA512 (CloudCompare-2.9.1.tar.gz) = f647197cdb500c3438fffdd8752a9a1016d91d7a535bd8a4fdfdcbab0df11b047b0f054881d0ba1e29db01fbc40f7dfcfb7233c5fc7f409417e43b4297fc6635

- SHA512 (normals_Hough-61ba8056d72eedffadb838d9051cc8975ec7a825.tar.gz) = 2c3b3aa3d1288ee0d3bea8a5ff9da198b518c6e43993eb4a67cb91a13e7e8411e38e00c655c771a76f2c92139ce77ee295f1a1039cbab9565f642821aa5884ec

- SHA512 (PoissonRecon-f42872b45ac35bf85efc662d348bb5d8ac9e5577.tar.gz) = 9e5f23d03f3baef891421809dd4cf7fce5aeb703e21584c8e2fde348a0819102359dac83dcad98b4cafcdb7929e5868cf1c6f9c57087e5712c4142c9ab1781d5

+ SHA512 (CloudCompare-2.11.3.tar.gz) = 9e9ef9f3491c6953896538227d6b271158f4a272a9bba3e9697ff66398ce8f075edff2f1672f8c1f00d7bb36aadfc653bacb3e06d6159146fd9074d1850c6dfb

I wasn't sure why the sub-modules were separately packaged, so I just removed them.

This builds fine against VTK 9.0.1 so it would be great to see it updated soon. I'm looking to update VTK this week or next.

I wasn't sure why the sub-modules were separately packaged

Because the main tarball did not contain them. Quickly checking, there might have been some changes, but at least PoissonReconLib seem to still be a submodule.

This seems suspicious:

CMake Warning:
  Manually-specified variables were not used by the project:
    ...
    INSTALL_QANIMATION_PLUGIN
    INSTALL_QBLUR_PLUGIN
    INSTALL_QBROOM_PLUGIN
    INSTALL_QCSF_PLUGIN
    INSTALL_QDUMMY_PLUGIN
    INSTALL_QEDL_PLUGIN
    INSTALL_QFACETS_PLUGIN
    INSTALL_QHOUGH_NORMALS_PLUGIN
    INSTALL_QHPR_PLUGIN
    INSTALL_QKINECT_PLUGIN
    INSTALL_QM3C2_PLUGIN
    INSTALL_QPCL_PLUGIN
    INSTALL_QPCV_PLUGIN
    INSTALL_QPHOTOSCAN_IO_PLUGIN
    INSTALL_QPOISSON_RECON_PLUGIN
    INSTALL_QRANSAC_SD_PLUGIN
    INSTALL_QSRA_PLUGIN
    INSTALL_QSSAO_PLUGIN
    ...

Currently I get:

$ rpm -ql cloudcompare | grep -i plugin
/usr/lib64/cloudcompare/plugins
/usr/lib64/cloudcompare/plugins/libQANIMATION_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQBLUR_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQBROOM_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQCSF_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQEDL_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQFACETS_PLUGIN_DLL.so
/usr/lib64/cloudcompare/plugins/libQHOUGH_NORMALS_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQHPR_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQM3C2_PLUGIN_DLL.so
/usr/lib64/cloudcompare/plugins/libQPCL_IO_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQPCL_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQPCV_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQPHOTOSCAN_IO_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQPOISSON_RECON_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQRANSAC_SD_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQSRA_PLUGIN.so
/usr/lib64/cloudcompare/plugins/libQSSAO_PLUGIN.so

With the updated package I see:

$ rpm -qlp cloudcompare-2.11.3-1.fc34.x86_64.rpm | grep -i plugin
/usr/lib64/cloudcompare/plugins
/usr/lib64/cloudcompare/plugins/libQCORE_IO_PLUGIN.so

There might be a regression with this update :/

1 new commit added

  • Rebuild for vtk 9.1.0
2 years ago

Pull-Request has been closed by churchyard

2 years ago