Fix crash when using different values in various math nodes in Visject
#3315
This commit is contained in:
@@ -230,7 +230,8 @@ void VisjectExecutor::ProcessGroupMath(Box* box, Node* node, Value& value)
|
||||
case VariantType::Double4:
|
||||
value = Double3(v1.AsDouble4()).Length();
|
||||
break;
|
||||
default: CRASH;
|
||||
default:
|
||||
value = 0.0f;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -265,7 +266,8 @@ void VisjectExecutor::ProcessGroupMath(Box* box, Node* node, Value& value)
|
||||
case VariantType::Double4:
|
||||
value = Double4(Double3::Normalize(Double3(v1.AsDouble3())), 0.0f);
|
||||
break;
|
||||
default: CRASH;
|
||||
default:
|
||||
value = 0.0f;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -290,13 +292,25 @@ void VisjectExecutor::ProcessGroupMath(Box* box, Node* node, Value& value)
|
||||
case VariantType::Double3:
|
||||
value = Double3::Cross(v1.AsDouble3(), v2.AsDouble3());
|
||||
break;
|
||||
default: CRASH;
|
||||
default:
|
||||
value = 0.0f;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 19:
|
||||
switch (v1.Type.Type)
|
||||
{
|
||||
case VariantType::Bool:
|
||||
case VariantType::Int16:
|
||||
case VariantType::Uint16:
|
||||
case VariantType::Int:
|
||||
case VariantType::Uint:
|
||||
case VariantType::Int64:
|
||||
case VariantType::Uint64:
|
||||
case VariantType::Float:
|
||||
case VariantType::Double:
|
||||
value = Math::Abs((float)v1 - (float)v2);
|
||||
break;
|
||||
case VariantType::Float2:
|
||||
value = Float2::Distance(v1.AsFloat2(), v2.AsFloat2());
|
||||
break;
|
||||
@@ -316,7 +330,8 @@ void VisjectExecutor::ProcessGroupMath(Box* box, Node* node, Value& value)
|
||||
case VariantType::Double4:
|
||||
value = Double3::Distance((Double3)v1, (Double3)v2);
|
||||
break;
|
||||
default: CRASH;
|
||||
default:
|
||||
value = 0.0f;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -342,7 +357,8 @@ void VisjectExecutor::ProcessGroupMath(Box* box, Node* node, Value& value)
|
||||
case VariantType::Double4:
|
||||
value = Double3::Dot((Double3)v1, (Double3)v2);
|
||||
break;
|
||||
default: CRASH;
|
||||
default:
|
||||
value = 0.0f;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -386,7 +402,8 @@ void VisjectExecutor::ProcessGroupMath(Box* box, Node* node, Value& value)
|
||||
case VariantType::Float4:
|
||||
value = Float4(v1.AsFloat4() - 2.0f * v2.AsFloat4() * Float3::Dot((Float3)v1, (Float3)v2));
|
||||
break;
|
||||
default: CRASH;
|
||||
default:
|
||||
value = 0.0f;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user