本文整理汇总了C++中intrusive_ptr::GetPrimitives方法的典型用法代码示例。如果您正苦于以下问题:C++ intrusive_ptr::GetPrimitives方法的具体用法?C++ intrusive_ptr::GetPrimitives怎么用?C++ intrusive_ptr::GetPrimitives使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类intrusive_ptr
的用法示例。
在下文中一共展示了intrusive_ptr::GetPrimitives方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ASSERT
//////////////////////////////////////// PhotonLTEIntegrator /////////////////////////////////////////////
PhotonLTEIntegrator::PhotonLTEIntegrator(intrusive_ptr<const Scene> ip_scene, PhotonLTEIntegratorParams i_params):
LTEIntegrator(ip_scene), mp_scene(ip_scene), m_params(i_params)
{
ASSERT(ip_scene);
// We double the media step size for secondary rays to reduce computation time (since the accuracy is less important here).
mp_direct_lighting_integrator.reset(new DirectLightingIntegrator(ip_scene, i_params.m_direct_light_samples_num,
i_params.m_direct_light_samples_num, 2.0*i_params.m_media_step_size));
if (m_params.m_max_specular_depth > 50)
m_params.m_max_specular_depth = 50;
if (m_params.m_max_caustic_photons == 0 || m_params.m_max_caustic_photons > MAX_PHOTONS_IN_MAP)
m_params.m_max_caustic_photons = MAX_PHOTONS_IN_MAP;
if (m_params.m_max_direct_photons == 0 || m_params.m_max_direct_photons > MAX_PHOTONS_IN_MAP)
m_params.m_max_direct_photons = MAX_PHOTONS_IN_MAP;
if (m_params.m_max_indirect_photons == 0 || m_params.m_max_indirect_photons > MAX_PHOTONS_IN_MAP)
m_params.m_max_indirect_photons = MAX_PHOTONS_IN_MAP;
m_scene_total_area = 0.0;
const std::vector<intrusive_ptr<const Primitive>> &primitives = ip_scene->GetPrimitives();
for(size_t i=0;i<primitives.size();++i)
m_scene_total_area += primitives[i]->GetTriangleMesh_RawPtr()->GetArea();
}