| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | __title__ = "FreeCAD result mechanical task panel" |
| | __author__ = "PMcB" |
| | __url__ = "https://www.freecad.org" |
| |
|
| | |
| | |
| | |
| |
|
| | import FreeCADGui |
| | from pivy import coin |
| |
|
| | """ |
| | Place Label on the screen with an optional image. |
| | positions on screen: |
| | (-.9, .9, 0) top left |
| | (.9, .9, 0) upper right |
| | (-.9, -.9, 0) lower left |
| | (.9, -.9, 0) lower right |
| | """ |
| |
|
| |
|
| | class createLabel: |
| | def __init__(self, trans, text, image="") -> None: |
| | self.textSep = coin.SoSeparator() |
| | self.cam = coin.SoOrthographicCamera() |
| | self.cam.aspectRatio = 1 |
| | self.cam.viewportMapping = coin.SoCamera.LEAVE_ALONE |
| |
|
| | self.trans = coin.SoTranslation() |
| | self.trans.translation = trans |
| | self.translation = trans |
| | self.color = coin.SoBaseColor() |
| | self.color.rgb = (0, 0, 0) |
| |
|
| | self.myFont = coin.SoFont() |
| | self.myFont.name = "Arial,FreeSans,sans" |
| | |
| | self.size = 20 |
| | self.myFont.size.setValue(self.size) |
| |
|
| | self.SoText2 = coin.SoText2() |
| | self.SoText2.string = text |
| |
|
| | self.textSep.addChild(self.cam) |
| | self.textSep.addChild(self.trans) |
| | self.textSep.addChild(self.color) |
| | self.textSep.addChild(self.myFont) |
| | self.textSep.addChild(self.SoText2) |
| | self.activeDoc = FreeCADGui.ActiveDocument |
| | self.view = self.activeDoc.ActiveView |
| | self.viewer = self.view.getViewer() |
| | self.render = self.viewer.getSoRenderManager() |
| | self.isimage = False |
| | if image != "": |
| | self.add_image(image) |
| | self.isimage = True |
| | self.sup = self.render.addSuperimposition(self.textSep) |
| | self.displayed = True |
| |
|
| | |
| | def get_position(self): |
| | return self.translation |
| |
|
| | |
| | def set_position(self, trans): |
| | self.trans.translation = trans |
| | self.translation = trans |
| |
|
| | |
| | def set_font(self, font): |
| | self.myFont.name = font |
| |
|
| | |
| | def set_font_size(self, font_size): |
| | self.myFont.size.setValue(font_size) |
| |
|
| | |
| | def set_text(self, text): |
| | self.SoText2.string = text |
| |
|
| | |
| | def set_colour(self, colour): |
| | self.color.rgb = colour |
| | self.textSep.addChild(self.color) |
| |
|
| | |
| | def add_image(self, image): |
| | self.remove_image() |
| | self.isimage = True |
| | self.myImage = coin.SoImage() |
| | self.myImage.filename.setValue(image) |
| | self.textSep.addChild(self.myImage) |
| |
|
| | |
| | def remove_image(self): |
| | if self.isimage: |
| | |
| | self.textSep.removeChild(self.myImage) |
| | self.isimage = False |
| |
|
| | |
| | def display(self): |
| | if not self.displayed: |
| | |
| | self.sup = self.render.addSuperimposition(self.textSep) |
| | self.displayed = True |
| |
|
| | |
| | def hide(self): |
| | |
| | if self.displayed: |
| | self.render.removeSuperimposition(self.sup) |
| | self.displayed = False |
| |
|
| | |
| | def help(self): |
| | print( |
| | """ |
| | Place Label on the screen with an optional image. |
| | Create an instance: |
| | import CreateLabels as CL |
| | label = CL.creatLabel(<position of label>, <title of label>, <optional image>) |
| | e.g.: |
| | label1 = CL.createLabel( (-0.7, -0.90, 0), "this is text") |
| | label2 = CL.createLabel( (+0.5, -0.90, 0), "this is a image", image = "mesh.jpg") |
| | Positions on screen: |
| | (-.9, .9, 0) top left |
| | (.9, .9, 0) upper right |
| | (-.9, -.9, 0) lower left |
| | (.9, -.9, 0) lower right |
| | |
| | The following function are available: |
| | label1.set_position((0.7, 0.50, 0)) |
| | pos= label1.get_position() |
| | label1.set_font("FreeMono,FreeSans,sans") |
| | label1.set_font_size(20) |
| | label1.set_text("hello world") |
| | label1.set_colour((0,1,0)) # colour of text |
| | label1.add_image("opera.jpg") |
| | label1.remove_image() |
| | label1.hide() - hide the label |
| | label1.display() - display the label, after hide |
| | """ |
| | ) |
| |
|
| |
|
| | if __name__ == "__main__": |
| | label1 = createLabel((-0.98, 0.90, 0), "this a new text") |
| | """ |
| | Examples: |
| | import CreateLabels as CL |
| | label1 = CL.createLabel( (+0.5, -0.90, 0), "this is a image", image = "mesh.jpg") |
| | label2 = CL.createLabel( (-0.7, -0.90, 0), "this is text") |
| | |
| | label1.set_colour((0,1,0)) |
| | label1.remove_image() |
| | label1.add_image("opera.jpg") |
| | label1.set_text("hello world") |
| | label1.set_position((+0.7, 0.50, 0)) |
| | label1.set_font("FreeMono,FreeSans,sans") |
| | label1.hide() |
| | """ |
| |
|