def __init__(self, rect=None, parent=None):

        self.signals = CurveNodeItemSignals()
        gradient = QRadialGradient(
            self.WIDTH * 0.75, self.WIDTH * 0.75, self.WIDTH * 0.75, self.WIDTH * 0.75, self.WIDTH * 0.75)
        gradient.setColorAt(0, self.theme().accent_color_6 if self.theme() else QColor.fromRgbF(1, 0.5, 0.01, 1))
        gradient.setColorAt(1, self.theme().accent_color_8 if self.theme() else QColor.fromRgbF(1, 0.6, 0.06, 1))
        self._brush = QBrush(gradient)
        self._brush.setStyle(Qt.RadialGradientPattern)
        self._pen = QPen()
        self._pen.setStyle(Qt.SolidLine)
        self._pen.setWidth(2)
        self._pen.setColor(self.theme().accent_color if self.theme() else QColor(104, 104, 104, 255))
        self._selected_pen = QPen()
        self._selected_pen.setStyle(Qt.SolidLine)
        self._selected_pen.setWidth(3)
        self._selected_pen.setColor(self.theme().accent_color_4 if self.theme() else QColor(67, 255, 163, 255))

        super(CurveNodeItem, self).__init__(parent)

        self._lock_x_pos = False
        self._snap = False
        self._current_pos = None
        self._new_pos = None
        self._line = None
        self._is_point1 = False
        self.set_rect(rect if rect else QRect(0, 0, 10, 10))

        self.setFlags(
            QGraphicsItem.ItemIsMovable | QGraphicsItem.ItemIsSelectable | QGraphicsItem.ItemSendsScenePositionChanges)
Esempio n. 2
0
def color_from_hsl(hue, sat, lig, alpha):
    chroma = (1 - abs(2 * lig - 1)) * sat
    h1 = hue * 6
    x = chroma * (1 - abs(math.fmod(h1, 2) - 1))
    col = QColor()
    if 0 <= h1 < 1:
        col = QColor.fromRgbF(chroma, x, 0)
    elif h1 < 2:
        col = QColor.fromRgbF(x, chroma, 0)
    elif h1 < 3:
        col = QColor.fromRgbF(0, chroma, x)
    elif h1 < 4:
        col = QColor.fromRgbF(0, x, chroma)
    elif h1 < 5:
        col = QColor.fromRgbF(x, 0, chroma)
    elif h1 < 6:
        col = QColor.fromRgbF(chroma, 0, x)

    m = lig - chroma / 2

    return QColor.fromRgbF(
        clamp(col.redF() + m, 0.0, 1.0),
        clamp(col.greenF() + m, 0.0, 1.0),
        clamp(col.blueF() + m, 0.0, 1.0),
        alpha
    )
Esempio n. 3
0
def color_from_lch(hue, chroma, luma, alpha=1):
    h1 = hue * 6
    x = chroma * (1 - abs(math.fmod(h1, 2) - 1))
    col = QColor()
    if 0 <= h1 < 1:
        col = QColor.fromRgbF(chroma, x, 0)
    elif h1 < 2:
        col = QColor.fromRgbF(x, chroma, 0)
    elif h1 < 3:
        col = QColor.fromRgbF(0, chroma, x)
    elif h1 < 4:
        col = QColor.fromRgbF(0, x, chroma)
    elif h1 < 5:
        col = QColor.fromRgbF(x, 0, chroma)
    elif h1 < 6:
        col = QColor.fromRgbF(chroma, 0, x)

    m = luma - color_luma_float(col)

    return QColor.fromRgbF(
        clamp(col.redF() + m, 0.0, 1.0),
        clamp(col.greenF() + m, 0.0, 1.0),
        clamp(col.blueF() + m, 0.0, 1.0),
        alpha
    )
Esempio n. 4
0
def get_rig_color(rig_type='fk', side='center'):
    """
    Return a color given a rig type
    :param rig_type: str, Rig type ('fk' or 'ik')
    :param side: str, Rig side ('left', 'right', or 'center')
    """

    if rig_type == 'fk' or rig_type == 'FK':
        if side == 'left' or side == 'Left' or side == 'L' or side == 'l' or side == 'Lt':
            rig_color = QColor.fromRgbF(0.7, 0.4, 0.7)
            rig_color.ann = 'LtFK Color'
        elif side == 'right' or side == 'Right' or side == 'R' or side == 'r' or side == 'Rt':
            rig_color = QColor.fromRgbF(0.7, 0.4, 0.4)
            rig_color.ann = 'RtFK Color'
        else:
            rig_color = QColor.fromRgbF(0.7, 0.7, 0.4)
            rig_color.ann = 'CnFK Color'
    else:
        if side == 'left' or side == 'Left' or side == 'L' or side == 'l' or side == 'Lt':
            rig_color = QColor.fromRgbF(0.4, 0.5, 0.7)
            rig_color.ann = 'LtIK Color'
        elif side == 'right' or side == 'Right' or side == 'R' or side == 'r' or side == 'Rt':
            rig_color = QColor.fromRgbF(0.7, 0.4, 0.7)
            rig_color.ann = 'RtIK Color'
        else:
            rig_color = QColor.fromRgbF(0.4, 0.7, 0.4)
            rig_color.ann = 'CnIK Color'

    return rig_color
Esempio n. 5
0
    def __init__(self,
                 color_r=1.0,
                 color_g=0.0,
                 color_b=0.0,
                 parent=None,
                 **kwargs):
        super(ColorButton, self).__init__(parent=parent, **kwargs)
        self._color = QColor.fromRgbF(color_r, color_g, color_b)
        self.setSizePolicy(
            QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum))
        self._update_color()

        self.clicked.connect(self.show_color_editor)
Esempio n. 6
0
 def show_color_editor(self):
     if dcc.is_maya():
         import maya.cmds as cmds
         cmds.colorEditor(rgbValue=(self._color.redF(),
                                    self._color.greenF(),
                                    self._color.blueF()))
         if not cmds.colorEditor(query=True, result=True):
             return
         new_color = cmds.colorEditor(query=True, rgbValue=True)
         self.color = QColor.fromRgbF(new_color[0], new_color[1],
                                      new_color[2])
         self.colorChanged.emit()
     else:
         raise RuntimeError(
             'Code Editor is not available for DCC: {}'.format(
                 dcc.get_name()))
Esempio n. 7
0
from Qt.QtGui import QSyntaxHighlighter, QColor

PURPLE = QColor.fromRgbF(0.7, 0.5, 1, 1)
BLUE = QColor.fromRgbF(0, 0.5, 1, 1)


class JSONHighlighter(QSyntaxHighlighter):
    def highlightBlock(self, s):
        if not s.strip():
            return
        i = 0
        for start, length in get_string_ranges(s):
            if i % 2:
                color = BLUE
            else:
                color = PURPLE
            i += 1
            self.setFormat(start, length, color)


def get_string_ranges(t):
    """Get the in and out points of double-quote encased strings."""

    # life's too short to parse escape characters.
    s = t.replace('\\"', '##')
    assert len(s) == len(t)

    i = 0
    prev_c = ''
    in_str = False
    length = 0