示例#1
0
def addSignalFunction(channel,
                      signalFunction,
                      plot=None,
                      color=None,
                      wrap=True,
                      label=None):

    if plot is None:
        plot = getPlot()
        if plot is None:
            plot = addPlot()

    if color is not None:
        rgb = [int(c * 255) for c in color]
        color = QtGui.QColor(*rgb)
    else:
        color = QtGui.QColor()

    if wrap:

        def _signalFunction(x):
            t, v = signalFunction(x)
            return t * 1e-6, float(v)
    else:
        _signalFunction = signalFunction

    _mainWindow.addPythonSignal(
        plot,
        [channel, _signalFunction, label or signalFunction.__doc__, color])
示例#2
0
    def _setupTextureColors(self):

        # custom colors for non-textured robotiq hand
        for name in self.model.getLinkNames():
            strs = name.split('_')
            if len(strs) >= 2 and strs[0] in ['left', 'right'] and strs[1] in ('finger', 'palm') or name.endswith('hand_force_torque'):
                self.model.setLinkColor(name, QtGui.QColor(90, 90, 90) if strs[1] == 'finger' else QtGui.QColor(20,20,20))
            else:
                self.model.setLinkColor(name, QtGui.QColor(255,255,255))
示例#3
0
    def _setupTextureColors(self):

        # custom colors for non-textured robotiq hand
        for name in self.model.getLinkNames():
            strs = name.split("_")
            if (len(strs) >= 2 and strs[0] in ["left", "right"]
                    and strs[1] in ("finger", "palm")
                    or name.endswith("hand_force_torque")):
                self.model.setLinkColor(
                    name,
                    QtGui.QColor(90, 90, 90)
                    if strs[1] == "finger" else QtGui.QColor(20, 20, 20),
                )
示例#4
0
    def __init__(self, name, geom, polyData, parentTransform):
        self.polyDataItem = vis.PolyDataItem(name, polyData, view=None)
        self.polyDataItem.setProperty('Alpha', geom.color[3])
        self.polyDataItem.actor.SetTexture(Geometry.TextureCache.get( Geometry.getTextureFileName(polyData) ))

        if self.polyDataItem.actor.GetTexture():
            self.polyDataItem.setProperty('Color', QtGui.QColor(255, 255, 255))

        else:
            self.polyDataItem.setProperty('Color', QtGui.QColor(geom.color[0]*255, geom.color[1]*255, geom.color[2]*255))

        if USE_SHADOWS:
            self.polyDataItem.shadowOn()
    def __init__(self, name, itemRow, itemCul, exportDir=None):
        super(xTableItem ,self).__init__()

        label = QtGui.QLabel(name).text
        self.setText(label)
        self.itemRow = itemRow
        self.itemCul = itemCul
        if self.itemCul == 4:
            self.col = QtGui.QColor(10, 100, 100)
        else:
            self.col = QtGui.QColor(0, 0, 0)

        #set background color
        self.setBackground(self.col)
示例#6
0
def showClusterObjects(clusters, parent):

    colors =  [ QtCore.Qt.red,
                QtCore.Qt.blue,
                QtCore.Qt.yellow,
                QtCore.Qt.green,
                QtCore.Qt.magenta,
                QtCore.Qt.cyan,
                QtCore.Qt.darkCyan,
                QtCore.Qt.darkGreen,
                QtCore.Qt.darkMagenta ]

    colors = [QtGui.QColor(c) for c in colors]
    colors = [(c.red()/255.0, c.green()/255.0, c.blue()/255.0) for c in colors]

    objects = []

    for i, cluster in enumerate(clusters):
        name = 'object %d' % i
        color = colors[i % len(colors)]
        clusterObj = showPolyData(cluster.mesh, name, color=color, parent=parent, alpha=1.0)
        clusterFrame = showFrame(cluster.frame, name + ' frame', scale=0.2, visible=False, parent=clusterObj)
        clusterBox = showPolyData(cluster.box, name + ' box', color=color, parent=clusterObj, alpha=0.6, visible=False)
        clusterPoints = showPolyData(cluster.points, name + ' points', color=color, parent=clusterObj, visible=False, alpha=1.0)
        clusterPoints.setProperty('Point Size', 7)
        clusterPoints.colorBy(None)
        objects.append(clusterObj)

        for obj in [clusterObj, clusterBox, clusterPoints]:
            obj.actor.SetUserTransform(cluster.frame)

    return objects
