Module sverchok.utils.nodes_mixins.draft_mode

Expand source code
# This file is part of project Sverchok. It's copyrighted by the contributors
# recorded in the version control history of the file, available from
# its original location https://github.com/nortikin/sverchok/commit/master
#
# SPDX-License-Identifier: GPL3
# License-Filename: LICENSE


class DraftMode:
    """Use class for nodes which should replace their properties upon draft mode changes"""

    # this should contain mapping from "standard"
    # mode property names to draft mode property names.
    # E.g., draft_properties_mapping = dict(count = 'count_draft').
    draft_properties_mapping = dict()

    def does_support_draft_mode(self):
        """
        Nodes that either store separate property values
        for draft mode, or perform another version of
        algorithm in draft mode, should return True here.
        """
        return False

    def on_draft_mode_changed(self, new_draft_mode):
        """
        This is triggered when Draft mode of the tree is toggled.
        Nodes should not usually override this, but may override
        sv_draft_mode_changed() instead.
        """
        if self.does_support_draft_mode():
            if new_draft_mode == True:
                if not self.was_in_draft_mode():
                    # Copy values from standard properties
                    # to draft mode ones, when the node enters the
                    # draft mode first time.
                    for prop_name, draft_prop_name in self.draft_properties_mapping.items():
                        setattr(self, draft_prop_name, getattr(self, prop_name))
                self['_was_in_draft_mode'] = True
        self.sv_draft_mode_changed(new_draft_mode)

    def sv_draft_mode_changed(self, new_draft_mode):
        """
        This is triggered when Draft mode of the tree is toggled.
        Nodes may override this if they need to do something specific
        on this event.
        """
        pass

    def was_in_draft_mode(self):
        """
        Whether this instance of the node ever has been in Draft mode.
        Nodes should not usually override this.
        """
        return self.get('_was_in_draft_mode', False)

Classes

class DraftMode

Use class for nodes which should replace their properties upon draft mode changes

Expand source code
class DraftMode:
    """Use class for nodes which should replace their properties upon draft mode changes"""

    # this should contain mapping from "standard"
    # mode property names to draft mode property names.
    # E.g., draft_properties_mapping = dict(count = 'count_draft').
    draft_properties_mapping = dict()

    def does_support_draft_mode(self):
        """
        Nodes that either store separate property values
        for draft mode, or perform another version of
        algorithm in draft mode, should return True here.
        """
        return False

    def on_draft_mode_changed(self, new_draft_mode):
        """
        This is triggered when Draft mode of the tree is toggled.
        Nodes should not usually override this, but may override
        sv_draft_mode_changed() instead.
        """
        if self.does_support_draft_mode():
            if new_draft_mode == True:
                if not self.was_in_draft_mode():
                    # Copy values from standard properties
                    # to draft mode ones, when the node enters the
                    # draft mode first time.
                    for prop_name, draft_prop_name in self.draft_properties_mapping.items():
                        setattr(self, draft_prop_name, getattr(self, prop_name))
                self['_was_in_draft_mode'] = True
        self.sv_draft_mode_changed(new_draft_mode)

    def sv_draft_mode_changed(self, new_draft_mode):
        """
        This is triggered when Draft mode of the tree is toggled.
        Nodes may override this if they need to do something specific
        on this event.
        """
        pass

    def was_in_draft_mode(self):
        """
        Whether this instance of the node ever has been in Draft mode.
        Nodes should not usually override this.
        """
        return self.get('_was_in_draft_mode', False)

Subclasses

  • sverchok.nodes.curve.length_parameter.SvCurveLengthParameterMk2Node
  • sverchok.nodes.modifier_change.subdivide_mk2.SvSubdivideNodeMK2
  • sverchok.nodes.number.numbers.SvNumberNode
  • sverchok.nodes.surface.marching_cubes.SvExMarchingCubesNode

Class variables

var draft_properties_mapping

Methods

def does_support_draft_mode(self)

Nodes that either store separate property values for draft mode, or perform another version of algorithm in draft mode, should return True here.

Expand source code
def does_support_draft_mode(self):
    """
    Nodes that either store separate property values
    for draft mode, or perform another version of
    algorithm in draft mode, should return True here.
    """
    return False
def on_draft_mode_changed(self, new_draft_mode)

This is triggered when Draft mode of the tree is toggled. Nodes should not usually override this, but may override sv_draft_mode_changed() instead.

Expand source code
def on_draft_mode_changed(self, new_draft_mode):
    """
    This is triggered when Draft mode of the tree is toggled.
    Nodes should not usually override this, but may override
    sv_draft_mode_changed() instead.
    """
    if self.does_support_draft_mode():
        if new_draft_mode == True:
            if not self.was_in_draft_mode():
                # Copy values from standard properties
                # to draft mode ones, when the node enters the
                # draft mode first time.
                for prop_name, draft_prop_name in self.draft_properties_mapping.items():
                    setattr(self, draft_prop_name, getattr(self, prop_name))
            self['_was_in_draft_mode'] = True
    self.sv_draft_mode_changed(new_draft_mode)
def sv_draft_mode_changed(self, new_draft_mode)

This is triggered when Draft mode of the tree is toggled. Nodes may override this if they need to do something specific on this event.

Expand source code
def sv_draft_mode_changed(self, new_draft_mode):
    """
    This is triggered when Draft mode of the tree is toggled.
    Nodes may override this if they need to do something specific
    on this event.
    """
    pass
def was_in_draft_mode(self)

Whether this instance of the node ever has been in Draft mode. Nodes should not usually override this.

Expand source code
def was_in_draft_mode(self):
    """
    Whether this instance of the node ever has been in Draft mode.
    Nodes should not usually override this.
    """
    return self.get('_was_in_draft_mode', False)