Beispiel #1
0
 private void ReadSRT2D(FileReader reader)
 {
     ValueSrt2D             = new Srt2D();
     ValueSrt2D.Scaling     = reader.ReadVec2SY();
     ValueSrt2D.Rotation    = reader.ReadSingle();
     ValueSrt2D.Translation = reader.ReadVec2SY();
 }
Beispiel #2
0
        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;
 }
Beispiel #4
0
 /// <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;
 }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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}  ");
 }
Beispiel #8
0
        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;
            }
        }