Fix regression in using per-component input fields in Visject nodes values editing
This commit is contained in:
@@ -647,8 +647,8 @@ namespace FlaxEditor.Surface.Archetypes
|
|||||||
// Axis X
|
// Axis X
|
||||||
NodeElementArchetype.Factory.Input(3, "X", true, typeof(float), 4),
|
NodeElementArchetype.Factory.Input(3, "X", true, typeof(float), 4),
|
||||||
NodeElementArchetype.Factory.Text(30, 3 * Surface.Constants.LayoutOffsetY + 2, "(min: max: )"),
|
NodeElementArchetype.Factory.Text(30, 3 * Surface.Constants.LayoutOffsetY + 2, "(min: max: )"),
|
||||||
NodeElementArchetype.Factory.Float(60, 3 * Surface.Constants.LayoutOffsetY + 2, 0, 0),
|
NodeElementArchetype.Factory.Vector_X(60, 3 * Surface.Constants.LayoutOffsetY + 2, 0),
|
||||||
NodeElementArchetype.Factory.Float(145, 3 * Surface.Constants.LayoutOffsetY + 2, 0, 1),
|
NodeElementArchetype.Factory.Vector_Y(145, 3 * Surface.Constants.LayoutOffsetY + 2, 0),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new NodeArchetype
|
new NodeArchetype
|
||||||
@@ -683,14 +683,14 @@ namespace FlaxEditor.Surface.Archetypes
|
|||||||
// Axis X
|
// Axis X
|
||||||
NodeElementArchetype.Factory.Input(3, "X", true, typeof(float), 4),
|
NodeElementArchetype.Factory.Input(3, "X", true, typeof(float), 4),
|
||||||
NodeElementArchetype.Factory.Text(30, 3 * Surface.Constants.LayoutOffsetY + 2, "(min: max: )"),
|
NodeElementArchetype.Factory.Text(30, 3 * Surface.Constants.LayoutOffsetY + 2, "(min: max: )"),
|
||||||
NodeElementArchetype.Factory.Float(60, 3 * Surface.Constants.LayoutOffsetY + 2, 0, 0),
|
NodeElementArchetype.Factory.Vector_X(60, 3 * Surface.Constants.LayoutOffsetY + 2, 0),
|
||||||
NodeElementArchetype.Factory.Float(145, 3 * Surface.Constants.LayoutOffsetY + 2, 0, 1),
|
NodeElementArchetype.Factory.Vector_Y(145, 3 * Surface.Constants.LayoutOffsetY + 2, 0),
|
||||||
|
|
||||||
// Axis Y
|
// Axis Y
|
||||||
NodeElementArchetype.Factory.Input(4, "Y", true, typeof(float), 5),
|
NodeElementArchetype.Factory.Input(4, "Y", true, typeof(float), 5),
|
||||||
NodeElementArchetype.Factory.Text(30, 4 * Surface.Constants.LayoutOffsetY + 2, "(min: max: )"),
|
NodeElementArchetype.Factory.Text(30, 4 * Surface.Constants.LayoutOffsetY + 2, "(min: max: )"),
|
||||||
NodeElementArchetype.Factory.Float(60, 4 * Surface.Constants.LayoutOffsetY + 2, 0, 2),
|
NodeElementArchetype.Factory.Vector_Z(60, 4 * Surface.Constants.LayoutOffsetY + 2, 0),
|
||||||
NodeElementArchetype.Factory.Float(145, 4 * Surface.Constants.LayoutOffsetY + 2, 0, 3),
|
NodeElementArchetype.Factory.Vector_W(145, 4 * Surface.Constants.LayoutOffsetY + 2, 0),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new NodeArchetype
|
new NodeArchetype
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
|
|
||||||
float result;
|
float result;
|
||||||
var value = customValue ?? parentNode.Values[arch.ValueIndex];
|
var value = customValue ?? parentNode.Values[arch.ValueIndex];
|
||||||
|
var component = arch.BoxID; // Reuse existing field
|
||||||
|
|
||||||
// Note: this value box may edit on component of the vector like Vector3.Y, BoxID from Archetype tells which component pick
|
// Note: this value box may edit on component of the vector like Vector3.Y, BoxID from Archetype tells which component pick
|
||||||
|
|
||||||
@@ -92,39 +93,39 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
}
|
}
|
||||||
else if (value is Vector2 asVector2)
|
else if (value is Vector2 asVector2)
|
||||||
{
|
{
|
||||||
result = (float)(arch.BoxID == 0 ? asVector2.X : asVector2.Y);
|
result = (float)(component == 0 ? asVector2.X : asVector2.Y);
|
||||||
}
|
}
|
||||||
else if (value is Vector3 asVector3)
|
else if (value is Vector3 asVector3)
|
||||||
{
|
{
|
||||||
result = (float)(arch.BoxID == 0 ? asVector3.X : arch.BoxID == 1 ? asVector3.Y : asVector3.Z);
|
result = (float)(component == 0 ? asVector3.X : component == 1 ? asVector3.Y : asVector3.Z);
|
||||||
}
|
}
|
||||||
else if (value is Vector4 asVector4)
|
else if (value is Vector4 asVector4)
|
||||||
{
|
{
|
||||||
result = (float)(arch.BoxID == 0 ? asVector4.X : arch.BoxID == 1 ? asVector4.Y : arch.BoxID == 2 ? asVector4.Z : asVector4.W);
|
result = (float)(component == 0 ? asVector4.X : component == 1 ? asVector4.Y : component == 2 ? asVector4.Z : asVector4.W);
|
||||||
}
|
}
|
||||||
else if (value is Float2 asFloat2)
|
else if (value is Float2 asFloat2)
|
||||||
{
|
{
|
||||||
result = (arch.BoxID == 0 ? asFloat2.X : asFloat2.Y);
|
result = (component == 0 ? asFloat2.X : asFloat2.Y);
|
||||||
}
|
}
|
||||||
else if (value is Float3 asFloat3)
|
else if (value is Float3 asFloat3)
|
||||||
{
|
{
|
||||||
result = (arch.BoxID == 0 ? asFloat3.X : arch.BoxID == 1 ? asFloat3.Y : asFloat3.Z);
|
result = (component == 0 ? asFloat3.X : component == 1 ? asFloat3.Y : asFloat3.Z);
|
||||||
}
|
}
|
||||||
else if (value is Float4 asFloat4)
|
else if (value is Float4 asFloat4)
|
||||||
{
|
{
|
||||||
result = (arch.BoxID == 0 ? asFloat4.X : arch.BoxID == 1 ? asFloat4.Y : arch.BoxID == 2 ? asFloat4.Z : asFloat4.W);
|
result = (component == 0 ? asFloat4.X : component == 1 ? asFloat4.Y : component == 2 ? asFloat4.Z : asFloat4.W);
|
||||||
}
|
}
|
||||||
else if (value is Double2 asDouble2)
|
else if (value is Double2 asDouble2)
|
||||||
{
|
{
|
||||||
result = (float)(arch.BoxID == 0 ? asDouble2.X : asDouble2.Y);
|
result = (float)(component == 0 ? asDouble2.X : asDouble2.Y);
|
||||||
}
|
}
|
||||||
else if (value is Double3 asDouble3)
|
else if (value is Double3 asDouble3)
|
||||||
{
|
{
|
||||||
result = (float)(arch.BoxID == 0 ? asDouble3.X : arch.BoxID == 1 ? asDouble3.Y : asDouble3.Z);
|
result = (float)(component == 0 ? asDouble3.X : component == 1 ? asDouble3.Y : asDouble3.Z);
|
||||||
}
|
}
|
||||||
else if (value is Double4 asDouble4)
|
else if (value is Double4 asDouble4)
|
||||||
{
|
{
|
||||||
result = (float)(arch.BoxID == 0 ? asDouble4.X : arch.BoxID == 1 ? asDouble4.Y : arch.BoxID == 2 ? asDouble4.Z : asDouble4.W);
|
result = (float)(component == 0 ? asDouble4.X : component == 1 ? asDouble4.Y : component == 2 ? asDouble4.Z : asDouble4.W);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -146,6 +147,7 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
var value = parentNode.Values[arch.ValueIndex];
|
var value = parentNode.Values[arch.ValueIndex];
|
||||||
|
var component = arch.BoxID; // Reuse existing field
|
||||||
|
|
||||||
if (value is int)
|
if (value is int)
|
||||||
{
|
{
|
||||||
@@ -159,14 +161,14 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
{
|
{
|
||||||
value = (double)toSet;
|
value = (double)toSet;
|
||||||
}
|
}
|
||||||
else if (parentNode.GroupArchetype.GroupID != 2)
|
else if (component == -1)
|
||||||
{
|
{
|
||||||
// Per-component editing is used only by nodes from Constant group, otherwise use float
|
// Per-component editing is used only by nodes from Constant group, otherwise use float
|
||||||
value = toSet;
|
value = toSet;
|
||||||
}
|
}
|
||||||
else if (value is Vector2 asVector2)
|
else if (value is Vector2 asVector2)
|
||||||
{
|
{
|
||||||
if (arch.BoxID == 0)
|
if (component == 0)
|
||||||
asVector2.X = toSet;
|
asVector2.X = toSet;
|
||||||
else
|
else
|
||||||
asVector2.Y = toSet;
|
asVector2.Y = toSet;
|
||||||
@@ -174,9 +176,9 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
}
|
}
|
||||||
else if (value is Vector3 asVector3)
|
else if (value is Vector3 asVector3)
|
||||||
{
|
{
|
||||||
if (arch.BoxID == 0)
|
if (component == 0)
|
||||||
asVector3.X = toSet;
|
asVector3.X = toSet;
|
||||||
else if (arch.BoxID == 1)
|
else if (component == 1)
|
||||||
asVector3.Y = toSet;
|
asVector3.Y = toSet;
|
||||||
else
|
else
|
||||||
asVector3.Z = toSet;
|
asVector3.Z = toSet;
|
||||||
@@ -184,11 +186,11 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
}
|
}
|
||||||
else if (value is Vector4 asVector4)
|
else if (value is Vector4 asVector4)
|
||||||
{
|
{
|
||||||
if (arch.BoxID == 0)
|
if (component == 0)
|
||||||
asVector4.X = toSet;
|
asVector4.X = toSet;
|
||||||
else if (arch.BoxID == 1)
|
else if (component == 1)
|
||||||
asVector4.Y = toSet;
|
asVector4.Y = toSet;
|
||||||
else if (arch.BoxID == 2)
|
else if (component == 2)
|
||||||
asVector4.Z = toSet;
|
asVector4.Z = toSet;
|
||||||
else
|
else
|
||||||
asVector4.W = toSet;
|
asVector4.W = toSet;
|
||||||
@@ -196,7 +198,7 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
}
|
}
|
||||||
else if (value is Float2 asFloat2)
|
else if (value is Float2 asFloat2)
|
||||||
{
|
{
|
||||||
if (arch.BoxID == 0)
|
if (component == 0)
|
||||||
asFloat2.X = toSet;
|
asFloat2.X = toSet;
|
||||||
else
|
else
|
||||||
asFloat2.Y = toSet;
|
asFloat2.Y = toSet;
|
||||||
@@ -204,9 +206,9 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
}
|
}
|
||||||
else if (value is Float3 asFloat3)
|
else if (value is Float3 asFloat3)
|
||||||
{
|
{
|
||||||
if (arch.BoxID == 0)
|
if (component == 0)
|
||||||
asFloat3.X = toSet;
|
asFloat3.X = toSet;
|
||||||
else if (arch.BoxID == 1)
|
else if (component == 1)
|
||||||
asFloat3.Y = toSet;
|
asFloat3.Y = toSet;
|
||||||
else
|
else
|
||||||
asFloat3.Z = toSet;
|
asFloat3.Z = toSet;
|
||||||
@@ -214,11 +216,11 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
}
|
}
|
||||||
else if (value is Float4 asFloat4)
|
else if (value is Float4 asFloat4)
|
||||||
{
|
{
|
||||||
if (arch.BoxID == 0)
|
if (component == 0)
|
||||||
asFloat4.X = toSet;
|
asFloat4.X = toSet;
|
||||||
else if (arch.BoxID == 1)
|
else if (component == 1)
|
||||||
asFloat4.Y = toSet;
|
asFloat4.Y = toSet;
|
||||||
else if (arch.BoxID == 2)
|
else if (component == 2)
|
||||||
asFloat4.Z = toSet;
|
asFloat4.Z = toSet;
|
||||||
else
|
else
|
||||||
asFloat4.W = toSet;
|
asFloat4.W = toSet;
|
||||||
@@ -226,7 +228,7 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
}
|
}
|
||||||
else if (value is Double2 asDouble2)
|
else if (value is Double2 asDouble2)
|
||||||
{
|
{
|
||||||
if (arch.BoxID == 0)
|
if (component == 0)
|
||||||
asDouble2.X = toSet;
|
asDouble2.X = toSet;
|
||||||
else
|
else
|
||||||
asDouble2.Y = toSet;
|
asDouble2.Y = toSet;
|
||||||
@@ -234,9 +236,9 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
}
|
}
|
||||||
else if (value is Double3 asDouble3)
|
else if (value is Double3 asDouble3)
|
||||||
{
|
{
|
||||||
if (arch.BoxID == 0)
|
if (component == 0)
|
||||||
asDouble3.X = toSet;
|
asDouble3.X = toSet;
|
||||||
else if (arch.BoxID == 1)
|
else if (component == 1)
|
||||||
asDouble3.Y = toSet;
|
asDouble3.Y = toSet;
|
||||||
else
|
else
|
||||||
asDouble3.Z = toSet;
|
asDouble3.Z = toSet;
|
||||||
@@ -244,11 +246,11 @@ namespace FlaxEditor.Surface.Elements
|
|||||||
}
|
}
|
||||||
else if (value is Double4 asDouble4)
|
else if (value is Double4 asDouble4)
|
||||||
{
|
{
|
||||||
if (arch.BoxID == 0)
|
if (component == 0)
|
||||||
asDouble4.X = toSet;
|
asDouble4.X = toSet;
|
||||||
else if (arch.BoxID == 1)
|
else if (component == 1)
|
||||||
asDouble4.Y = toSet;
|
asDouble4.Y = toSet;
|
||||||
else if (arch.BoxID == 2)
|
else if (component == 2)
|
||||||
asDouble4.Z = toSet;
|
asDouble4.Z = toSet;
|
||||||
else
|
else
|
||||||
asDouble4.W = toSet;
|
asDouble4.W = toSet;
|
||||||
|
|||||||
Reference in New Issue
Block a user