Source code for dazpy._modifier

from __future__ import annotations

from ._element import DazElement
from ._script_builder import ScriptBuilder


[docs] class DazModifier(DazElement): """Proxy for a ``DzModifier`` (constraint, formula, etc.) on a node. Instances are obtained via :meth:`DazNode.modifiers` or :meth:`DazNode.find_modifier`. For morph/blendshape modifiers, the more specific :class:`~dazpy.DazMorph` subclass is returned automatically. """ def __init__(self, client: "DazClient", locator: str): # noqa: F821 super().__init__(client, locator) @property def modifier_label(self) -> str | None: """User-visible display label of this modifier (read-only).""" script = ScriptBuilder.iife( f"var m = {self._locator}; return m ? m.getLabel() : null;" ) return self._client.execute(script).value @property def enabled(self) -> bool | None: """Whether this modifier is currently active (read/write).""" script = ScriptBuilder.iife( f"var m = {self._locator}; return m ? m.isEnabled() : null;" ) return self._client.execute(script).value @enabled.setter def enabled(self, value: bool) -> None: flag = "true" if value else "false" script = ScriptBuilder.iife( f"var m = {self._locator}; if (m) m.setEnabled({flag});" ) self._client.execute(script)