示例#7
0
    def updatePolyDataItemProperties(self, polyDataItem):
        polyDataItem._updateColorByProperty()

        polyDataItem.setProperty('Alpha', self.color[3])
        polyDataItem.actor.SetTexture(
            Geometry.TextureCache.get(
                Geometry.getTextureFileName(self.polyData)))

        if polyDataItem.actor.GetTexture():
            polyDataItem.setProperty('Color', QtGui.QColor(255, 255, 255))
        else:
            polyDataItem.setProperty(
                'Color', QtGui.QColor(*(255 * np.asarray(self.color[:3]))))

        if USE_SHADOWS:
            polyDataItem.shadowOn()
示例#8
0
def mesh_to_K(gate_obj, ssv_id, tree_id, obj_type, color):
    mesh = gate_obj.syconn_gate.get_ssv_obj_mesh_from_results_store(
        ssv_id, obj_type)
    if len(mesh[0]) > 0:
        KnossosModule.skeleton.add_tree_mesh(tree_id, mesh[1], mesh[2],
                                             mesh[0], [], 4, False)
        KnossosModule.skeleton.set_tree_color(tree_id, QtGui.QColor(*color))
示例#9
0
 def __init__(self, frameProvider):
     vis.PolyDataItem.__init__(self, 'spindle axis', vtk.vtkPolyData(), view=None)
     self.frameProvider = frameProvider
     self.timer = TimerCallback()
     self.timer.callback = self.update
     self.setProperty('Color', QtGui.QColor(0, 255, 0))
     self.setProperty('Visible', False)
示例#10
0
 def _updateModelColor(self):
     if self.getProperty('Color Mode') == 0:  # Solid Color
         color = QtGui.QColor(*[c * 255 for c in self.getProperty('Color')])
         self.model.setColor(color)
     elif self.getProperty('Color Mode') == 1:  # Textures
         self._setupTextureColors()
     elif self.getProperty('Color Mode') == 2:  # URDF Colors
         self.model.setUrdfColors()
示例#11
0
    def __init__(self):
        super(dlg_copyMetricBinding, self).__init__()

        # - Init
        self.srcGlyphBounds = {}

        # - Combos
        # -- Mode of operation
        self.cmb_mode = QtGui.QComboBox()
        self.cmb_mode.addItems(['Active Layer', 'All Master Layers'])

        # -- Flag color slector
        self.cmb_flag = QtGui.QComboBox()
        colorNames = QtGui.QColor.colorNames()

        for i in range(len(colorNames)):
            self.cmb_flag.addItem(colorNames[i])
            self.cmb_flag.setItemData(i, QtGui.QColor(colorNames[i]),
                                      QtCore.Qt.DecorationRole)

        self.cmb_flag.setCurrentIndex(colorNames.index('lime'))

        # - Buttons
        self.btn_copy = QtGui.QPushButton('&Copy Expressions')
        self.btn_paste = QtGui.QPushButton('&Paste Expressions')
        self.btn_export = QtGui.QPushButton('&Export to File')
        self.btn_import = QtGui.QPushButton('&Import from File')
        self.btn_importFLC = QtGui.QPushButton('&Import from .FLC')

        self.btn_copy.clicked.connect(self.copyExpr)
        self.btn_paste.clicked.connect(self.pasteExpr)
        self.btn_export.clicked.connect(self.exportExpr)
        self.btn_import.clicked.connect(self.importExpr)
        self.btn_importFLC.clicked.connect(self.importExprFLC)

        self.btn_paste.setEnabled(False)
        #self.btn_export.setEnabled(False)
        #self.btn_import.setEnabled(False)

        # - Build layouts
        layoutV = QtGui.QVBoxLayout()
        layoutV.addWidget(
            QtGui.QLabel('Copy/Paste metric expressions to/from:'))
        layoutV.addWidget(self.cmb_mode)
        #layoutV.addWidget(QtGui.QLabel('Mark modified glyphs with:'))
        #layoutV.addWidget(self.cmb_flag)
        layoutV.addWidget(self.btn_copy)
        layoutV.addWidget(self.btn_paste)
        layoutV.addWidget(self.btn_export)
        layoutV.addWidget(self.btn_import)
        layoutV.addWidget(self.btn_importFLC)

        # - Set Widget
        self.setLayout(layoutV)
        self.setWindowTitle('%s %s' % (app_name, app_version))
        self.setGeometry(300, 300, 220, 120)
        self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)  # Always on top!!
        self.show()
