Ejemplo n.º 1
0
//////////////////////////////////////////////////////////////////////////////
// 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);
    }
}
Ejemplo n.º 2
0
///////////////////////////////////////////////////////////////////////////////
// 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);
}
Ejemplo n.º 3
0
CLIP_DLLEXPORT ClipVar *
_clip_ref_local(ClipMachine * ClipMachineMemory, int no)
{
   return local_ref(ClipMachineMemory, no);
}