struct CrShader::Compute::ParticleState

Overview

Aligned 32-byte (2 x vec4) or 48-byte (3 x vec4) std430 particle state Layout in std430 storage buffer:

Defined in:

crshader/compute/particle_simulation_core.cr

Constant Summary

BYTE_STRIDE = 48

Constructors

Instance Method Summary

Constructor Detail

def self.new(px : Float32 = 0.0_f32, py : Float32 = 0.0_f32, pz : Float32 = 0.0_f32, life : Float32 = 1.0_f32, vx : Float32 = 0.0_f32, vy : Float32 = 0.0_f32, vz : Float32 = 0.0_f32, max_life : Float32 = 1.0_f32, r : Float32 = 1.0_f32, g : Float32 = 1.0_f32, b : Float32 = 1.0_f32, scale : Float32 = 1.0_f32) #

def self.read_from_bytes(buffer : Bytes, byte_offset : Int32 = 0) : ParticleState #

Reads a ParticleState from a Slice(UInt8) at byte_offset


Instance Method Detail

def alive? : Bool #

def b : Float32 #

def b=(b : Float32) #

def g : Float32 #

def g=(g : Float32) #

def life : Float32 #

def life=(life : Float32) #

def max_life : Float32 #

def max_life=(max_life : Float32) #

def normalized_age : Float32 #

def px : Float32 #

def px=(px : Float32) #

def py : Float32 #

def py=(py : Float32) #

def pz : Float32 #

def pz=(pz : Float32) #

def r : Float32 #

def r=(r : Float32) #

def scale : Float32 #

def scale=(scale : Float32) #

def speed : Float32 #

def vx : Float32 #

def vx=(vx : Float32) #

def vy : Float32 #

def vy=(vy : Float32) #

def vz : Float32 #

def vz=(vz : Float32) #

def write_to_bytes(buffer : Bytes, byte_offset : Int32 = 0) : Void #

Writes the 12 Float32 components (48 bytes) into a Slice(UInt8) at byte_offset