Esempio n. 1
0
 def __init__(self):
     color = coin.SoBaseColor()
     color.rgb = FreeCADGui.draftToolBar.getDefaultColor("snap")
     self.marker = coin.SoMarkerSet() # this is the marker symbol
     self.marker.markerIndex = FreeCADGui.getMarkerIndex("", 9)
     self.coords = coin.SoCoordinate3() # this is the coordinate
     self.coords.point.setValue((0,0,0))
     node = coin.SoAnnotation()
     node.addChild(self.coords)
     node.addChild(color)
     node.addChild(self.marker)
     Tracker.__init__(self,children=[node],name="snapTracker")
Esempio n. 2
0
 def onChanged(self,vobj,prop):
     if prop == "ShowNodes":
         if hasattr(self,"nodes"):
             vobj.Annotation.removeChild(self.nodes)
             del self.nodes
         if vobj.ShowNodes:
             from pivy import coin
             self.nodes = coin.SoAnnotation()
             self.coords = coin.SoCoordinate3()
             self.mat = coin.SoMaterial()
             self.pointstyle = coin.SoDrawStyle()
             self.pointstyle.style = coin.SoDrawStyle.POINTS
             self.pointset = coin.SoType.fromName("SoBrepPointSet").createInstance()
             self.linestyle = coin.SoDrawStyle()
             self.linestyle.style = coin.SoDrawStyle.LINES
             self.lineset = coin.SoType.fromName("SoBrepEdgeSet").createInstance()
             self.facestyle = coin.SoDrawStyle()
             self.facestyle.style = coin.SoDrawStyle.FILLED
             self.shapehints = coin.SoShapeHints()
             self.shapehints.faceType = coin.SoShapeHints.UNKNOWN_FACE_TYPE
             self.fmat = coin.SoMaterial()
             self.fmat.transparency.setValue(0.75)
             self.faceset = coin.SoIndexedFaceSet()
             self.nodes.addChild(self.coords)
             self.nodes.addChild(self.mat)
             self.nodes.addChild(self.pointstyle)
             self.nodes.addChild(self.pointset)
             self.nodes.addChild(self.linestyle)
             self.nodes.addChild(self.lineset)
             self.nodes.addChild(self.facestyle)
             self.nodes.addChild(self.shapehints)
             self.nodes.addChild(self.fmat)
             self.nodes.addChild(self.faceset)
             vobj.Annotation.addChild(self.nodes)
             self.updateData(vobj.Object,"Nodes")
             self.onChanged(vobj,"NodeColor")
             self.onChanged(vobj,"NodeLine")
             self.onChanged(vobj,"NodeSize")
     elif prop == "NodeColor":
         if hasattr(self,"mat"):
             l = vobj.NodeColor
             self.mat.diffuseColor.setValue([l[0],l[1],l[2]])
             self.fmat.diffuseColor.setValue([l[0],l[1],l[2]])
     elif prop == "NodeLine":
         if hasattr(self,"linestyle"):
             self.linestyle.lineWidth = vobj.NodeLine
     elif prop == "NodeSize":
         if hasattr(self,"pointstyle"):
             self.pointstyle.pointSize = vobj.NodeSize
     elif prop == "NodeType":
         self.updateData(vobj.Object,"Nodes")
     else:
         ArchComponent.ViewProviderComponent.onChanged(self,vobj,prop)
Esempio n. 3
0
 def __init__(self):
     color = coin.SoBaseColor()
     color.rgb = FreeCADGui.DDADockWidget.getDefaultColor("snap")
     self.marker = coin.SoMarkerSet()  # this is the marker symbol
     self.marker.markerIndex = coin.SoMarkerSet.CIRCLE_FILLED_9_9
     self.coords = coin.SoCoordinate3()  # this is the coordinate
     self.coords.point.setValue((0, 0, 0))
     node = coin.SoAnnotation()
     node.addChild(self.coords)
     node.addChild(color)
     node.addChild(self.marker)
     Tracker.__init__(self, children=[node])
Esempio n. 4
0
 def highlight_editable_objects(self):
     """Highlight editable Draft objects from the selection."""
     for obj in self.editable_objects:
         self.original_view_settings[obj.Name] = {
             'Visibility': obj.ViewObject.Visibility,
             'PointSize': obj.ViewObject.PointSize,
             'PointColor': obj.ViewObject.PointColor,
             'LineColor': obj.ViewObject.LineColor}
         obj.ViewObject.Visibility = True
         obj.ViewObject.PointSize = 10
         obj.ViewObject.PointColor = (1.0, 0.0, 0.0)
         obj.ViewObject.LineColor = (1.0, 0.0, 0.0)
         xray = coin.SoAnnotation()
         xray.addChild(obj.ViewObject.RootNode.getChild(2).getChild(0))
         xray.setName("xray")
         obj.ViewObject.RootNode.addChild(xray)
