'TypeInfo': is not a member of FVector

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.

The overloads in this plugin cause me some grief too. You have to call the full signature, with normals, tangents and all.