Files
UnrealEngineUWP/Engine/Source/Developer/RigVMDeveloper/Public/RigVMModel/Nodes/RigVMArrayNode.h
sara schvartzman ed571628f5 Control Rig: Filtered permutations for template nodes
#jira na
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/62769cbe75268b4ace10dc69

[CL 20101111 by sara schvartzman in ue5-main branch]
2022-05-09 07:34:28 -04:00

90 lines
2.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "RigVMTemplateNode.h"
#include "RigVMCore/RigVMExternalVariable.h"
#include "RigVMArrayNode.generated.h"
/**
* The Array Node represents one of a series available
* array operations such as SetNum, GetAtIndex etc.
*/
UCLASS(BlueprintType)
class RIGVMDEVELOPER_API URigVMArrayNode : public URigVMTemplateNode
{
GENERATED_BODY()
public:
// Default constructor
URigVMArrayNode();
// Override of node title
virtual FString GetNodeTitle() const override;
// static version
static FString GetNodeTitle(ERigVMOpCode InOpCode);
// Override of the node tooltip
virtual FText GetToolTipText() const override;
// Override of the node color
virtual FLinearColor GetNodeColor() const override;
// Override of the template notation
virtual FName GetNotation() const override;
// Override of the template
virtual const FRigVMTemplate* GetTemplate() const override;
// Override of singleton
virtual bool IsSingleton() const override { return false; }
// Returns the op code of this node
UFUNCTION(BlueprintCallable, Category = RigVMArrayNode)
ERigVMOpCode GetOpCode() const;
// Returns the C++ data type of the element
UFUNCTION(BlueprintCallable, Category = RigVMArrayNode)
FString GetCPPType() const;
// Returns the C++ data type struct of the array (or nullptr)
UFUNCTION(BlueprintCallable, Category = RigVMArrayNode)
UObject* GetCPPTypeObject() const;
// Override of node color
virtual bool IsDefinedAsVarying() const override { return true; }
// Override loop node
virtual bool IsLoopNode() const override;
protected:
virtual FText GetToolTipTextForPin(const URigVMPin* InPin) const override;
private:
UPROPERTY()
ERigVMOpCode OpCode;
static const FString ArrayName;
static const FString NumName;
static const FString IndexName;
static const FString ElementName;
static const FString SuccessName;
static const FString OtherName;
static const FString CloneName;
static const FString CountName;
static const FString RatioName;
static const FString ResultName;
static const FString ContinueName;
static const FString CompletedName;
friend class URigVMController;
friend class URigVMCompiler;
friend class FRigVMVarExprAST;
friend class FRigVMParserAST;
};