Esempio n. 5
0
 def attach(self,vobj):
     self.Object = vobj.Object
     # adding arrows
     rn = vobj.RootNode
     self.col = coin.SoBaseColor()
     self.setColor()
     ds = coin.SoDrawStyle()
     ds.style = coin.SoDrawStyle.LINES
     self.lcoords = coin.SoCoordinate3()
     ls = coin.SoLineSet()
     ls.numVertices.setValues([2,4,4,2,4,4,2,4,4,2,4,4])
     pt = coin.SoAnnotation()
     pt.addChild(self.col)
     pt.addChild(ds)
     pt.addChild(self.lcoords)
     pt.addChild(ls)
     rn.addChild(pt)
     self.setVerts()
Esempio n. 6
0
    def __init__(self, pos, object_name, node_name, marker_type, marker_size):

        self.pos = pos
        self.name = node_name

        self.inactive = False

        self.color = coin.SoBaseColor()

        self.marker = coin.SoMarkerSet()

        self.marker.markerIndex = Gui.getMarkerIndex(marker_type, marker_size)

        self.coords = coin.SoCoordinate3()
        self.coords.point.setValue((pos.x, pos.y, pos.z))

        selnode = None

        if self.inactive:
            selnode = coin.SoSeparator()

        else:
            selnode = coin.SoType.fromName("SoFCSelection").createInstance()
            selnode.documentName.setValue(App.ActiveDocument.Name)
            selnode.objectName.setValue(object_name)
            selnode.subElementName.setValue(node_name)

        node = coin.SoAnnotation()

        selnode.addChild(self.coords)
        selnode.addChild(self.color)
        selnode.addChild(self.marker)

        node.addChild(selnode)

        ontop = not self.inactive

        Tracker.__init__(
            self, children=[node], ontop=ontop, name="EditTracker")

        self.on()
Esempio n. 7
0
 def __init__(self, pos=Vector(0, 0, 0), name="None", idx=0, objcol=None):
     color = coin.SoBaseColor()
     if objcol:
         color.rgb = objcol[:3]
     else:
         color.rgb = FreeCADGui.draftToolBar.getDefaultColor("snap")
     self.marker = coin.SoMarkerSet()  # this is the marker symbol
     self.marker.markerIndex = coin.SoMarkerSet.SQUARE_FILLED_9_9
     self.coords = coin.SoCoordinate3()  # this is the coordinate
     self.coords.point.setValue((pos.x, pos.y, pos.z))
     selnode = coin.SoType.fromName("SoFCSelection").createInstance()
     selnode.documentName.setValue(FreeCAD.ActiveDocument.Name)
     selnode.objectName.setValue(name)
     selnode.subElementName.setValue("EditNode" + str(idx))
     node = coin.SoAnnotation()
     selnode.addChild(self.coords)
     selnode.addChild(color)
     selnode.addChild(self.marker)
     node.addChild(selnode)
     Tracker.__init__(self, children=[node], ontop=True)
     self.on()
Esempio n. 8
0
 def __init__(self,
              pos=Vector(0, 0, 0),
              name=None,
              idx=0,
              objcol=None,
              marker=FreeCADGui.getMarkerIndex("quad", 9),
              inactive=False):
     self.color = coin.SoBaseColor()
     if objcol:
         self.color.rgb = objcol[:3]
     else:
         self.color.rgb = FreeCADGui.draftToolBar.getDefaultColor("snap")
     self.marker = coin.SoMarkerSet()  # this is the marker symbol
     self.marker.markerIndex = marker
     self.coords = coin.SoCoordinate3()  # this is the coordinate
     self.coords.point.setValue((pos.x, pos.y, pos.z))
     if inactive:
         self.selnode = coin.SoSeparator()
     else:
         self.selnode = coin.SoType.fromName(
             "SoFCSelection").createInstance()
         if name:
             self.selnode.useNewSelection = False
             self.selnode.documentName.setValue(FreeCAD.ActiveDocument.Name)
             self.selnode.objectName.setValue(name)
             self.selnode.subElementName.setValue("EditNode" + str(idx))
     node = coin.SoAnnotation()
     self.selnode.addChild(self.coords)
     self.selnode.addChild(self.color)
     self.selnode.addChild(self.marker)
     node.addChild(self.selnode)
     ontop = not inactive
     Tracker.__init__(self,
                      children=[node],
                      ontop=ontop,
                      name="editTracker")
     self.on()