add a new Scene::invalidate() function to address an issue reported by David Harmon
parent
455b239c15
commit
ae865e7dfa
|
@ -72,6 +72,14 @@ public:
|
||||||
*/
|
*/
|
||||||
void initialize();
|
void initialize();
|
||||||
|
|
||||||
|
/**
|
||||||
|
*\brief Invalidate the kd-tree
|
||||||
|
*
|
||||||
|
* This function must be called if, after running \ref initialize(),
|
||||||
|
* additional geometry is added to the scene.
|
||||||
|
*/
|
||||||
|
void invalidate();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Initialize the scene for bidirectional rendering algorithms.
|
* \brief Initialize the scene for bidirectional rendering algorithms.
|
||||||
*
|
*
|
||||||
|
|
|
@ -330,6 +330,7 @@ void export_render() {
|
||||||
.def("getPrimitiveCount", &ShapeKDTree::getPrimitiveCount)
|
.def("getPrimitiveCount", &ShapeKDTree::getPrimitiveCount)
|
||||||
.def("addShape", &ShapeKDTree::addShape)
|
.def("addShape", &ShapeKDTree::addShape)
|
||||||
.def("build", &ShapeKDTree::build)
|
.def("build", &ShapeKDTree::build)
|
||||||
|
.def("isBuilt", &ShapeKDTree::isBuilt)
|
||||||
.def("getAABB", &shapekdtree_getAABB, BP_RETURN_VALUE)
|
.def("getAABB", &shapekdtree_getAABB, BP_RETURN_VALUE)
|
||||||
.def("getShapes", &shapekdtree_getShapes)
|
.def("getShapes", &shapekdtree_getShapes)
|
||||||
.def("rayIntersect", &shapekdtree_rayIntersect);
|
.def("rayIntersect", &shapekdtree_rayIntersect);
|
||||||
|
@ -343,6 +344,7 @@ void export_render() {
|
||||||
.def(bp::init<Scene *>())
|
.def(bp::init<Scene *>())
|
||||||
.def(bp::init<Stream *, InstanceManager *>())
|
.def(bp::init<Stream *, InstanceManager *>())
|
||||||
.def("initialize", &Scene::initialize)
|
.def("initialize", &Scene::initialize)
|
||||||
|
.def("invalidate", &Scene::invalidate)
|
||||||
.def("preprocess", &Scene::preprocess)
|
.def("preprocess", &Scene::preprocess)
|
||||||
.def("render", &Scene::render)
|
.def("render", &Scene::render)
|
||||||
.def("postprocess", &Scene::postprocess)
|
.def("postprocess", &Scene::postprocess)
|
||||||
|
|
|
@ -315,6 +315,10 @@ void Scene::configure() {
|
||||||
m_integrator->configureSampler(this, m_sampler);
|
m_integrator->configureSampler(this, m_sampler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Scene::invalidate() {
|
||||||
|
m_kdtree = new ShapeKDTree();
|
||||||
|
}
|
||||||
|
|
||||||
void Scene::initialize() {
|
void Scene::initialize() {
|
||||||
if (!m_kdtree->isBuilt()) {
|
if (!m_kdtree->isBuilt()) {
|
||||||
/* Expand all geometry */
|
/* Expand all geometry */
|
||||||
|
|
Loading…
Reference in New Issue