// SPDX-FileCopyrightText: 2023 Unity Technologies and the glTFast authors // SPDX-License-Identifier: Apache-2.0 using Unity.Mathematics; namespace GLTFast.Schema { /// [System.Serializable] public class OcclusionTextureInfo : OcclusionTextureInfoBase { } /// /// occlusionTextureInfo extensions type [System.Serializable] public abstract class OcclusionTextureInfoBase : OcclusionTextureInfoBase where TExtensions : TextureInfoExtensions, new() { /// public TExtensions extensions; /// public override TextureInfoExtensions Extensions => extensions; internal override void SetTextureTransform(TextureTransform textureTransform) { extensions = extensions ?? new TExtensions(); extensions.KHR_texture_transform = textureTransform; } } /// /// Occlusion map specific texture info /// [System.Serializable] public abstract class OcclusionTextureInfoBase : TextureInfoBase { /// /// A scalar multiplier controlling the amount of occlusion applied. /// A value of 0.0 means no occlusion. /// A value of 1.0 means full occlusion. /// This value is ignored if the corresponding texture is not specified. /// This value is linear. /// public float strength = 1.0f; internal override void GltfSerialize(JsonWriter writer) { writer.AddObject(); GltfSerializeTextureInfo(writer); if (math.abs(strength - 1f) > Constants.epsilon) { writer.AddProperty("strength", strength); } writer.Close(); } } }