示例#12
0
def toQProperty(propertyName, propertyValue):
    if 'color' in propertyName.lower() and isinstance(propertyValue, (list, tuple)) and len(propertyValue) == 3:
        return QtGui.QColor(propertyValue[0]*255.0, propertyValue[1]*255.0, propertyValue[2]*255.0)
    elif isinstance(propertyValue, np.float):
        return float(propertyValue)
    elif isinstance(propertyValue, (list, tuple, np.ndarray)) and len(propertyValue) and isinstance(propertyValue[0], np.float):
        return [float(x) for x in propertyValue]
    else:
        return propertyValue
示例#13
0
    def spawnBoardAffordance(self, randomize=False):
        self.boardLength = 1.5

        if randomize:

            position = [
                random.uniform(0.5, 0.8),
                random.uniform(-0.2, 0.2),
                random.uniform(0.5, 0.8)
            ]
            rpy = [
                random.choice((random.uniform(-35,
                                              35), random.uniform(70, 110))),
                random.uniform(-10, 10),
                random.uniform(-5, 5)
            ]
            zwidth = random.uniform(0.5, 1.0)

        else:
            if self.b.val:
                position = [0.4, 0.0, 1.]
            else:
                position = [0.6, 0.0, 1.]

            rpy = [90, 1, 0]
            zwidth = self.boardLength

        xwidth = 3.75 * .0254
        ywidth = 1.75 * .0254
        t = transformUtils.frameFromPositionAndRPY(position, rpy)
        t.Concatenate(self.b.computeGroundFrame(self.b.robotModel))
        xaxis = [1, 0, 0]
        yaxis = [0, 1, 0]
        zaxis = [0, 0, 1]
        for axis in (xaxis, yaxis, zaxis):
            t.TransformVector(axis, axis)

        self.affordance = segmentation.createBlockAffordance(
            t.GetPosition(),
            xaxis,
            yaxis,
            zaxis,
            xwidth,
            ywidth,
            zwidth,
            'board',
            parent='affordances')
        self.affordance.setProperty('Color', QtGui.QColor(200, 150, 100))
        t = self.affordance.actor.GetUserTransform()
        self.frame = vis.showFrame(t,
                                   'board frame',
                                   parent=self.affordance,
                                   visible=False,
                                   scale=0.2)
示例#14
0
def mesh_loader(gate_obj, ssv_id, tree_id, obj_type, color):
    start = time.time()
    mesh = gate_obj.syconn_gate.get_ssv_obj_mesh(ssv_id, obj_type)
    print("Download time:", time.time() - start)
    start = time.time()
    if len(mesh[0]) > 0:
        KnossosModule.skeleton.add_tree_mesh(tree_id, mesh[1], mesh[2],
                                             mesh[0], [], 4, False)
        KnossosModule.skeleton.set_tree_color(tree_id, QtGui.QColor(*color))
    print("Loading {}-mesh time (pure KNOSSOS): {:.2f} s".format(
        obj_type,
        time.time() - start))
示例#15
0
    def highlightLink(self, linkName, color):

        currentColor = self.robotModel.model.getLinkColor(linkName)
        if not currentColor.isValid():
            return

        if linkName not in self.previousColors:
            self.previousColors[linkName] = currentColor

        alpha = self.robotModel.getProperty('Alpha')
        newColor = QtGui.QColor(color[0]*255, color[1]*255, color[2]*255, alpha*255)

        self.robotModel.model.setLinkColor(linkName, newColor)
示例#16
0
	def __init__(self, data):
		super(trTableView, self).__init__()
				
		# - Init
		self.flag_valueChanged = QtGui.QColor('powderblue')

		# - Set 
		if data is not None: self.setTable(data)
		self.itemChanged.connect(self.markChange)

		# - Styling
		self.horizontalHeader().setStretchLastSection(True)
		self.setAlternatingRowColors(True)
		self.setShowGrid(False)
		self.setSortingEnabled(False)
		#self.resizeColumnsToContents()
		self.resizeRowsToContents()
