130 lines
3.8 KiB
C
130 lines
3.8 KiB
C
|
// Copyright 2020 Phyronnaz
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "CoreMinimal.h"
|
||
|
#include "VoxelNodeHelper.h"
|
||
|
#include "VoxelNodeHelperMacros.h"
|
||
|
#include "VoxelGraphErrorReporter.h"
|
||
|
#include "VoxelCoordinatesNodes.generated.h"
|
||
|
|
||
|
UCLASS(Abstract, Category = "Coordinates")
|
||
|
class VOXELGRAPH_API UVoxelCoordinateNode : public UVoxelNodeWithDependencies
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
|
||
|
public:
|
||
|
UVoxelCoordinateNode();
|
||
|
};
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
// Return the current X
|
||
|
UCLASS(DisplayName = "X", Category = "Coordinates")
|
||
|
class VOXELGRAPH_API UVoxelNode_XF : public UVoxelCoordinateNode
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_XF();
|
||
|
virtual uint8 GetNodeDependencies() const override;
|
||
|
};
|
||
|
|
||
|
// Return the current Y
|
||
|
UCLASS(DisplayName = "Y", Category = "Coordinates")
|
||
|
class VOXELGRAPH_API UVoxelNode_YF : public UVoxelCoordinateNode
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_YF();
|
||
|
virtual uint8 GetNodeDependencies() const override;
|
||
|
};
|
||
|
|
||
|
// Return the current Z
|
||
|
UCLASS(DisplayName = "Z", Category = "Coordinates")
|
||
|
class VOXELGRAPH_API UVoxelNode_ZF : public UVoxelCoordinateNode
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_ZF();
|
||
|
virtual uint8 GetNodeDependencies() const override;
|
||
|
};
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
// Return the current X in global space, before the transform is applied to it. Same as X if not a graph asset
|
||
|
UCLASS(DisplayName = "Global X", Category = "Coordinates")
|
||
|
class VOXELGRAPH_API UVoxelNode_GlobalX : public UVoxelCoordinateNode
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_GlobalX();
|
||
|
virtual uint8 GetNodeDependencies() const override;
|
||
|
};
|
||
|
|
||
|
// Return the current Y in global space, before the transform is applied to it. Same as Y if not a graph asset
|
||
|
UCLASS(DisplayName = "Global Y", Category = "Coordinates")
|
||
|
class VOXELGRAPH_API UVoxelNode_GlobalY : public UVoxelCoordinateNode
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_GlobalY();
|
||
|
virtual uint8 GetNodeDependencies() const override;
|
||
|
};
|
||
|
|
||
|
// Return the current Z in global space, before the transform is applied to it. Same as Z if not a graph asset
|
||
|
UCLASS(DisplayName = "Global Z", Category = "Coordinates")
|
||
|
class VOXELGRAPH_API UVoxelNode_GlobalZ : public UVoxelCoordinateNode
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_GlobalZ();
|
||
|
virtual uint8 GetNodeDependencies() const override;
|
||
|
};
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
// Transform coordinates from local voxel space to global voxel space. Used for graph assets
|
||
|
UCLASS(DisplayName = "Local To Global", Category = "Coordinates")
|
||
|
class VOXELGRAPH_API UVoxelNode_LocalToGlobal : public UVoxelNodeWithContext
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_LocalToGlobal();
|
||
|
};
|
||
|
|
||
|
// Transform coordinates from global voxel space to local voxel space. Used for graph assets
|
||
|
UCLASS(DisplayName = "Global To Local", Category = "Coordinates")
|
||
|
class VOXELGRAPH_API UVoxelNode_GlobalToLocal : public UVoxelNodeWithContext
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_GlobalToLocal();
|
||
|
};
|
||
|
|
||
|
// Transform vector from local voxel space to global voxel space. Used for graph assets
|
||
|
UCLASS(DisplayName = "Transform Vector", Category = "Coordinates")
|
||
|
class VOXELGRAPH_API UVoxelNode_TransformVector : public UVoxelNodeWithContext
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_TransformVector();
|
||
|
};
|
||
|
|
||
|
// Transform vector from global voxel space to local voxel space. Used for graph assets
|
||
|
UCLASS(DisplayName = "Inverse Transform Vector", Category = "Coordinates")
|
||
|
class VOXELGRAPH_API UVoxelNode_InverseTransformVector : public UVoxelNodeWithContext
|
||
|
{
|
||
|
GENERATED_BODY()
|
||
|
GENERATED_VOXELNODE_BODY()
|
||
|
|
||
|
UVoxelNode_InverseTransformVector();
|
||
|
};
|