Blender V4.3
blender::io::SubdivModifierDisabler Class Referencefinal

#include <IO_subdiv_disabler.hh>

Public Member Functions

 SubdivModifierDisabler (Depsgraph *depsgraph)
 
 ~SubdivModifierDisabler ()
 
void disable_modifiers ()
 
 SubdivModifierDisabler (const SubdivModifierDisabler &)=delete
 
SubdivModifierDisableroperator= (const SubdivModifierDisabler &)=delete
 

Static Public Member Functions

static ModifierDataget_subdiv_modifier (Scene *scene, const Object *ob, ModifierMode mode)
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ SubdivModifierDisabler() [1/2]

blender::io::SubdivModifierDisabler::SubdivModifierDisabler ( Depsgraph * depsgraph)
explicit

Definition at line 65 of file subdiv_disabler.cc.

◆ ~SubdivModifierDisabler()

blender::io::SubdivModifierDisabler::~SubdivModifierDisabler ( )

Definition at line 67 of file subdiv_disabler.cc.

References DEG_id_tag_update(), and ID_RECALC_GEOMETRY.

◆ SubdivModifierDisabler() [2/2]

blender::io::SubdivModifierDisabler::SubdivModifierDisabler ( const SubdivModifierDisabler & )
delete

Member Function Documentation

◆ disable_modifiers()

◆ get_subdiv_modifier()

ModifierData * blender::io::SubdivModifierDisabler::get_subdiv_modifier ( Scene * scene,
const Object * ob,
ModifierMode mode )
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().

◆ operator=()

SubdivModifierDisabler & blender::io::SubdivModifierDisabler::operator= ( const SubdivModifierDisabler & )
delete

The documentation for this class was generated from the following files: