void PathVolumeInfo::Update(const BSDFEvent eventType, const BSDF &bsdf) { // Update only if it isn't a volume scattering and the material can TRANSMIT if (bsdf.IsVolume()) scatteredStart = true; else { scatteredStart = false; if(eventType & TRANSMIT) { if (bsdf.hitPoint.intoObject) AddVolume(bsdf.GetMaterialInteriorVolume()); else RemoveVolume(bsdf.GetMaterialInteriorVolume()); } } }