Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/render/scene.h
| Show First 20 Lines • Show All 316 Lines • ▼ Show 20 Lines | public: | ||||
| */ | */ | ||||
| template<typename T> void delete_node(T *node, const NodeOwner *owner) | template<typename T> void delete_node(T *node, const NodeOwner *owner) | ||||
| { | { | ||||
| assert(node->get_owner() == owner); | assert(node->get_owner() == owner); | ||||
| delete_node_impl(node); | delete_node_impl(node); | ||||
| (void)owner; | (void)owner; | ||||
| } | } | ||||
| /* Remove all nodes in the set from the appropriate data arrays, and tag the | |||||
| * specific managers for an update. This assumes that the scene owns the nodes. | |||||
| */ | |||||
| template<typename T> void delete_nodes(const set<T *> &nodes) | |||||
| { | |||||
| delete_nodes(nodes, this); | |||||
| } | |||||
| /* Same as above, but specify the actual owner of all the nodes in the set. | |||||
| */ | |||||
| template<typename T> void delete_nodes(const set<T *> &nodes, const NodeOwner *owner); | |||||
| protected: | protected: | ||||
| /* Check if some heavy data worth logging was updated. | /* Check if some heavy data worth logging was updated. | ||||
| * Mainly used to suppress extra annoying logging. | * Mainly used to suppress extra annoying logging. | ||||
| */ | */ | ||||
| bool need_data_update(); | bool need_data_update(); | ||||
| void free_memory(bool final); | void free_memory(bool final); | ||||
| ▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | |||||
| template<> void Scene::delete_node_impl(Geometry *node); | template<> void Scene::delete_node_impl(Geometry *node); | ||||
| template<> void Scene::delete_node_impl(Object *node); | template<> void Scene::delete_node_impl(Object *node); | ||||
| template<> void Scene::delete_node_impl(ParticleSystem *node); | template<> void Scene::delete_node_impl(ParticleSystem *node); | ||||
| template<> void Scene::delete_node_impl(Shader *node); | template<> void Scene::delete_node_impl(Shader *node); | ||||
| template<> void Scene::delete_nodes(const set<Light *> &nodes, const NodeOwner *owner); | |||||
| template<> void Scene::delete_nodes(const set<Geometry *> &nodes, const NodeOwner *owner); | |||||
| template<> void Scene::delete_nodes(const set<Object *> &nodes, const NodeOwner *owner); | |||||
| template<> void Scene::delete_nodes(const set<ParticleSystem *> &nodes, const NodeOwner *owner); | |||||
| template<> void Scene::delete_nodes(const set<Shader *> &nodes, const NodeOwner *owner); | |||||
| CCL_NAMESPACE_END | CCL_NAMESPACE_END | ||||
| #endif /* __SCENE_H__ */ | #endif /* __SCENE_H__ */ | ||||