ArticyXImporter
ArticyXImporter for Unreal Engine
Loading...
Searching...
No Matches
ArticyObjectWithTarget.h
1//
2// Copyright (c) 2023 articy Software GmbH & Co. KG. All rights reserved.
3//
4
5#pragma once
6
7#include "ArticyObjectWith_Base.h"
8#include "ArticyPrimitive.h"
9#include "ArticyBaseTypes.h"
10#include "ArticyObjectWithTarget.generated.h"
11
12UINTERFACE(MinimalAPI, BlueprintType, meta=(CannotImplementInterfaceInBlueprint))
13class UArticyObjectWithTarget : public UArticyObjectWith_Base { GENERATED_BODY() };
14
19{
20 GENERATED_BODY()
21
22public:
23
24 UFUNCTION(BlueprintCallable, Category="ArticyObjectWithTarget")
25 virtual UArticyPrimitive* GetTarget() const
26 {
27 auto id = GetTargetId();
28 return id.GetObject(_getUObject());
29 }
30
31 UFUNCTION(BlueprintCallable, Category="ArticyObjectWithTarget")
32 virtual FArticyId& GetTargetId()
33 {
34 static const auto& PropName = FName("Target");
35 return GetProperty<FArticyId>(PropName);
36 }
37
38 virtual const FArticyId& GetTargetId() const
39 {
40 return const_cast<IArticyObjectWithTarget*>(this)->GetTargetId();
41 }
42
43 //---------------------------------------------------------------------------//
44
45 UFUNCTION(BlueprintCallable, Category="ArticyObjectWithTarget")
46 virtual UArticyPrimitive* SetTarget(UArticyPrimitive* const Target)
47 {
48 SetTargetId(Target ? Target->GetId() : (FArticyId) 0);
49 return Target;
50 }
51
52 UFUNCTION(BlueprintCallable, Category="ArticyObjectWithTarget")
53 virtual FArticyId& SetTargetId(UPARAM(ref) const FArticyId& Id)
54 {
55 return GetTargetId() = Id;
56 }
57};
Definition ArticyObjectWithTarget.h:19
Definition ArticyObjectWith_Base.h:27
Definition ArticyObjectWithTarget.h:13
Definition ArticyObjectWith_Base.h:12
Definition ArticyPrimitive.h:17
Definition ArticyBaseTypes.h:18