////////////////////////////////////////////////////////////////////////////// // reflect photons void Surface::reflect(Light& l) { for (int i=0;i<l.nb_photon();i++) { Photon& p=l.get_photon(i); if (!p.is_valid()) continue; local_ref(p); reflect_photon(p); global_ref(p); } }
/////////////////////////////////////////////////////////////////////////////// // transmit photons void Surface::transmit(Light& l) { _pMaterialPrev=&(l.material()); _pMaterialNext=_pMaterial; assert(_pMaterialPrev); for (int i=0;i<l.nb_photon();i++) { Photon& p=l.get_photon(i); if (!p.is_valid()) continue; local_ref(p); transmit_photon(p); global_ref(p); } if( (_pMaterial!=0) && (_bIsPerfect==false)) l.set_material(_pMaterial); }
CLIP_DLLEXPORT ClipVar * _clip_ref_local(ClipMachine * ClipMachineMemory, int no) { return local_ref(ClipMachineMemory, no); }