internal void WriteTo(BinaryWriter writer, W3dShaderMaterialPropertyType propertyType) { switch (propertyType) { case W3dShaderMaterialPropertyType.Float: writer.Write(Float); break; case W3dShaderMaterialPropertyType.Vector2: writer.Write(Vector2); break; case W3dShaderMaterialPropertyType.Vector3: writer.Write(Vector3); break; case W3dShaderMaterialPropertyType.Vector4: writer.Write(Vector4); break; case W3dShaderMaterialPropertyType.Int: writer.Write(Int); break; case W3dShaderMaterialPropertyType.Bool: writer.Write(Bool); break; default: throw new InvalidDataException(); } }
internal static W3dShaderMaterialPropertyValue Parse(BinaryReader reader, W3dShaderMaterialPropertyType propertyType) { switch (propertyType) { case W3dShaderMaterialPropertyType.Float: return(new W3dShaderMaterialPropertyValue { Float = reader.ReadSingle() }); case W3dShaderMaterialPropertyType.Vector2: return(new W3dShaderMaterialPropertyValue { Vector2 = reader.ReadVector2() }); case W3dShaderMaterialPropertyType.Vector3: return(new W3dShaderMaterialPropertyValue { Vector3 = reader.ReadVector3() }); case W3dShaderMaterialPropertyType.Vector4: return(new W3dShaderMaterialPropertyValue { Vector4 = reader.ReadVector4() }); case W3dShaderMaterialPropertyType.Int: return(new W3dShaderMaterialPropertyValue { Int = reader.ReadInt32() }); case W3dShaderMaterialPropertyType.Bool: return(new W3dShaderMaterialPropertyValue { Bool = reader.ReadBooleanChecked() }); default: throw new InvalidDataException(); } }