示例#17
0
    def __init__(self, model, jointController, view):
        self.model = model
        self.jointController = jointController
        self.view = view

        self.colorNoHighlight = QtGui.QColor(190, 190, 190)
        self.colorHighlight = QtCore.Qt.red

        self.timer = TimerCallback()
        self.timer.callback = self.update
        self.timer.targetFps = 60
        #self.timer.start()

        self.collisionStateIds = []

        self.lastRobotStateMessage = None
        self.lastPlanMessage = None
        self.lastPlanCheckMessage = None

        lcmUtils.addSubscriber('EST_ROBOT_STATE', lcmdrc.robot_state_t, self.onRobotState)
        lcmUtils.addSubscriber('ROBOT_COLLISIONS', lcmdrc.robot_collision_array_t, self.onPlanCheck)
        lcmUtils.addSubscriber('CANDIDATE_MANIP_PLAN', lcmdrc.robot_plan_w_keyframes_t, self.onManipPlan)

        w = QtGui.QWidget()
        l = QtGui.QHBoxLayout(w)
        self.slider = QtGui.QSlider(QtCore.Qt.Horizontal)
        self.clearButton = QtGui.QPushButton('clear')
        self.zeroButton = QtGui.QPushButton('zero')

        l.addWidget(self.clearButton)
        l.addWidget(self.zeroButton)
        l.addWidget(self.slider)

        self.slider.connect(self.slider, 'valueChanged(int)', self.onSlider)
        self.slider.connect(self.zeroButton, 'clicked()', self.onZeroButtonClicked)
        self.slider.connect(self.clearButton, 'clicked()', self.onClearButtonClicked)

        ww = QtGui.QWidget()
        ll = QtGui.QVBoxLayout(ww)
        ll.addWidget(self.view)
        ll.addWidget(w)
        ll.setMargin(0)
        ww.show()
        ww.resize(800, 600)
        self.widget = ww
    def onAtlasStepParams(self,msg):
        if (msg.desired_step_spec.foot_index ==1):
            is_right_foot = True
        else:
            is_right_foot = False
        #print msg.desired_step_spec.foot_index , " and " , is_right_foot
        foot = msg.desired_step_spec.foot
        footTransform  = transformUtils.frameFromPositionAndRPY( foot.position , [0, 0, foot.yaw*180/math.pi])

        mesh,color = self.getMeshAndColor(is_right_foot)
        #color[1] = 0.75 ; color[2] = 0.25
        vis.updateFrame(footTransform, 'bdi foot', parent='foot placements', scale=0.2, visible=False)

        #bdi_step_mesh = om.findObjectByName('bdi step')
        #om.removeFromObjectModel(bdi_step_mesh)
        obj = vis.updatePolyData(mesh, 'bdi step', color=color, alpha=1.0, parent='foot placements', visible=False)
        obj.setProperty('Color',QtGui.QColor(color[0]*255.0,color[1]*255.0,color[2]*255.0))
        obj.actor.SetUserTransform(footTransform)
示例#19
0
    def pasteAnchor(self):
        font = pFont()
        dst_glyphs = {glyph.name: glyph for glyph in font.pGlyphs()}

        print 'WARN:\t Pasting Glyph Anchors to Font:%s;' % font.name
        for glyph_name, layer_anchors in self.srcGlyphAnchors.iteritems():
            if glyph_name in dst_glyphs:
                w_glyph = dst_glyphs[glyph_name]

                if self.cmb_mode.currentIndex == 1:
                    # - All master layers
                    for layer in w_glyph.masters():
                        if layer_anchors.has_key(layer.name):
                            w_glyph.clearAnchors(layer.name)

                            for anchor_name, anchor_pos in layer_anchors[
                                    layer.name]:
                                w_glyph.addAnchor(anchor_pos, anchor_name,
                                                  layer.name)

                            print 'PASTE MM:\t Glyph: /%s;\tLayer: %s.' % (
                                glyph_name, layer.name)
                        else:
                            print 'WARN:\t Glyph /%s - Layer %s not found!' % (
                                glyph_name, layer.name)
                else:
                    # - Active Layer only
                    w_glyph.clearAnchors()

                    for anchor_name, anchor_pos in layer_anchors:
                        w_glyph.addAnchor(anchor_pos, anchor_name)

                    print 'PASTE:\t Glyph: /%s;\tLayer: %s.' % (
                        glyph_name, w_glyph.layer().name)

                if self.cmb_flag.currentText != 'None':
                    w_glyph.setMark(
                        QtGui.QColor(self.cmb_flag.currentText).hue())

            else:
                print 'SKIP:\t Glyph /%s not found.' % glyph_name

        fl6.Update(CurrentFont())
