I’m using the FLeX 4.14.3 branch of NVIDIA’s UE4 repo:
And I’m trying to add the RuntimeMeshComponent as a plugin to the engine:
I’ve got the engine built with the plugin as an engine plugin. It gave a couple of errors about all files needing the same precompiled headers at the top within a plugin, but that was easily fixed.
What I’m not sure how to fix is that, when passing the vertex array as a TArray, the compiler throws the following:
d:\ue4_dev\nvidia_ue4_14\engine\plugins\runtimemeshcomponent\source\runtimemeshcomponent\public\RuntimeMeshSection.h(542): note: while compiling class template member function 'const FRuntimeMeshVertexTypeInfo *FRuntimeMeshSection<VertexType>::GetVertexType(void) const'
2> with
2> [
2> VertexType=FVector
2> ]
2> d:\ue4_dev\nvidia_ue4_14\engine\source\runtime\core\public\templates\PointerIsConvertibleFromTo.h(16): note: see reference to class template instantiation 'FRuntimeMeshSection<VertexType>' being compiled
2> with
2> [
2> VertexType=FVector
2> ]
2> D:\UE4_Dev\NVIDIA_UE4_14\Engine\Source\Runtime\Core\Public\Templates\SharedPointer.h(518): note: see reference to class template instantiation 'TPointerIsConvertibleFromTo<ObjectType,const UObjectBase>' being compiled
2> with
2> [
2> ObjectType=FRuntimeMeshSection<FVector>
2> ]
2> D:\UE4_Dev\NVIDIA_UE4_14\Engine\Plugins\RuntimeMeshComponent\Source\RuntimeMeshComponent\Public\RuntimeMeshComponent.h(171): note: see reference to class template instantiation 'TSharedPtr<FRuntimeMeshSection<VertexType>,0>' being compiled
2> with
2> [
2> VertexType=FVector
2> ]
2> D:\_User\Username\Documents\Unreal Projects\OpenCVCollisionTest2\Source\OpenCVCollisionTest\CVStereoReader.cpp(247): note: see reference to function template instantiation 'void URuntimeMeshComponent::CreateMeshSection<FVector>(int32,TArray<FVector,FDefaultAllocator> &,TArray<ElementType,FDefaultAllocator> &,bool,EUpdateFrequency,ESectionUpdateFlags)' being compiled
2> with
2> [
2> ElementType=int32
2> ]
2>d:\ue4_dev\nvidia_ue4_14\engine\plugins\runtimemeshcomponent\source\runtimemeshcomponent\public\RuntimeMeshSection.h(542): error C2065: 'TypeInfo': undeclared identifier
The line this points me to is line 542 in RuntimeMeshSection.h
virtual const FRuntimeMeshVertexTypeInfo* GetVertexType() const { return &VertexType::TypeInfo; }
Where VertexType is a templated type that FVector fills, so it’s effectively return &FVector::TypeInfo;
For reference, the line I’m calling that causes this is:
DisparityMesh->CreateMeshSection(0, vertices, Triangles, false);
Where vertices is TArray
and Triangles is TArray
similar to how you would create a section for a ProceduralMeshComponent.
My question is if there’s a known way to either fix this or circumvent this.
The fact that this is templated means there’s likely some other option for vertices other than FVector, but I don’t know what that would be within the realm of UE4.
I might also be missing something completely.
My other option is replacing the template completely with FVector, but as that is a big endeavor, I’m hoping for something a bit less time consuming.