本文整理汇总了C++中BSDF::GetEventTypes方法的典型用法代码示例。如果您正苦于以下问题:C++ BSDF::GetEventTypes方法的具体用法?C++ BSDF::GetEventTypes怎么用?C++ BSDF::GetEventTypes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BSDF
的用法示例。
在下文中一共展示了BSDF::GetEventTypes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ContinueToTrace
bool PathVolumeInfo::ContinueToTrace(const BSDF &bsdf) const {
// Check if the volume priority system has to be applied
if (bsdf.GetEventTypes() & TRANSMIT) {
// Ok, the surface can transmit so check if volume priority
// system is telling me to continue to trace the ray
// I have to continue to trace the ray if:
//
// 1) I'm entering an object and the interior volume has a
// lower priority than the current one (or is the same volume).
//
// 2) I'm exiting an object and I'm not leaving the current volume.
const Volume *bsdfInteriorVol = bsdf.GetMaterialInteriorVolume();
// Condition #1
if (bsdf.hitPoint.intoObject && CompareVolumePriorities(currentVolume, bsdfInteriorVol))
return true;
// Condition #2
//
// I have to calculate the potentially new currentVolume in order
// to check if I'm leaving the current one
if ((!bsdf.hitPoint.intoObject) && currentVolume && (SimulateRemoveVolume(bsdfInteriorVol) == currentVolume))
return true;
}
return false;
}