GCubeSDK
©2026 FenixFox®Studios

Structs

GeometryGroup

geometry.hpp

DataTransferObject for geometry group

u32 start Starting vertex/index
u32 count Number of vertices/indices
u32 materialIndex Material index to use

Intersection

octree.hpp

DataTransferObject for octree intersection methods

Vector3 normal
Vector3 point
f32 depth

RayIntersection

octree.hpp

DataTransferObject for octree ray intersection only

f32 distance
Triangle * triangle
Vector3 position

State

particle.hpp

a State decribes a particles position and velocity at a certain moment in time

Vector3 position
Vector3 velocity

ParticleSettings

particleSystem.hpp

DTO for particle system (Points / GX_POINTS). Volume, size/color over life, burst, explosion.

VolumeType volume VOLUME_BOX or VOLUME_SPHERE
Vector3 boundsMin spawn volume min (box), world space
Vector3 boundsMax spawn volume max (box), world space
Vector3 positionBase center for VOLUME_SPHERE / EMIT_EXPLOSION (ignored for box)
f32 volumeRadius radius when volume is SPHERE
f32 life lifetime in seconds per particle
f32 mass per
Vector3 velocity used when EmitMode is EMIT_LINEAR
Vector3 gravity acceleration; applied as force = gravity * mass via Particle::applyForce
f32 drag velocity damping per second (e.g. 2 = slows down fast), 0 = none
EmitMode emitMode EMIT_LINEAR or EMIT_EXPLOSION
f32 spreadBase min speed for EXPLOSION
f32 spreadMax max speed for EXPLOSION
f32 sizeInit size at birth
f32 size size at end of life
Color colorStart color at birth (incl. alpha)
Color colorEnd color at end of life (incl. alpha)
f32 rotation init rotation amount (rad), random per particle (not used for GX_POINTS)
f32 rotationSpeed rad per second (not used for GX_POINTS)
u32 maxCount max live particles (pool size)
f32 rate spawns per second when !burst
bool burst true = no rate spawn, use addParticles(burstCount)
u32 burstCount particles per burst
bool repeat when burst: true = fire again when empty, false = once only
f32 burstDelay when repeat: seconds to wait after empty before next burst (0 = immediate)

EmitParticle

particleSystem.hpp

one particle: physics (Particle for applyForce/update), life, size, color, rotation.

Particle physics position/velocity via applyForce + update(dt)
f32 life
f32 maxLife
f32 currentSize
f32 rotation
Color color