示例#20
0
    def __init__(self):
        super(dlg_generateUnicode, self).__init__()
        self.n2u = {}
        # Insert your default folder for custom NAM files
        self.namFolder = r''
        # Set to True if you want to keep Unicodes for glyphs not in the NAM
        self.keepUnicodes = True
        # Enter color flag integer if you want to flag modified glyphs, or None
        self.flagModified = 1

        self.f = CurrentFont()
        self.fPath = self.f.path
        self.fFolder = os.path.dirname(self.fPath)
        self.fPathBase = os.path.splitext(os.path.basename(self.fPath))[0]
        self.fgnu = fontGlyphNameUnicodes(self.f)

        if not self.namFolder:
            if fl.userpath:
                self.namFolder = fl.userpath
            else:
                self.namFolder = self.fFolder

        # -- Flag color selector
        self.cmb_flag = QtGui.QComboBox()
        colorNames = QtGui.QColor.colorNames()

        for i in range(len(colorNames)):
            self.cmb_flag.addItem(colorNames[i])
            self.cmb_flag.setItemData(i, QtGui.QColor(colorNames[i]),
                                      QtCore.Qt.DecorationRole)

        self.cmb_flag.insertItem(0, 'None')
        self.cmb_flag.setCurrentIndex(0)

        # - Options
        self.chk_keepUnicodes = QtGui.QCheckBox(
            'Keep Unicodes for glyphs not in NAM')
        self.chk_keepUnicodes.setCheckState(QtCore.Qt.Checked)

        # - Buttons
        self.btn_open = QtGui.QPushButton('&Open NAM file')
        self.btn_open.clicked.connect(self.openNamFile)
        self.btn_save = QtGui.QPushButton('&Save NAM file')
        self.btn_save.clicked.connect(self.saveNamFile)
        self.btn_run = QtGui.QPushButton('&Generate Unicodes')
        self.btn_run.setEnabled(False)
        self.btn_run.clicked.connect(self.generateUnicodes)

        # - Build layouts
        layoutV = QtGui.QVBoxLayout()
        layoutV.addWidget(self.btn_open)
        layoutV.addWidget(QtGui.QLabel('Flag modified glyphs:'))
        layoutV.addWidget(self.cmb_flag)
        layoutV.addWidget(self.chk_keepUnicodes)
        layoutV.addWidget(self.btn_run)
        layoutV.addWidget(self.btn_save)

        # - Set Widget
        self.setLayout(layoutV)
        self.setWindowTitle('%s %s' % (app_name, __version__))
        self.setGeometry(300, 300, 220, 120)
        self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)  # Always on top!!
        self.show()
示例#21
0
 def getColorFlag(self):
     if self.cmb_flag.currentText != 'None':
         return QtGui.QColor(self.cmb_flag.currentText).hue()
     else:
         return None
