Yasiu Spline Meshed 1
Extension of basic spline for use with meshes.
Loading...
Searching...
No Matches
SplineMeshedActor.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2026 Grzegorz Krug.
3 * All Rights Reserved.
4 */
5
7#pragma once
8
10
11#include "SplineMeshedActor.generated.h"
12
14
21UCLASS(Blueprintable, BlueprintType, Category="YasiuSpline")
22class YASIUSPLINEMESHED_API ASplineMeshed : public AActor {
23 GENERATED_BODY()
24
25public:
26 ASplineMeshed( const FObjectInitializer& ObjectInitializer )
27 : Super(ObjectInitializer)
28 {
29 SplineMeshedComponent = ObjectInitializer.CreateDefaultSubobject<USplineMeshedComponent>(
30 this,
31 TEXT("SplineMeshedComponent"),
32 false
33 );
34
35 RootComponent = SplineMeshedComponent;
36 };
37
39 UPROPERTY(BlueprintReadWrite, VisibleAnywhere, Category="YasiuSpline")
41
43 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="YasiuSpline")
44 bool AutoUpdate = true;
45
47 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="YasiuSpline")
48 TSoftObjectPtr<UStaticMesh> Mesh;
49
51 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="YasiuSpline")
53
55 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="YasiuSpline")
56 TArray<TObjectPtr<UMaterialInterface>> Materials{};
57
59 virtual void OnConstruction( const FTransform& Transform ) override;
60
62 UFUNCTION(BlueprintCallable, Category="YasiuSpline")
64
65
66#if WITH_EDITOR
71 UFUNCTION(BlueprintCallable, Category="YasiuSpline")
72 void SpawnStaticMeshes();
73
74 // virtual void PostEditMove( bool bFinished ) override;
75
76 virtual void PostEditChangeProperty( struct FPropertyChangedEvent& PropertyChangedEvent ) override;
77
79 UFUNCTION(BlueprintCallable, Category="YasiuSpline")
80 void ManualSpawn();
81
83 UFUNCTION(BlueprintCallable, Category="YasiuSpline")
84 void ClearMeshes() const;
85
87 UFUNCTION(BlueprintCallable, Category="YasiuSpline")
88 void MoveSplineToActorOrigin();
89
91 UFUNCTION(BlueprintCallable, Category="YasiuSpline")
92 void MoveActorToFirstPoint();
93
95 void Reselect();
96#endif
97
99 UFUNCTION(BlueprintCallable, Category="YasiuSpline")
101
102 UFUNCTION(BlueprintCallable, Category="YasiuSpline")
103 void CopySplinePoints();
104
105 UFUNCTION(BlueprintCallable, Category="YasiuSpline")
106 void CopySplinePointsAndMeshes();
107
108 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="YasiuSpline")
109 TSoftObjectPtr<ASplineMeshed> OtherSplineActor;
110
111 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="YasiuSpline")
112 FSplineDetectionTestParams CollisionTestParams{};
113
118 UFUNCTION(BlueprintCallable, Category="YasiuSpline")
120
121 bool WasActorUpdated = true;
122
123 bool DoSingleUpdate = false;
124};
125
126
131UCLASS(Blueprintable, BlueprintType, Abstract, Category="YasiuSpline")
132class YASIUSPLINEMESHED_API ASplineMeshed_AbstractExtension : public ASplineMeshed {
133 GENERATED_BODY()
134
135public:
136 ASplineMeshed_AbstractExtension( const FObjectInitializer& ObjectInitializer )
137 : Super(ObjectInitializer) {};
138};
139
140
145UCLASS(Blueprintable, BlueprintType, Category="YasiuSpline")
146class YASIUSPLINEMESHED_API ASplineMeshed_ExtensionSinus : public ASplineMeshed_AbstractExtension {
147 GENERATED_BODY()
148
149 ASplineMeshed_ExtensionSinus( const FObjectInitializer& ObjectInitializer )
150 : Super(ObjectInitializer.SetDefaultSubobjectClass<USplineMeshedComponent_ExtendedToSinus>("SplineMeshedComponent")) {};
151};
152
153
158UCLASS(Blueprintable, BlueprintType, Category="YasiuSpline")
159class YASIUSPLINEMESHED_API ASplineMeshed_ExtensionHelix : public ASplineMeshed_AbstractExtension {
160 GENERATED_BODY()
161
162 ASplineMeshed_ExtensionHelix( const FObjectInitializer& ObjectInitializer )
163 : Super(ObjectInitializer.SetDefaultSubobjectClass<USplineMeshedComponent_ExtendedToHelix>("SplineMeshedComponent")) {};
164};
TArray< TObjectPtr< UMaterialInterface > > Materials
Materials list used to apply on meshes to corresponding index.
Definition SplineMeshedActor.h:56
TSoftObjectPtr< UStaticMesh > Mesh
Mesh used to spawn along spline.
Definition SplineMeshedActor.h:48
void OverlapActorAlongSpline()
Check if any object is overlapping spline location.
virtual void OnConstruction(const FTransform &Transform) override
Function that spawns meshes after any change or spawn.
void ConstructionFinished()
Function used to set flags for parent ActorClass. To skip re-construction because we did it.
bool SpawnMeshes()
Base Function to pass all params from variable SpawnParams and Place meshes.
TObjectPtr< USplineMeshedComponent > SplineMeshedComponent
Spline meshed component.
Definition SplineMeshedActor.h:40
FSplineMeshedSpawnParams SpawnParams
Parameters used for mesh spawning.
Definition SplineMeshedActor.h:52
bool AutoUpdate
Auto update meshes to spline.
Definition SplineMeshedActor.h:44
Modified USplineMeshedComponent that spawns meshes in helix pattern.
Definition SplineMeshedComponent.h:1111
Modified USplineMeshedComponent that spawns meshes in zigzag/sinus pattern.
Definition SplineMeshedComponent.h:1091
Core component that handles meshes spawning along spline.
Definition SplineMeshedComponent.h:636
Params used for collision check along spline. Some variables are mirrored to match unreal engine's **...
Definition SplineMeshedComponent.h:428
Parameters used to customize mesh spawn along spline.
Definition SplineMeshedComponent.h:274