diff --git a/Source/lidarforest/Private/LFLandscapeGrassHack.cpp b/Source/lidarforest/Private/LFLandscapeGrassHack.cpp new file mode 100644 index 0000000..c4be8cd --- /dev/null +++ b/Source/lidarforest/Private/LFLandscapeGrassHack.cpp @@ -0,0 +1,30 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "LFLandscapeGrassHack.h" + +// Sets default values +ALFLandscapeGrassHack::ALFLandscapeGrassHack() +{ + // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = false; + Root = CreateDefaultSubobject("Root"); + RootComponent = Root; +} + +// Called when the game starts or when spawned +void ALFLandscapeGrassHack::BeginPlay() +{ + Super::BeginPlay(); + UpdateGrass(Landscape); +} + +void ALFLandscapeGrassHack::UpdateGrass(ALandscapeProxy* LandscapeToUpdate) +{ + if(!IsValid(LandscapeToUpdate)) + { + UE_LOG(LogTemp, Warning, TEXT("NO landscape has been assigned, cannot recreate grass")); + return; + } + FOccluderVertexArray arr; + LandscapeToUpdate->UpdateGrass(arr, true); +} diff --git a/Source/lidarforest/Private/MyActor.cpp b/Source/lidarforest/Private/MyActor.cpp new file mode 100644 index 0000000..30478b6 --- /dev/null +++ b/Source/lidarforest/Private/MyActor.cpp @@ -0,0 +1,27 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "MyActor.h" + +// Sets default values +AMyActor::AMyActor() +{ + // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = true; + +} + +// Called when the game starts or when spawned +void AMyActor::BeginPlay() +{ + Super::BeginPlay(); + +} + +// Called every frame +void AMyActor::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); + +} + diff --git a/Source/lidarforest/Public/LFLandscapeGrassHack.h b/Source/lidarforest/Public/LFLandscapeGrassHack.h new file mode 100644 index 0000000..a9d6ddf --- /dev/null +++ b/Source/lidarforest/Public/LFLandscapeGrassHack.h @@ -0,0 +1,31 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "LandscapeProxy.h" +#include "GameFramework/Actor.h" +#include "LFLandscapeGrassHack.generated.h" + +UCLASS() +class LIDARFOREST_API ALFLandscapeGrassHack : public AActor +{ + GENERATED_BODY() + +public: + // Sets default values for this actor's properties + ALFLandscapeGrassHack(); + + UPROPERTY() + USceneComponent* Root; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + ALandscapeProxy* Landscape; + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + + void UpdateGrass(ALandscapeProxy* LandscapeToUpdate); + +}; diff --git a/Source/lidarforest/Public/MyActor.h b/Source/lidarforest/Public/MyActor.h new file mode 100644 index 0000000..03dfcd7 --- /dev/null +++ b/Source/lidarforest/Public/MyActor.h @@ -0,0 +1,26 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "MyActor.generated.h" + +UCLASS() +class LIDARFOREST_API AMyActor : public AActor +{ + GENERATED_BODY() + +public: + // Sets default values for this actor's properties + AMyActor(); + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + +}; diff --git a/Source/lidarforest/lidarforest.Build.cs b/Source/lidarforest/lidarforest.Build.cs index 4380768..a56bf80 100644 --- a/Source/lidarforest/lidarforest.Build.cs +++ b/Source/lidarforest/lidarforest.Build.cs @@ -8,7 +8,8 @@ public class lidarforest : ModuleRules { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; - PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "ForestImporter"}); + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", + "Landscape"}); PrivateDependencyModuleNames.AddRange(new string[] { }); diff --git a/Source/lidarforest/lidarforest.cpp b/Source/lidarforest/lidarforest.cpp index 7689cc8..b2cb29f 100644 --- a/Source/lidarforest/lidarforest.cpp +++ b/Source/lidarforest/lidarforest.cpp @@ -4,3 +4,4 @@ #include "Modules/ModuleManager.h" IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, lidarforest, "lidarforest" ); +