private void ReadSRT2D(FileReader reader) { ValueSrt2D = new Srt2D(); ValueSrt2D.Scaling = reader.ReadVec2SY(); ValueSrt2D.Rotation = reader.ReadSingle(); ValueSrt2D.Translation = reader.ReadVec2SY(); }
public static Srt2D SetSrt2D(XmlNode node) { Srt2D srt2D = new Srt2D(); foreach (XmlAttribute att in node.Attributes) { if (att.Name == "Scaling") { string[] values = GetSrtValues(att.Value); float.TryParse(values[0], out X); float.TryParse(values[1], out Y); srt2D.Scaling = new Syroot.Maths.Vector2F(X, Y); } if (att.Name == "Rotation") { string[] values = GetSrtValues(att.Value); float.TryParse(values[0], out X); srt2D.Rotation = X; } if (att.Name == "Translation") { string[] values = GetSrtValues(att.Value); float.TryParse(values[0], out X); float.TryParse(values[1], out Y); srt2D.Translation = new Syroot.Maths.Vector2F(X, Y); } } return(srt2D); }
public void LoadValues(Srt2D srt2D) { scaleUDX.Value = (decimal)srt2D.Scaling.X; scaleUDY.Value = (decimal)srt2D.Scaling.Y; rotUDX.Value = (decimal)srt2D.Rotation; transUDX.Value = (decimal)srt2D.Translation.X; transUDY.Value = (decimal)srt2D.Translation.Y; }
/// <summary> /// /// </summary> /// <param name="reader"></param> private static void ReadSRT2D(BinaryDataReader reader) { ValueSrt2D = new Srt2D(); Syroot.Maths.Vector2F scaleVector2F = new Syroot.Maths.Vector2F(reader.ReadSingle(), reader.ReadSingle()); ValueSrt2D.Scaling = scaleVector2F; ValueSrt2D.Rotation = reader.ReadSingle(); Syroot.Maths.Vector2F transVector2F = new Syroot.Maths.Vector2F(reader.ReadSingle(), reader.ReadSingle()); ValueSrt2D.Translation = transVector2F; }
private static void WriteSrt2DParamNode(XmlDocument doc, Srt2D srt2D, string Name, XmlNode node) { XmlNode ParamNode = doc.CreateElement(Name); AddAttribute(doc, "Scaling", srt2D.Scaling.ToString(), ParamNode); AddAttribute(doc, "Rotation", srt2D.Rotation.ToString(), ParamNode); AddAttribute(doc, "Translation", srt2D.Translation.ToString(), ParamNode); AddAttribute(doc, "Format", ShaderParamType.Srt2D.ToString(), ParamNode); node.AppendChild(ParamNode); }
public TexSrtPanel2D(Srt2D TexSrt, BfresShaderParam param) { InitializeComponent(); activeParam = param; stTextBox1.Bind(activeParam, "Name"); scaXUD.DataType = typeof(float); scaYUD.DataType = typeof(float); rotXUD.DataType = typeof(float); transXUD.DataType = typeof(float); transYUD.DataType = typeof(float); scaXUD.Value = TexSrt.Scaling.X; scaYUD.Value = TexSrt.Scaling.Y; rotXUD.Value = TexSrt.Rotation; transXUD.Value = TexSrt.Translation.X; transYUD.Value = TexSrt.Translation.Y; }
private string TexSrtToString(Srt2D val) { return($"{val.Scaling.X} {val.Scaling.Y} {val.Rotation} {val.Translation.X} {val.Translation.Y} "); }
static void LoadParamUI(ShaderParam param, string label = "", bool drag = false) { switch (param.Type) { case ShaderParamType.Bool: { ImGuiHelper.InputFromBoolean(label, param, "DataValue"); } break; case ShaderParamType.Int: { ImGuiHelper.InputFromInt(label, param, "DataValue", 1, drag); } break; case ShaderParamType.UInt: { ImGuiHelper.InputFromUint(label, param, "DataValue", 1, drag); } break; case ShaderParamType.Float: { ImGuiHelper.InputFromFloat(label, param, "DataValue", drag); } break; case ShaderParamType.Float2: { ImGuiHelper.InputFloatsFromVector2(label, param, "DataValue", drag); } break; case ShaderParamType.Float3: { if (param.Name.Contains("color") || param.Name.Contains("Color")) { ImGuiHelper.InputFloatsFromColor3(label, param, "DataValue"); } else { ImGuiHelper.InputFloatsFromVector3(label, param, "DataValue", drag); } } break; case ShaderParamType.Float4: { if (param.Name.Contains("color") || param.Name.Contains("Color")) { ImGuiHelper.InputFloatsFromColor4(label, param, "DataValue", ImGuiColorEditFlags.AlphaBar | ImGuiColorEditFlags.AlphaPreviewHalf); } else { ImGuiHelper.InputFloatsFromVector4(label, param, "DataValue", drag); } } break; case ShaderParamType.Srt2D: { Srt2D value = (Srt2D)param.DataValue; var pos = new Vector2(value.Translation.X, value.Translation.Y); var scale = new Vector2(value.Scaling.X, value.Scaling.Y); var rot = value.Rotation; bool edited0 = ImGui.DragFloat2("Scale", ref scale); bool edited1 = ImGui.DragFloat("Rotate", ref rot, 0.1f); bool edited2 = ImGui.DragFloat2("Translate", ref pos); if (edited0 || edited1 || edited2) { param.DataValue = new Srt2D() { Scaling = new Syroot.Maths.Vector2F(scale.X, scale.Y), Translation = new Syroot.Maths.Vector2F(pos.X, pos.Y), Rotation = rot, }; } } break; case ShaderParamType.TexSrt: case ShaderParamType.TexSrtEx: { TexSrt value = (TexSrt)param.DataValue; bool edited3 = ImGuiHelper.ComboFromEnum <TexSrtMode>("Mode", value, "Mode"); var pos = new Vector2(value.Translation.X, value.Translation.Y); var scale = new Vector2(value.Scaling.X, value.Scaling.Y); var rot = value.Rotation; bool edited0 = ImGui.DragFloat2("Scale", ref scale); bool edited1 = ImGui.DragFloat("Rotate", ref rot, 0.1f); bool edited2 = ImGui.DragFloat2("Translate", ref pos); if (edited0 || edited1 || edited2 || edited3) { param.DataValue = new TexSrt() { Mode = value.Mode, Scaling = new Syroot.Maths.Vector2F(scale.X, scale.Y), Translation = new Syroot.Maths.Vector2F(pos.X, pos.Y), Rotation = rot, }; } } break; } }