@@ -446,16 +446,16 @@ void MaterialGenerator::ProcessGroupTextures(Box* box, Node* node, Value& value)
|
||||
switch (box->ID)
|
||||
{
|
||||
case 2:
|
||||
value = Value(VariantType::Float, value.Value + _subs[0]);
|
||||
value = value.GetX();
|
||||
break;
|
||||
case 3:
|
||||
value = Value(VariantType::Float, value.Value + _subs[1]);
|
||||
value = value.GetY();
|
||||
break;
|
||||
case 4:
|
||||
value = Value(VariantType::Float, value.Value + _subs[2]);
|
||||
value = value.GetZ();
|
||||
break;
|
||||
case 5:
|
||||
value = Value(VariantType::Float, value.Value + _subs[3]);
|
||||
value = value.GetW();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -271,6 +271,48 @@ ShaderGraphValue ShaderGraphValue::InitForOne(VariantType::Types type)
|
||||
return ShaderGraphValue(type, String(v));
|
||||
}
|
||||
|
||||
ShaderGraphValue ShaderGraphValue::GetY() const
|
||||
{
|
||||
switch (Type)
|
||||
{
|
||||
case VariantType::Float2:
|
||||
case VariantType::Float3:
|
||||
case VariantType::Float4:
|
||||
case VariantType::Double2:
|
||||
case VariantType::Double3:
|
||||
case VariantType::Double4:
|
||||
return ShaderGraphValue(VariantType::Types::Float, Value + _subs[1]);
|
||||
default:
|
||||
return Zero;
|
||||
}
|
||||
}
|
||||
|
||||
ShaderGraphValue ShaderGraphValue::GetZ() const
|
||||
{
|
||||
switch (Type)
|
||||
{
|
||||
case VariantType::Float3:
|
||||
case VariantType::Float4:
|
||||
case VariantType::Double3:
|
||||
case VariantType::Double4:
|
||||
return ShaderGraphValue(VariantType::Types::Float, Value + _subs[2]);
|
||||
default:
|
||||
return Zero;
|
||||
}
|
||||
}
|
||||
|
||||
ShaderGraphValue ShaderGraphValue::GetW() const
|
||||
{
|
||||
switch (Type)
|
||||
{
|
||||
case VariantType::Float4:
|
||||
case VariantType::Double4:
|
||||
return ShaderGraphValue(VariantType::Types::Float, Value + _subs[3]);
|
||||
default:
|
||||
return One;
|
||||
}
|
||||
}
|
||||
|
||||
ShaderGraphValue ShaderGraphValue::Cast(const ShaderGraphValue& v, VariantType::Types to)
|
||||
{
|
||||
// If they are the same types or input value is empty, then just return value
|
||||
|
||||
@@ -318,28 +318,19 @@ public:
|
||||
/// Gets the Y component of the value. Valid only for vector types.
|
||||
/// </summary>
|
||||
/// <returns>The Y component.</returns>
|
||||
ShaderGraphValue GetY() const
|
||||
{
|
||||
return ShaderGraphValue(VariantType::Types::Float, Value + _subs[1]);
|
||||
}
|
||||
ShaderGraphValue GetY() const;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the Z component of the value. Valid only for vector types.
|
||||
/// </summary>
|
||||
/// <returns>The Z component.</returns>
|
||||
ShaderGraphValue GetZ() const
|
||||
{
|
||||
return ShaderGraphValue(VariantType::Types::Float, Value + _subs[2]);
|
||||
}
|
||||
ShaderGraphValue GetZ() const;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the W component of the value. Valid only for vector types.
|
||||
/// </summary>
|
||||
/// <returns>The W component.</returns>
|
||||
ShaderGraphValue GetW() const
|
||||
{
|
||||
return ShaderGraphValue(VariantType::Types::Float, Value + _subs[3]);
|
||||
}
|
||||
ShaderGraphValue GetW() const;
|
||||
|
||||
public:
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user