The issue is more related to CloudCompare than this plugin but:
The type NormsIndexesTableType cannot be proberly wrapped to Python.
On linux if its wrapped or used in as an argument / return type at runtime we get such error:
libPythonPlugin.so does not seem to be a valid plugin (Cannot load library /usr/local/lib/cloudcompare/plugins/libPythonPlugin.so: (/usr/local/lib/cloudcompare/plugins/libPythonPlugin.so: undefined symbol: _ZTI21NormsIndexesTableType))
Inspecting libQCC_DB_LIB.so indeed shows that the symbol is not exported.
The fix would be to put QCC_DB_LIB_API to the class:
# qCC_db\include\ccAdvancedTypes.h
// From
class NormsIndexesTableType : public ccArray<CompressedNormType, 1, CompressedNormType> { ... }
// To
class QCC_DB_LIB_API NormsIndexesTableType : public ccArray<CompressedNormType, 1, CompressedNormType> { ... }
However doing this creates link errors on windows about symbols being define multiple times (LNK2005, LNK1169) on std::vector methods
It seems that It's due (not 100% sure) to the fact that CloudCompare has multiple classes that inherits from std::vector.
But then no idea on how to fix this without refactoring alot of CC's internals
The issue is more related to CloudCompare than this plugin but:
The type NormsIndexesTableType cannot be proberly wrapped to Python.
On linux if its wrapped or used in as an argument / return type at runtime we get such error:
Inspecting
libQCC_DB_LIB.so
indeed shows that the symbol is not exported.The fix would be to put
QCC_DB_LIB_API
to the class:However doing this creates link errors on windows about symbols being define multiple times (LNK2005, LNK1169) on std::vector methods