示例#22
0
    def __init__(self, uid, view, seed_pose, irisDriver, existing_region=None):

        d = DebugData()
        self.uid = uid
        vis.PolyDataItem.__init__(self, "IRIS region {:d}".format(uid),
                                  d.getPolyData(), view)
        self.transform = seed_pose
        d.addSphere((0, 0, 0), radius=0.02)
        self.seedObj = vis.showPolyData(
            d.getPolyData(),
            'region seed',
            parent=om.getOrCreateContainer('IRIS region seeds'))
        self.seedObj.actor.SetUserTransform(self.transform)
        self.frameObj = vis.showFrame(self.transform,
                                      'region seed frame',
                                      scale=0.2,
                                      visible=False,
                                      parent=self.seedObj)
        self.frameObj.setProperty('Edit', True)

        self.frameObj.widget.HandleRotationEnabledOff()

        terrain = om.findObjectByName('HEIGHT_MAP_SCENE')
        if terrain:
            rep = self.frameObj.widget.GetRepresentation()
            rep.SetTranslateAxisEnabled(2, False)
            rep.SetRotateAxisEnabled(0, False)
            rep.SetRotateAxisEnabled(1, False)

            pos = np.array(self.frameObj.transform.GetPosition())
            polyData = filterUtils.removeNonFinitePoints(terrain.polyData)
            if polyData.GetNumberOfPoints():
                polyData = segmentation.labelDistanceToLine(
                    polyData, pos, pos + [0, 0, 1])
                polyData = segmentation.thresholdPoints(
                    polyData, 'distance_to_line', [0.0, 0.1])
                if polyData.GetNumberOfPoints():
                    pos[2] = np.nanmax(
                        vnp.getNumpyFromVtk(polyData, 'Points')[:, 2])
                    self.frameObj.transform.Translate(
                        pos - np.array(self.frameObj.transform.GetPosition()))

            self.placer = PlacerWidget(view, self.seedObj, terrain)
            self.placer.start()
        else:
            self.frameObj.setProperty('Edit', True)
            self.frameObj.setProperty('Visible', True)

        self.driver = irisDriver
        self.safe_region = None
        self.addProperty('Visible', True)
        self.addProperty('Enabled for Walking', True)
        self.addProperty('Alpha', 1.0)
        self.addProperty('Color', QtGui.QColor(200, 200, 20))

        self.frameObj.connectFrameModified(self.onFrameModified)
        if existing_region is None:
            self.onFrameModified(self.frameObj)
        else:
            self.setRegion(existing_region)

        self.setProperty('Alpha', 0.5)
        self.setProperty('Color', QtGui.QColor(220, 220, 220))
示例#23
0
    def __init__(self):
        super(dlg_copyMetrics, self).__init__()

        # - Init
        self.srcGlyphBounds = {}

        # - Combos
        # -- Mode of operation
        self.cmb_mode = QtGui.QComboBox()
        self.cmb_mode.addItems(['Active Layer', 'All Master Layers'])

        # -- Flag color slector
        self.cmb_flag = QtGui.QComboBox()
        colorNames = QtGui.QColor.colorNames()

        for i in range(len(colorNames)):
            self.cmb_flag.addItem(colorNames[i])
            self.cmb_flag.setItemData(i, QtGui.QColor(colorNames[i]),
                                      QtCore.Qt.DecorationRole)

        self.cmb_flag.setCurrentIndex(colorNames.index('lime'))

        # - Buttons
        self.btn_copy = QtGui.QPushButton('&Copy Metric values')
        self.btn_pasteADV = QtGui.QPushButton(
            '&Paste Metric values: LSB, Advance')
        self.btn_pasteRSB = QtGui.QPushButton('&Paste Metric values: LSB, RSB')
        self.btn_export = QtGui.QPushButton('&Export to File (TypeRig *.json)')
        self.btn_import = QtGui.QPushButton(
            '&Import from File (TypeRig *.json)')
        self.btn_importAFM = QtGui.QPushButton(
            '&Import from Adobe Font Metrics (*.AFM)')
        self.btn_importAFM.setEnabled(False)

        self.btn_copy.clicked.connect(self.copyExpr)
        self.btn_pasteADV.clicked.connect(lambda: self.pasteExpr(sbMode=False))
        self.btn_pasteRSB.clicked.connect(lambda: self.pasteExpr(sbMode=True))
        self.btn_export.clicked.connect(self.exportExpr)
        self.btn_import.clicked.connect(self.importExpr)
        self.btn_importAFM.clicked.connect(self.importExprAFM)

        self.btn_pasteADV.setEnabled(False)
        self.btn_pasteRSB.setEnabled(False)
        #self.btn_export.setEnabled(False)
        #self.btn_import.setEnabled(False)

        # - Build layouts
        layoutV = QtGui.QVBoxLayout()
        layoutV.addWidget(QtGui.QLabel('Copy/Paste metrics to/from:'))
        layoutV.addWidget(self.cmb_mode)
        #layoutV.addWidget(QtGui.QLabel('Mark modified glyphs with:'))
        #layoutV.addWidget(self.cmb_flag)
        layoutV.addWidget(self.btn_copy)
        layoutV.addWidget(self.btn_pasteADV)
        layoutV.addWidget(self.btn_pasteRSB)
        layoutV.addWidget(self.btn_export)
        layoutV.addWidget(self.btn_import)
        layoutV.addWidget(self.btn_importAFM)

        # - Set Widget
        self.setLayout(layoutV)
        self.setWindowTitle('%s %s' % (app_name, app_version))
        self.setGeometry(300, 300, 280, 140)
        self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)  # Always on top!!
        self.show()
示例#24
0
 def markChange(self, item):
     item.setBackground(QtGui.QColor('powderblue'))
示例#25
0
def showClusterObjects(clusters, parent):

    colors = [
        QtCore.Qt.red,
        QtCore.Qt.blue,
        QtCore.Qt.yellow,
        QtCore.Qt.green,
        QtCore.Qt.magenta,
        QtCore.Qt.cyan,
        QtCore.Qt.darkCyan,
        QtCore.Qt.darkGreen,
        QtCore.Qt.darkMagenta,
    ]

    colors = [QtGui.QColor(c) for c in colors]
    colors = [(c.red() / 255.0, c.green() / 255.0, c.blue() / 255.0)
              for c in colors]

    objects = []

    for i, cluster in enumerate(clusters):
        name = "object %d" % i
        color = colors[i % len(colors)]
        clusterObj = showPolyData(cluster.mesh,
                                  name,
                                  color=color,
                                  parent=parent,
                                  alpha=1.0)
        clusterFrame = showFrame(cluster.frame,
                                 name + " frame",
                                 scale=0.2,
                                 visible=False,
                                 parent=clusterObj)
        clusterBox = showPolyData(
            cluster.box,
            name + " box",
            color=color,
            parent=clusterObj,
            alpha=0.6,
            visible=False,
        )
        clusterPoints = showPolyData(
            cluster.points,
            name + " points",
            color=color,
            parent=clusterObj,
            visible=False,
            alpha=1.0,
        )
        if hasattr(cluster, "oriented_frame"):
            orientedFrame = showFrame(
                cluster.oriented_frame,
                name + " oriented frame",
                scale=0.2,
                visible=False,
                parent=clusterObj,
            )

        clusterPoints.setProperty("Point Size", 7)
        clusterPoints.colorBy(None)
        clusterObj.data = cluster
        objects.append(clusterObj)

        for obj in [clusterObj, clusterBox, clusterPoints]:
            obj.actor.SetUserTransform(cluster.frame)

    return objects
示例#26
0
def getRobotBlueColor():
    return QtGui.QColor(170, 255, 255)
示例#27
0
def getRobotOrangeColor():
    return QtGui.QColor(255, 190, 0)
示例#28
0
def getRobotGrayColor():
    return QtGui.QColor(177, 180, 190)
示例#29
0
 def _updateModelColor(self):
     if self.getProperty('Textures'):
         self._setupTextureColors()
     elif not self.useUrdfColors:
         color = QtGui.QColor(*[c*255 for c in self.getProperty('Color')])
         self.model.setColor(color)
示例#30
0
	def setTable(self, data, data_check=[], reset=False):
		name_row, name_column = [], []
		self.blockSignals(True)

		self.setColumnCount(max(map(len, data.values())))
		self.setRowCount(len(data.keys()))

		# - Populate
		for n, layer in enumerate(sorted(data.keys())):
			name_row.append(layer)

			for m, key in enumerate(data[layer].keys()):
				# -- Build name column
				name_column.append(key)
				
				# -- Add first data column
				newitem = QtGui.QTableWidgetItem(str(data[layer][key])) if m == 0 else QtGui.QTableWidgetItem()
				# -- Selectively colorize missing data
				if m == 0 and len(data_check) and data[layer][key] not in data_check: newitem.setBackground(QtGui.QColor('red'))
				# -- Build Checkbox columns
				if m > 0: newitem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
				if m > 0: newitem.setCheckState(QtCore.Qt.Unchecked if not data[layer][key] else QtCore.Qt.Checked) 

				self.setItem(n, m, newitem)
				
		self.setHorizontalHeaderLabels(name_column)
		self.setVerticalHeaderLabels(name_row)
		self.blockSignals(False)