2020-11-11 16:51:59 -04:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
|
#include "MetasoundDataReference.h"
|
|
|
|
|
#include "MetasoundFrontend.h"
|
|
|
|
|
#include "MetasoundFrontendQuery.h"
|
|
|
|
|
|
|
|
|
|
namespace Metasound
|
|
|
|
|
{
|
2021-03-30 18:22:10 -04:00
|
|
|
/** Generates all registered node classes */
|
2020-11-11 16:51:59 -04:00
|
|
|
class METASOUNDFRONTEND_API FGenerateAllAvailableNodeClasses : public IFrontendQueryGenerateStep
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
void Generate(TArray<FFrontendQueryEntry>& OutEntries) const override;
|
|
|
|
|
};
|
|
|
|
|
|
2021-03-30 18:22:10 -04:00
|
|
|
/** Generates node classes that have been newly registered since last call
|
|
|
|
|
* to this FGenerateNewlyAvailableClasses::Generate()
|
|
|
|
|
*/
|
|
|
|
|
class METASOUNDFRONTEND_API FGenerateNewlyAvailableNodeClasses : public IFrontendQueryGenerateStep
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
FGenerateNewlyAvailableNodeClasses();
|
|
|
|
|
void Generate(TArray<FFrontendQueryEntry>& OutEntries) const override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
mutable Frontend::FRegistryTransactionID CurrentTransactionID;
|
|
|
|
|
};
|
|
|
|
|
|
2020-11-11 16:51:59 -04:00
|
|
|
class METASOUNDFRONTEND_API FFilterClassesByInputVertexDataType : public IFrontendQueryFilterStep
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
template<typename DataType>
|
|
|
|
|
FFilterClassesByInputVertexDataType()
|
|
|
|
|
: FFilterClassesByInputVertexDataType(GetMetasoundDataTypeName<DataType>())
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FFilterClassesByInputVertexDataType(const FName& InTypeName);
|
|
|
|
|
|
|
|
|
|
bool Filter(const FFrontendQueryEntry& InEntry) const override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
FName InputVertexTypeName;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class METASOUNDFRONTEND_API FFilterClassesByOutputVertexDataType : public IFrontendQueryFilterStep
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
template<typename DataType>
|
|
|
|
|
FFilterClassesByOutputVertexDataType()
|
|
|
|
|
: FFilterClassesByOutputVertexDataType(GetMetasoundDataTypeName<DataType>())
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FFilterClassesByOutputVertexDataType(const FName& InTypeName);
|
|
|
|
|
|
|
|
|
|
bool Filter(const FFrontendQueryEntry& InEntry) const override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
FName OutputVertexTypeName;
|
|
|
|
|
};
|
2021-01-22 03:05:22 -04:00
|
|
|
|
|
|
|
|
class METASOUNDFRONTEND_API FFilterClassesByClassName : public IFrontendQueryFilterStep
|
|
|
|
|
{
|
|
|
|
|
public:
|
2021-01-28 19:02:51 -04:00
|
|
|
FFilterClassesByClassName(const FMetasoundFrontendClassName& InClassName);
|
2021-01-22 03:05:22 -04:00
|
|
|
|
|
|
|
|
bool Filter(const FFrontendQueryEntry& InEntry) const override;
|
|
|
|
|
|
|
|
|
|
private:
|
2021-01-28 19:02:51 -04:00
|
|
|
FMetasoundFrontendClassName ClassName;
|
2021-01-22 03:05:22 -04:00
|
|
|
};
|
2021-03-09 00:27:55 -04:00
|
|
|
|
|
|
|
|
class METASOUNDFRONTEND_API FFilterClassesByClassID : public IFrontendQueryFilterStep
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
FFilterClassesByClassID(const FGuid InClassID);
|
|
|
|
|
|
|
|
|
|
bool Filter(const FFrontendQueryEntry& InEntry) const override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
FGuid ClassID;
|
|
|
|
|
};
|
2020-11-11 16:51:59 -04:00
|
|
|
}
|
|
|
|
|
|