Point Cloud Plugin

Hello, I am unable to get the plugin working on the Linux version of Unreal Engine and was wondering if anyone else had any ideas/advice for me?

Following the instructions on the official website:

  • I close the editor
  • I create a plugins folder in my project and copied in the PointCloudPlugin folder
  • I then reopen my project. When the project opens I am greeted by a pop up “Project file is out of date. would you like to update it?” and I click udpate

From this point I am able to view the PointCloudPlugin entry in the plugin list inside of the editor, however I am only able to view the “PointCloudPlugin Content” folder in the content browser. I have ensured that I have the “Show C++ Classes” viewing option enabled. I am also unable to create any variables defined in the plugin.

Digging into the PointCloudPlugin.uproject file I find that the plugins “SupportedTargetPlatforms” is win64, and that the two modules included in the plugin are whitelisted for win64. I then tried to remove the whitelisting of the modules (figured it was worth a try). and when I open the project once more a popup informs me that it PointCloudRuntime and PointCloudEditor need to be rebuilt. The following compile errors then appear:


/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/IO/PointCloudFileIO_LAS.h:280:22: error: ISO C++11 does not allow conversion from string literal to 'char *' -Werror,-Wwritable-strings]
                SystemIdentifier = "Unreal Engine 4";
                                   ^
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/IO/PointCloudFileIO_LAS.h:283:24: error: ISO C++11 does not allow conversion from string literal to 'char *' -Werror,-Wwritable-strings]
                GeneratingSoftware = "Point Cloud Plugin";
                                     ^
In file included from /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudRuntime/Module.PointCloudRuntime.cpp:5:
In file included from /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Private/IO/PointCloudFileIO_LAS.cpp:3:
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/IO/PointCloudFileIO_LAS.h:280:22: error: ISO C++11 does not allow conversion from string literal to 'char *' -Werror,-Wwritable-strings]
                SystemIdentifier = "Unreal Engine 4";
                                   ^
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/IO/PointCloudFileIO_LAS.h:283:24: error: ISO C++11 does not allow conversion from string literal to 'char *' -Werror,-Wwritable-strings]
                GeneratingSoftware = "Point Cloud Plugin";
                                     ^
In file included from /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudRuntime/Module.PointCloudRuntime.cpp:14:
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Private/Rendering/PointCloudRendering.cpp:72:34: warning: declaration shadows a field of 'FPointCloudCollisionRendering' -Wshadow]
                void Initialize(FVertexBuffer* VertexBuffer)
                                               ^
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Private/Rendering/PointCloudRendering.cpp:133:4: note: previous declaration is here
        } VertexBuffer;
          ^

I am able to fix the errors that occur in PointCloudFileIO_LAS.h and can ignore the warning about PointCloudRendering.cpp. When I attempt to recompile I now reach these errors:


/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditor::SelectPointsByFrustum(FConvexVolume const&, bool)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:204: undefined reference to `FPointCloudOctree::GetPointsInFrustum(TArray<FPointCloudPoint*, TSizedDefaultAllocator<32> >&, FConvexVolume const&, bool const&) const'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:204: undefined reference to `FPointCloudOctree::GetPointsInFrustum(TArray&lt;FPointCloudPoint*, TSizedDefaultAllocator&lt;32&gt; &gt;&, FConvexVolume const&, bool const&) const'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditor::DeselectPointsByFrustum(FConvexVolume const&)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:204: undefined reference to `FPointCloudOctree::GetPointsInFrustum(TArray&lt;FPointCloudPoint*, TSizedDefaultAllocator&lt;32&gt; &gt;&, FConvexVolume const&, bool const&) const'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditor::DeletePoints()':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:436: undefined reference to `FPointCloudOctree::RemovePoints(TArray&lt;FPointCloudPoint*, TSizedDefaultAllocator&lt;32&gt; &gt;&)'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditor::HidePoints()':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:338: undefined reference to `FPointCloudOctree::MarkPointVisibilityDirty()'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditor::UnhideAll()':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:277: undefined reference to `FPointCloudOctree::UnhideAll()'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `FPointCloudEditorViewportClient::InputKey(FViewport*, int, FKey, EInputEvent, float, bool)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:338: undefined reference to `FPointCloudOctree::MarkPointVisibilityDirty()'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `UE4Function_Private::TFunctionRefCaller<FPointCloudEditor::BuildPointCloudStatistics()::$_0, FText ()>::Call(void*)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:170: undefined reference to `FPointCloudOctree::GetNumPoints() const'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `UE4Function_Private::TFunctionRefCaller<FPointCloudEditor::BuildPointCloudStatistics()::$_1, FText ()>::Call(void*)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:173: undefined reference to `FPointCloudOctree::GetNumNodes() const'
/home/vr-pc/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v14_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: /home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/PointCloudEditor/Module.PointCloudEditor.cpp.o: in function `UPointCloud::SetData(TArray<FPointCloudPoint*, TSizedDefaultAllocator<32> >&)':
/home/vr-pc/Documents/Unreal Projects/PCLtest/Plugins/PointCloudPlugin/Source/PointCloudRuntime/Public/PointCloud.h:457: undefined reference to `bool UPointCloud::SetData&lt;FPointCloudPoint**&gt;(FPointCloudPoint**, long long const&, TFunction&lt;void (float)&gt;)'



The official website says that the plugin has been tested on Linux by users so am I misunderstanding how to install the plugin? I am new to Unreal Engine so it is possible. Thanks in advance to anyone who can help me!

System info:
Linux Version: 16.04 *
UE4 Version: 4.23
PointCloudPlugin version:
0.7-4.23*