|
Blender V4.3
|
#include <IO_subdiv_disabler.hh>
Public Member Functions | |
| SubdivModifierDisabler (Depsgraph *depsgraph) | |
| ~SubdivModifierDisabler () | |
| void | disable_modifiers () |
| SubdivModifierDisabler (const SubdivModifierDisabler &)=delete | |
| SubdivModifierDisabler & | operator= (const SubdivModifierDisabler &)=delete |
Static Public Member Functions | |
| static ModifierData * | get_subdiv_modifier (Scene *scene, const Object *ob, ModifierMode mode) |
This code is shared between the Alembic and USD exporters. Temporarily disable the subdiv modifier on mesh objects, if the subdiv modifier is last on the modifier stack.
The destructor restores all disabled modifiers.
Currently, this class is used to disable Catmull-Clark subdivision modifiers. It is done in a separate step before the exporter starts iterating over all the frames, so that it only has to happen once per export.
Definition at line 28 of file IO_subdiv_disabler.hh.
|
explicit |
Definition at line 65 of file subdiv_disabler.cc.
| blender::io::SubdivModifierDisabler::~SubdivModifierDisabler | ( | ) |
Definition at line 67 of file subdiv_disabler.cc.
References DEG_id_tag_update(), and ID_RECALC_GEOMETRY.
|
delete |
| void blender::io::SubdivModifierDisabler::disable_modifiers | ( | ) |
Disable subdiv modifiers on all mesh objects.
Definition at line 80 of file subdiv_disabler.cc.
References BKE_view_layer_object_bases_get(), BKE_view_layer_synced_ensure(), DAG_EVAL_VIEWPORT, DEG_get_input_scene(), DEG_get_input_view_layer(), DEG_get_mode(), DEG_id_tag_update(), eModifierMode_Realtime, eModifierMode_Render, get_subdiv_modifier(), ID_RECALC_GEOMETRY, LISTBASE_FOREACH, mod(), and OB_MESH.
Referenced by blender::io::alembic::export_startjob(), and blender::io::usd::export_to_stage().
|
static |
Return the Catmull-Clark subdiv modifier on the mesh, if it's the last modifier in the list or if it's the last modifier preceding any particle system modifiers. This function ignores Simple subdiv modifiers.
Definition at line 23 of file subdiv_disabler.cc.
References BKE_modifier_is_enabled(), eModifierType_ParticleSystem, eModifierType_Subsurf, ListBase::last, ME_CC_SUBSURF, Object::modifiers, ModifierData::prev, SubsurfModifierData::subdivType, and ModifierData::type.
Referenced by disable_modifiers().
|
delete |