Class ShapeBuilderCommon
- Namespace
- Stride.Particles.ShapeBuilders
- Assembly
- Stride.Particles.dll
The common shape builder provides additive animation for the particle's position and size fields, assuming that all derived shape builders will have position and size fields
[DataContract("ShapeBuilderCommon")]
public abstract class ShapeBuilderCommon : ShapeBuilder- Inheritance
- 
      objectShapeBuilderCommon
- Derived
- Inherited Members
Properties
SamplerPosition
Additive animation for the particle position. If present, particle's own position will be added to the sampled curve value
[DataMember(100)]
[Display("Additive Position Animation", null)]
public ComputeCurveSampler<Vector3> SamplerPosition { get; set; }Property Value
SamplerSize
Additive animation for the particle size. If present, particle's own size will be multiplied with the sampled curve value
[DataMember(200)]
[Display("Additive Size Animation", null)]
public ComputeCurveSampler<float> SamplerSize { get; set; }Property Value
Methods
BuildVertexBuffer(ref ParticleBufferState, Vector3, Vector3, ref Vector3, ref Quaternion, float, ref ParticleList, ref Matrix)
Builds the actual vertex buffer for the current frame using the particle data
public override int BuildVertexBuffer(ref ParticleBufferState bufferState, Vector3 invViewX, Vector3 invViewY, ref Vector3 spaceTranslation, ref Quaternion spaceRotation, float spaceScale, ref ParticleList sorter, ref Matrix viewProj)Parameters
- bufferStateParticleBufferState
- Target particle buffer state, used to populate the assigned vertex buffer 
- invViewXVector3
- Unit vector X (right) in camera space, extracted from the inverse view matrix 
- invViewYVector3
- Unit vector Y (up) in camera space, extracted from the inverse view matrix 
- spaceTranslationVector3
- Translation of the target draw space in regard to the particle data (world or local) 
- spaceRotationQuaternion
- Rotation of the target draw space in regard to the particle data (world or local) 
- spaceScalefloat
- Uniform scale of the target draw space in regard to the particle data (world or local) 
- sorterParticleList
- Particle enumerator which can be iterated and returns sported particles 
- viewProjMatrix
- The View-Projection matrix which is used for some shape builders 
Returns
GetParticlePosition(Particle, ParticleFieldAccessor<Vector3>, ParticleFieldAccessor<float>)
Gets the combined position for the particle, adding its field value (if any) to its sampled value from the curve
protected Vector3 GetParticlePosition(Particle particle, ParticleFieldAccessor<Vector3> positionField, ParticleFieldAccessor<float> lifeField)Parameters
- particleParticle
- positionFieldParticleFieldAccessor<Vector3>
- lifeFieldParticleFieldAccessor<float>
- Normalized life for sampling 
Returns
- Vector3
- Particle's current 3D position 
GetParticleSize(Particle, ParticleFieldAccessor<float>, ParticleFieldAccessor<float>)
Gets the combined size for the particle, adding its field value (if any) to its sampled value from the curve
protected float GetParticleSize(Particle particle, ParticleFieldAccessor<float> sizeField, ParticleFieldAccessor<float> lifeField)Parameters
- particleParticle
- Target particle 
- sizeFieldParticleFieldAccessor<float>
- Size field accessor 
- lifeFieldParticleFieldAccessor<float>
- Normalized life for sampling 
Returns
- float
- Particle's current uniform size 
PreUpdate()
public override void PreUpdate()