using System.Collections.Generic; using System.Runtime.Serialization; namespace BabylonExport.Entities { [DataContract] public class BabylonShaderMaterial : BabylonMaterial { [DataMember] public string customType { get; private set; } [DataMember] public object shaderPath; [DataMember] public BabylonShaderOptions options; [DataMember] public Dictionary textures; [DataMember] public Dictionary textureArrays; [DataMember] public Dictionary floats; [DataMember] public Dictionary floatArrays; [DataMember] public Dictionary colors3; [DataMember] public Dictionary colors4; [DataMember] public Dictionary vectors2; [DataMember] public Dictionary vectors3; [DataMember] public Dictionary vectors4; [DataMember] public Dictionary matrices; [DataMember] public Dictionary matrices2x2; [DataMember] public Dictionary matrices3x3; [DataMember] public Dictionary vectors3Arrays; public BabylonShaderMaterial() { SetCustomType("BABYLON.ShaderMaterial"); shaderPath = null; options = new BabylonShaderOptions(); textures = new Dictionary(); textureArrays = new Dictionary(); floats = new Dictionary(); floatArrays = new Dictionary(); colors3 = new Dictionary(); colors4 = new Dictionary(); vectors2 = new Dictionary(); vectors3 = new Dictionary(); vectors4 = new Dictionary(); matrices = new Dictionary(); matrices2x2 = new Dictionary(); matrices3x3 = new Dictionary(); vectors3Arrays = new Dictionary(); } public void SetCustomType(string type) { customType = type; } } [DataContract] public class BabylonShaderOptions { [DataMember] public string[] attributes; [DataMember] public string[] uniforms; [DataMember] public bool needAlphaBlending; [DataMember] public bool needAlphaTesting; [DataMember] public string[] samplers; [DataMember] public string[] defines; } }