2022-09-26 15:12:13 -04:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
|
2022-10-01 02:04:57 -04:00
|
|
|
#include "MuT/NodeImageProject.h"
|
2022-10-02 10:56:02 -04:00
|
|
|
|
|
|
|
|
#include "Math/IntVector.h"
|
|
|
|
|
#include "Misc/AssertionMacros.h"
|
2022-10-01 02:04:57 -04:00
|
|
|
#include "MuT/NodeImageProjectPrivate.h"
|
2022-10-02 10:56:02 -04:00
|
|
|
#include "MuT/NodeMesh.h"
|
|
|
|
|
#include "MuT/NodePrivate.h"
|
|
|
|
|
#include "MuT/NodeProjector.h"
|
2022-10-01 02:04:57 -04:00
|
|
|
#include "MuT/NodeScalar.h"
|
2023-12-07 05:13:50 -05:00
|
|
|
#include "MuR/Image.h"
|
2022-09-26 15:12:13 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace mu
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
|
// Static initialisation
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
2024-06-10 04:10:54 -04:00
|
|
|
FNodeType NodeImageProject::Private::s_type = FNodeType(Node::EType::ImageProject, NodeImage::GetStaticType() );
|
2022-09-26 15:12:13 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
|
//!
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
|
|
2024-06-10 04:10:54 -04:00
|
|
|
MUTABLE_IMPLEMENT_NODE( NodeImageProject )
|
2022-09-26 15:12:13 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
|
// Own Interface
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
2023-08-03 07:09:55 -04:00
|
|
|
void NodeImageProject::SetMesh( Ptr<NodeMesh> InNode)
|
2022-09-26 15:12:13 -04:00
|
|
|
{
|
2023-08-03 07:09:55 -04:00
|
|
|
m_pD->m_pMesh = InNode;
|
2022-09-26 15:12:13 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
2023-08-03 07:09:55 -04:00
|
|
|
void NodeImageProject::SetProjector( Ptr<NodeProjector> InNode)
|
2022-09-26 15:12:13 -04:00
|
|
|
{
|
2023-08-03 07:09:55 -04:00
|
|
|
m_pD->m_pProjector = InNode;
|
2022-09-26 15:12:13 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
2023-01-17 03:27:11 -05:00
|
|
|
void NodeImageProject::SetAngleFadeChannels(bool bFadeRGB, bool bFadeA)
|
2022-09-26 15:12:13 -04:00
|
|
|
{
|
2023-01-17 03:27:11 -05:00
|
|
|
m_pD->bIsRGBFadingEnabled = bFadeRGB;
|
|
|
|
|
m_pD->bIsAlphaFadingEnabled = bFadeA;
|
2022-09-26 15:12:13 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
2023-08-03 07:09:55 -04:00
|
|
|
void NodeImageProject::SetEnableSeamCorrection(bool bEnabled)
|
2022-09-26 15:12:13 -04:00
|
|
|
{
|
2023-08-03 07:09:55 -04:00
|
|
|
m_pD->bEnableTextureSeamCorrection = bEnabled;
|
2022-09-26 15:12:13 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
2023-08-03 07:09:55 -04:00
|
|
|
void NodeImageProject::SetAngleFadeStart(Ptr<NodeScalar> InNode)
|
2022-09-26 15:12:13 -04:00
|
|
|
{
|
2023-08-03 07:09:55 -04:00
|
|
|
m_pD->m_pAngleFadeStart = InNode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
|
void NodeImageProject::SetAngleFadeEnd( Ptr<NodeScalar> InNode)
|
|
|
|
|
{
|
|
|
|
|
m_pD->m_pAngleFadeEnd = InNode;
|
2022-09-26 15:12:13 -04:00
|
|
|
}
|
|
|
|
|
|
2023-03-01 10:04:25 -05:00
|
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
|
void NodeImageProject::SetSamplingMethod( ESamplingMethod SamplingMethod )
|
|
|
|
|
{
|
|
|
|
|
m_pD->SamplingMethod = SamplingMethod;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
|
void NodeImageProject::SetMinFilterMethod( EMinFilterMethod MinFilterMethod )
|
|
|
|
|
{
|
|
|
|
|
m_pD->MinFilterMethod = MinFilterMethod;
|
|
|
|
|
}
|
|
|
|
|
|
2022-09-26 15:12:13 -04:00
|
|
|
|
2023-08-03 07:09:55 -04:00
|
|
|
|
2022-09-26 15:12:13 -04:00
|
|
|
//---------------------------------------------------------------------------------------------
|
2023-08-03 07:09:55 -04:00
|
|
|
void NodeImageProject::SetTargetMask( Ptr<NodeImage> InNode)
|
2022-09-26 15:12:13 -04:00
|
|
|
{
|
2023-08-03 07:09:55 -04:00
|
|
|
m_pD->m_pMask = InNode;
|
2022-09-26 15:12:13 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
2023-08-03 07:09:55 -04:00
|
|
|
void NodeImageProject::SetImage( Ptr<NodeImage> InNode )
|
2022-09-26 15:12:13 -04:00
|
|
|
{
|
2023-08-03 07:09:55 -04:00
|
|
|
m_pD->m_pImage = InNode;
|
2022-09-26 15:12:13 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
2023-08-03 07:09:55 -04:00
|
|
|
void NodeImageProject::SetLayout( uint8 LayoutIndex )
|
2022-09-26 15:12:13 -04:00
|
|
|
{
|
2023-08-03 07:09:55 -04:00
|
|
|
m_pD->m_layout = LayoutIndex;
|
2022-09-26 15:12:13 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
2023-08-03 07:09:55 -04:00
|
|
|
void NodeImageProject::SetImageSize(const FUintVector2& Size)
|
2022-09-26 15:12:13 -04:00
|
|
|
{
|
2023-08-03 07:09:55 -04:00
|
|
|
m_pD->m_imageSize = Size;
|
2022-09-26 15:12:13 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|