using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace BansheeEngine { /** @addtogroup Particles * @{ */ /// Information describing a ParticleEmitterConeShape. [StructLayout(LayoutKind.Sequential), SerializeObject] public partial struct ParticleConeShapeOptions { /// Initializes the struct with default values. public static ParticleConeShapeOptions Default() { ParticleConeShapeOptions value = new ParticleConeShapeOptions(); value.type = ParticleEmitterConeType.Base; value.radius = 0f; value.angle = new Degree(); value.length = 1f; value.thickness = 1f; value.arc = new Degree(); value.mode = new ParticleEmissionMode(); return value; } /// Determines where on the cone are the particles emitter from. public ParticleEmitterConeType type; /// Radius of the cone base. public float radius; /// Angle of the cone. public Degree angle; /// Length of the cone. Irrelevant if emission type is Base. public float length; /// /// Proportion of the volume that can emit particles. Thickness of 0 results in particles being emitted only from the /// edge of the cone, while thickness of 1 results in particles being emitted from the entire volume. In-between values /// will use a part of the volume. /// public float thickness; /// Angular portion of the cone from which to emit particles from, in degrees. public Degree arc; /// Determines how will particle positions on the shape be generated. public ParticleEmissionMode mode; } /** @} */ }