Files
alexei lebedev 2815323fbc [mutable] Moved the Mutable plugin out of Experimental status into Beta.
#jira UE-223488
#rb jordi.rovira
#tests Editor
#rnx

#virtualized

[CL 36035608 by alexei lebedev in ue5-main branch]
2024-09-05 07:16:19 -04:00

89 lines
2.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "MuR/Ptr.h"
#include "MuR/RefCounted.h"
#include "MuT/Node.h"
#include "MuT/NodeImage.h"
namespace mu
{
// Forward definitions
class NodeScalar;
typedef Ptr<NodeScalar> NodeScalarPtr;
typedef Ptr<const NodeScalar> NodeScalarPtrConst;
class NodeImageTransform;
typedef Ptr<NodeImageTransform> NodeImageTransformPtr;
typedef Ptr<const NodeImageTransform> NodeImageTransformPtrConst;
enum class EAddressMode;
//! Node that multiplies the colors of an image, channel by channel.
//! \ingroup model
class MUTABLETOOLS_API NodeImageTransform : public NodeImage
{
public:
NodeImageTransform();
//-----------------------------------------------------------------------------------------
// Node Interface
//-----------------------------------------------------------------------------------------
const FNodeType* GetType() const override;
static const FNodeType* GetStaticType();
//-----------------------------------------------------------------------------------------
// Own Interface
//-----------------------------------------------------------------------------------------
//! Base image to multiply.
NodeImagePtr GetBase() const;
void SetBase( NodeImagePtr );
NodeScalarPtr GetOffsetX() const;
NodeScalarPtr GetOffsetY() const;
NodeScalarPtr GetScaleX() const;
NodeScalarPtr GetScaleY() const;
NodeScalarPtr GetRotation() const;
void SetOffsetX( NodeScalarPtr pNode );
void SetOffsetY( NodeScalarPtr pNode );
void SetScaleX( NodeScalarPtr pNode );
void SetScaleY( NodeScalarPtr pNode );
void SetRotation( NodeScalarPtr pNode );
EAddressMode GetAddressMode() const;
void SetAddressMode(EAddressMode AddressMode);
uint16 GetSizeX() const;
void SetSizeX(uint16 SizeX);
uint16 GetSizeY() const;
void SetSizeY(uint16 SizeY);
bool GetKeepAspectRatio() const;
void SetKeepAspectRatio(bool bKeepAspectRatio);
//-----------------------------------------------------------------------------------------
// Interface pattern
//-----------------------------------------------------------------------------------------
class Private;
Private* GetPrivate() const;
protected:
//! Forbidden. Manage with the Ptr<> template.
~NodeImageTransform();
private:
Private* m_pD;
};
}