#ifndef VISUAL_SHADER_NODES_H
#define VISUAL_SHADER_NODES_H
#include "scene/resources/compressed_texture.h"
#include "scene/resources/curve_texture.h"
#include "scene/resources/visual_shader.h"
class Cubemap;
class Texture2DArray;
class VisualShaderNodeVectorBase : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeVectorBase::OpType)
class VisualShaderNodeConstant : public VisualShaderNode { … };
class VisualShaderNodeFloatConstant : public VisualShaderNodeConstant { … };
class VisualShaderNodeIntConstant : public VisualShaderNodeConstant { … };
class VisualShaderNodeUIntConstant : public VisualShaderNodeConstant { … };
class VisualShaderNodeBooleanConstant : public VisualShaderNodeConstant { … };
class VisualShaderNodeColorConstant : public VisualShaderNodeConstant { … };
class VisualShaderNodeVec2Constant : public VisualShaderNodeConstant { … };
class VisualShaderNodeVec3Constant : public VisualShaderNodeConstant { … };
class VisualShaderNodeVec4Constant : public VisualShaderNodeConstant { … };
class VisualShaderNodeTransformConstant : public VisualShaderNodeConstant { … };
class VisualShaderNodeTexture : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeTexture::TextureType)
VARIANT_ENUM_CAST(VisualShaderNodeTexture::Source)
class VisualShaderNodeCurveTexture : public VisualShaderNodeResizableBase { … };
class VisualShaderNodeCurveXYZTexture : public VisualShaderNodeResizableBase { … };
class VisualShaderNodeSample3D : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeSample3D::Source)
class VisualShaderNodeTexture2DArray : public VisualShaderNodeSample3D { … };
class VisualShaderNodeTexture3D : public VisualShaderNodeSample3D { … };
class VisualShaderNodeCubemap : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeCubemap::TextureType)
VARIANT_ENUM_CAST(VisualShaderNodeCubemap::Source)
class VisualShaderNodeLinearSceneDepth : public VisualShaderNode { … };
class VisualShaderNodeWorldPositionFromDepth : public VisualShaderNode { … };
class VisualShaderNodeScreenNormalWorldSpace : public VisualShaderNode { … };
class VisualShaderNodeFloatOp : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeFloatOp::Operator)
class VisualShaderNodeIntOp : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeIntOp::Operator)
class VisualShaderNodeUIntOp : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeUIntOp::Operator)
class VisualShaderNodeVectorOp : public VisualShaderNodeVectorBase { … };
VARIANT_ENUM_CAST(VisualShaderNodeVectorOp::Operator)
class VisualShaderNodeColorOp : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeColorOp::Operator)
class VisualShaderNodeTransformOp : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeTransformOp::Operator)
class VisualShaderNodeTransformVecMult : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeTransformVecMult::Operator)
class VisualShaderNodeFloatFunc : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeFloatFunc::Function)
class VisualShaderNodeIntFunc : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeIntFunc::Function)
class VisualShaderNodeUIntFunc : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeUIntFunc::Function)
class VisualShaderNodeVectorFunc : public VisualShaderNodeVectorBase { … };
VARIANT_ENUM_CAST(VisualShaderNodeVectorFunc::Function)
class VisualShaderNodeColorFunc : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeColorFunc::Function)
class VisualShaderNodeTransformFunc : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeTransformFunc::Function)
class VisualShaderNodeUVFunc : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeUVFunc::Function)
class VisualShaderNodeUVPolarCoord : public VisualShaderNode { … };
class VisualShaderNodeDotProduct : public VisualShaderNode { … };
class VisualShaderNodeVectorLen : public VisualShaderNodeVectorBase { … };
class VisualShaderNodeDeterminant : public VisualShaderNode { … };
class VisualShaderNodeClamp : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeClamp::OpType)
class VisualShaderNodeDerivativeFunc : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeDerivativeFunc::OpType)
VARIANT_ENUM_CAST(VisualShaderNodeDerivativeFunc::Function)
VARIANT_ENUM_CAST(VisualShaderNodeDerivativeFunc::Precision)
class VisualShaderNodeFaceForward : public VisualShaderNodeVectorBase { … };
class VisualShaderNodeOuterProduct : public VisualShaderNode { … };
class VisualShaderNodeStep : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeStep::OpType)
class VisualShaderNodeSmoothStep : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeSmoothStep::OpType)
class VisualShaderNodeVectorDistance : public VisualShaderNodeVectorBase { … };
class VisualShaderNodeVectorRefract : public VisualShaderNodeVectorBase { … };
class VisualShaderNodeMix : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeMix::OpType)
class VisualShaderNodeVectorCompose : public VisualShaderNodeVectorBase { … };
class VisualShaderNodeTransformCompose : public VisualShaderNode { … };
class VisualShaderNodeVectorDecompose : public VisualShaderNodeVectorBase { … };
class VisualShaderNodeTransformDecompose : public VisualShaderNode { … };
class VisualShaderNodeFloatParameter : public VisualShaderNodeParameter { … };
VARIANT_ENUM_CAST(VisualShaderNodeFloatParameter::Hint)
class VisualShaderNodeIntParameter : public VisualShaderNodeParameter { … };
VARIANT_ENUM_CAST(VisualShaderNodeIntParameter::Hint)
class VisualShaderNodeUIntParameter : public VisualShaderNodeParameter { … };
class VisualShaderNodeBooleanParameter : public VisualShaderNodeParameter { … };
class VisualShaderNodeColorParameter : public VisualShaderNodeParameter { … };
class VisualShaderNodeVec2Parameter : public VisualShaderNodeParameter { … };
class VisualShaderNodeVec3Parameter : public VisualShaderNodeParameter { … };
class VisualShaderNodeVec4Parameter : public VisualShaderNodeParameter { … };
class VisualShaderNodeTransformParameter : public VisualShaderNodeParameter { … };
class VisualShaderNodeTextureParameter : public VisualShaderNodeParameter { … };
VARIANT_ENUM_CAST(VisualShaderNodeTextureParameter::TextureType)
VARIANT_ENUM_CAST(VisualShaderNodeTextureParameter::ColorDefault)
VARIANT_ENUM_CAST(VisualShaderNodeTextureParameter::TextureFilter)
VARIANT_ENUM_CAST(VisualShaderNodeTextureParameter::TextureRepeat)
VARIANT_ENUM_CAST(VisualShaderNodeTextureParameter::TextureSource)
class VisualShaderNodeTexture2DParameter : public VisualShaderNodeTextureParameter { … };
class VisualShaderNodeTextureParameterTriplanar : public VisualShaderNodeTextureParameter { … };
class VisualShaderNodeTexture2DArrayParameter : public VisualShaderNodeTextureParameter { … };
class VisualShaderNodeTexture3DParameter : public VisualShaderNodeTextureParameter { … };
class VisualShaderNodeCubemapParameter : public VisualShaderNodeTextureParameter { … };
class VisualShaderNodeIf : public VisualShaderNode { … };
class VisualShaderNodeSwitch : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeSwitch::OpType)
class VisualShaderNodeFresnel : public VisualShaderNode { … };
class VisualShaderNodeIs : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeIs::Function)
class VisualShaderNodeCompare : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeCompare::ComparisonType)
VARIANT_ENUM_CAST(VisualShaderNodeCompare::Function)
VARIANT_ENUM_CAST(VisualShaderNodeCompare::Condition)
class VisualShaderNodeMultiplyAdd : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeMultiplyAdd::OpType)
class VisualShaderNodeBillboard : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeBillboard::BillboardType)
class VisualShaderNodeDistanceFade : public VisualShaderNode { … };
class VisualShaderNodeProximityFade : public VisualShaderNode { … };
class VisualShaderNodeRandomRange : public VisualShaderNode { … };
class VisualShaderNodeRemap : public VisualShaderNode { … };
VARIANT_ENUM_CAST(VisualShaderNodeRemap::OpType)
class VisualShaderNodeRotationByAxis : public VisualShaderNode { … };
class VisualShaderNodeReroute : public VisualShaderNode { … };
#endif