diff --git a/InstancedMeshLines/Content/ExampleMap.umap b/InstancedMeshLines/Content/ExampleMap.umap
index 2220183936cd8235a84c8eeafc745ebbc8f59998..fadd933fc66bf8d79521fab877e4261c2a6ec129 100644
Binary files a/InstancedMeshLines/Content/ExampleMap.umap and b/InstancedMeshLines/Content/ExampleMap.umap differ
diff --git a/InstancedMeshLines/Content/ExampleMap_BuiltData.uasset b/InstancedMeshLines/Content/ExampleMap_BuiltData.uasset
index 06f787659e243a25918ea05f951489038a8c99e3..d67265b5d9869ce3c2003fe114e65474f97d9d2c 100644
Binary files a/InstancedMeshLines/Content/ExampleMap_BuiltData.uasset and b/InstancedMeshLines/Content/ExampleMap_BuiltData.uasset differ
diff --git a/InstancedMeshLines/Plugins/InstancedMeshLineRendering/Source/InstancedMeshLineRendering/Private/GPUInstancedLineComponent.cpp b/InstancedMeshLines/Plugins/InstancedMeshLineRendering/Source/InstancedMeshLineRendering/Private/GPUInstancedLineComponent.cpp
index 703e346af542d97ddf0e4d7d755189768bda5e6d..ec35353186093565212b51ebf07b4fe098a071c3 100644
--- a/InstancedMeshLines/Plugins/InstancedMeshLineRendering/Source/InstancedMeshLineRendering/Private/GPUInstancedLineComponent.cpp
+++ b/InstancedMeshLines/Plugins/InstancedMeshLineRendering/Source/InstancedMeshLineRendering/Private/GPUInstancedLineComponent.cpp
@@ -95,7 +95,7 @@ void UGPUInstancedLineComponent::Init()
bIsInitialized = true;
-
+ // Add serialized lines to be rendered immediately - pretty sure this could and should be done differently.
for (FEditorLineData& EditorLine : EditorLines)
{
AddLineFromEditorData(EditorLine);
@@ -106,8 +106,6 @@ void UGPUInstancedLineComponent::Init()
FUpdateTextureRegion2D* UGPUInstancedLineComponent::CalculateTextureRegions(const FIntPoint& StartIndex,
int32 NumberOfPoints, int32& NumberOfRegionsOut)
{
- const bool bMultiRow = StartIndex.X + NumberOfPoints > TextureWidth;
-
// Calculate the first consecutive region:
int32 RemainingPoints = NumberOfPoints;
@@ -336,11 +334,14 @@ int32 UGPUInstancedLineComponent::AddLine(const TArray<FVector>& Line, FLinearCo
return LineId;
}
-int32 UGPUInstancedLineComponent::AddLineFromEditorData(const FEditorLineData& LineData)
+int32 UGPUInstancedLineComponent::AddLineFromEditorData(FEditorLineData& LineData)
{
const TArray<FEditorPoint>* EditorLineDataPtr = &LineData.Points;
const TArray<FVector>* FVectorLineDataPtr = reinterpret_cast<const TArray<FVector>*>(EditorLineDataPtr);
- return AddLine(*FVectorLineDataPtr, LineData.Color, LineData.Width);
+
+ LineData.RespectiveLineId = AddLine(*FVectorLineDataPtr, LineData.Color, LineData.Width);
+
+ return LineData.RespectiveLineId;
}
diff --git a/InstancedMeshLines/Plugins/InstancedMeshLineRendering/Source/InstancedMeshLineRendering/Public/GPUInstancedLineComponent.h b/InstancedMeshLines/Plugins/InstancedMeshLineRendering/Source/InstancedMeshLineRendering/Public/GPUInstancedLineComponent.h
index f6cbbe02b54a50cebbff801700b0e45fb304309d..d2af8882cf674788d48b1342236b28b56fd0cbac 100644
--- a/InstancedMeshLines/Plugins/InstancedMeshLineRendering/Source/InstancedMeshLineRendering/Public/GPUInstancedLineComponent.h
+++ b/InstancedMeshLines/Plugins/InstancedMeshLineRendering/Source/InstancedMeshLineRendering/Public/GPUInstancedLineComponent.h
@@ -26,7 +26,7 @@ struct FEditorPoint
{
GENERATED_USTRUCT_BODY()
- UPROPERTY(EditAnywhere)
+ UPROPERTY(EditAnywhere, meta = (MakeEditWidget = true))
FVector Point;
FEditorPoint()
@@ -45,7 +45,7 @@ struct FEditorLineData
{
GENERATED_USTRUCT_BODY()
- UPROPERTY(EditAnywhere)
+ UPROPERTY(EditAnywhere, meta = (MakeEditWidget = true, EditFixedOrder))
TArray<FEditorPoint> Points;
UPROPERTY(EditAnywhere)
@@ -54,6 +54,8 @@ struct FEditorLineData
UPROPERTY(EditAnywhere)
FColor Color;
+ int32 RespectiveLineId = -1;
+
FEditorLineData()
{
}
@@ -143,7 +145,7 @@ public:
* @return int32 Id of the line, can be used to access it later on.
*/
UFUNCTION(BlueprintCallable, Category = "Components|InstancedLineComponent")
- int32 AddLineFromEditorData(const FEditorLineData& LineData);
+ int32 AddLineFromEditorData(FEditorLineData& LineData);
/**
* Adds a point at the end of the specified line.