#include "ShaderApiReflectionSupport.hlsl"
namespace ShaderFunctionReflectionStructExample
{
struct VertexData
{
float3 position;
float3 normal;
float3 tangent;
};
///
/// SG.NodeReference.Struct.SetVertex.Example
/// Set Vertex
/// Vertex
/// Node Reference/Struct
/// Set Vertex
/// Reference, Struct
///
///
///
/// ObjectSpace
///
///
///
/// ObjectSpace
///
///
///
/// ObjectSpace
///
///
/// Vertex Data
/// ShaderFunctionReflectionStructExample
///
UNITY_EXPORT_REFLECTION
void SetVertex(float3 position, float3 normal, float3 tangent, out VertexData vertex)
{
vertex.position = position;
vertex.normal = normal;
vertex.tangent = tangent;
}
///
/// SG.NodeReference.Struct.GetVertex.Example
/// Get Vertex
/// Node Reference/Struct
/// Get Vertex
/// Reference, Struct
///
///
/// Vertex Data
/// ShaderFunctionReflectionStructExample
///
UNITY_EXPORT_REFLECTION
void GetVertex(VertexData vertex, out float3 position, out float3 normal, out float3 tangent)
{
position = vertex.position;
normal = vertex.normal;
tangent = vertex.tangent;
}
///
/// SG.NodeReference.Struct.PushVertex.Example
/// Push Vertex
/// Node Reference/Struct
/// Push Vertex
/// Reference, Struct
///
///
/// Vertex Data
/// ShaderFunctionReflectionStructExample
///
UNITY_EXPORT_REFLECTION
void Push(inout VertexData vertex, float amount)
{
vertex.position += vertex.normal * amount;
}
}