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() { this.customType = "BABYLON.ShaderMaterial"; this.shaderPath = null; this.options = new BabylonShaderOptions(); this.textures = new Dictionary(); this.textureArrays = new Dictionary(); this.floats = new Dictionary(); this.floatArrays = new Dictionary(); this.colors3 = new Dictionary(); this.colors4 = new Dictionary(); this.vectors2 = new Dictionary(); this.vectors3 = new Dictionary(); this.vectors4 = new Dictionary(); this.matrices = new Dictionary(); this.matrices2x2 = new Dictionary(); this.matrices3x3 = new Dictionary(); this.vectors3Arrays = new Dictionary(); } } [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; } }