File: TestMathTextActor.py

package info (click to toggle)
paraview 5.13.2%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 544,220 kB
  • sloc: cpp: 3,374,605; ansic: 1,332,409; python: 150,381; xml: 122,166; sql: 65,887; sh: 7,317; javascript: 5,262; yacc: 4,417; java: 3,977; perl: 2,363; lex: 1,929; f90: 1,397; makefile: 170; objc: 153; tcl: 59; pascal: 50; fortran: 29
file content (112 lines) | stat: -rwxr-xr-x 3,392 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/env python

from vtkmodules.vtkCommonCore import (
    reference,
    vtkPoints,
    vtkUnsignedCharArray,
)

from vtkmodules.vtkCommonDataModel import (
    vtkCellArray,
    vtkCellData,
    vtkPolyData,
)

from vtkmodules.vtkRenderingCore import (
    vtkActor2D,
    vtkPolyDataMapper2D,
    vtkProperty2D,
    vtkRenderer,
    vtkRenderWindow,
    vtkRenderWindowInteractor,
    vtkTextActor,
    vtkTextProperty,
)

from vtkmodules.vtkRenderingFreeType import (
    vtkMathTextUtilities,
)

import vtkmodules.vtkRenderingMatplotlib
import vtkmodules.vtkRenderingOpenGL2
import vtkmodules.vtkRenderingUI

def setupTextActor(actor, anchor):
    p = actor.GetTextProperty()
    label = (str(p.GetVerticalJustificationAsString()[0]) +
             str(p.GetJustificationAsString()[0]) + " " +
             "$\\theta = " + str(round(p.GetOrientation())) + "$")
    actor.SetInput(label)

    # Add the anchor point:
    pos = actor.GetPosition()
    col = p.GetColor()
    ptId = reference((anchor.GetPoints().InsertNextPoint(pos[0], pos[1], 0.),))
    anchor.GetVerts().InsertNextCell(1, ptId)
    anchor.GetCellData().GetScalars().InsertNextTuple4(
        col[0] * 255, col[1] * 255, col[2] * 255, 255)

ren = vtkRenderer()

width = 600
height = 600
x = ( 100, 300, 500 )
y = ( 100, 300, 500 )

# Render the anchor points to check alignment:
anchors = vtkPolyData()
points = vtkPoints()
anchors.SetPoints(points)
verts = vtkCellArray()
anchors.SetVerts(verts)
colors = vtkUnsignedCharArray()
colors.SetNumberOfComponents(4)
anchors.GetCellData().SetScalars(colors)

for row in range(3):
    for col in range(3):
        actor = vtkTextActor()
        if row == 0:
            actor.GetTextProperty().SetJustificationToRight()
        elif row == 1:
            actor.GetTextProperty().SetJustificationToCentered()
        elif row == 2:
            actor.GetTextProperty().SetJustificationToLeft()
        if col == 0:
            actor.GetTextProperty().SetVerticalJustificationToBottom()
        elif col == 1:
            actor.GetTextProperty().SetVerticalJustificationToCentered()
        elif col == 2:
            actor.GetTextProperty().SetVerticalJustificationToTop()
        actor.GetTextProperty().SetFontSize(22)
        actor.GetTextProperty().SetOrientation(45.0 * (3 * row + col))
        actor.GetTextProperty().SetColor(0.75, .2 + col * .26, .2 + row * .26)
        actor.GetTextProperty().SetBackgroundColor(0., 1. - col * .26, 1. - row * .26)
        actor.GetTextProperty().SetBackgroundOpacity(0.25)
        actor.GetTextProperty().SetFrame((row + col) % 9 == 0)
        actor.GetTextProperty().SetFrameColor(
            (0., 1.)[col > 0], (0., 1.)[col == 1], (0., 1.)[col < 2])
        actor.GetTextProperty().SetFrameWidth(1)
        actor.SetPosition(x[col], y[row])
        setupTextActor(actor, anchors)
        ren.AddActor(actor)

anchorMapper = vtkPolyDataMapper2D()
anchorMapper.SetInputData(anchors)
anchorActor = vtkActor2D()
anchorActor.SetMapper(anchorMapper)
anchorActor.GetProperty().SetPointSize(5)
ren.AddActor(anchorActor)

renWin = vtkRenderWindow()
renWin.AddRenderer(ren)
iren = vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)

ren.SetBackground(0.0, 0.0, 0.0)
renWin.SetSize(width, height)

renWin.SetMultiSamples(0)
iren.Initialize()
if 'rtTester' not in locals() or rtTester.IsInteractiveModeSpecified():
    iren.Start()