@@ -42,28 +42,35 @@ def destroy(self):
42
42
def glyphUpdated (self ):
43
43
status = "❌"
44
44
45
- currentGlyph = CurrentGlyph ()
45
+ glyph0 = CurrentGlyph ()
46
+ sourceLayer0 = currentGlyph .layer
47
+ sourceLayer1 = None
48
+
46
49
self .referenceGlyphLayer .setPosition ((currentGlyph .width + 30 , 0 ))
47
50
self .referenceGlyphLayer .clearSublayers ()
48
51
self .previewGlyphLayer .setPosition ((currentGlyph .width + 30 , 0 ))
49
52
self .previewGlyphLayer .clearSublayers ()
50
53
51
54
interpValue = self .controller .w .getItemValue ("interpolationSlider" )
52
55
53
- if currentGlyph .name in self .controller .source0 and currentGlyph .name in self .controller .source1 :
56
+ # Check if same layer exists
57
+ for layer in self .controller .source1 .layers :
58
+ if layer .name == sourceLayer0 .name :
59
+ sourceLayer1 = layer
54
60
55
- glyph0 = self .controller .source0 [currentGlyph .name ]
56
- glyph1 = self .controller .source1 [currentGlyph .name ]
61
+ if sourceLayer1 :
62
+ if glyph0 .name in sourceLayer1 :
63
+ glyph1 = sourceLayer1 [currentGlyph .name ]
57
64
58
- self .interpolatedGlyph = RGlyph ()
59
- # Interpolate
60
- self .interpolatedGlyph .interpolate (interpValue , glyph0 , glyph1 )
65
+ self .interpolatedGlyph = RGlyph ()
66
+ # Interpolate
67
+ self .interpolatedGlyph .interpolate (interpValue , glyph0 , glyph1 )
61
68
62
- if glyph0 == glyph1 :
63
- status = "⚪️"
64
- elif len (self .interpolatedGlyph .contours ) > 0 :
65
- status = "✅"
66
-
69
+ if glyph0 == glyph1 :
70
+ status = "⚪️"
71
+ elif len (self .interpolatedGlyph .contours ) > 0 :
72
+ status = "✅"
73
+
67
74
self .controller .w .getItem ("compatibilityText" ).set (f"Compatibility: { status } " )
68
75
69
76
if not status == "❌" :
@@ -83,53 +90,54 @@ def drawGlyph(self):
83
90
glyphPath = self .interpolatedGlyph .getRepresentation ("merz.CGPath" )
84
91
glyphLayer .setPath (glyphPath )
85
92
86
- for contour in self .interpolatedGlyph .contours :
87
- for bPoint in contour .bPoints :
88
- inLoc = self .addPoints (bPoint .anchor , bPoint .bcpIn )
89
- outLoc = self .addPoints (bPoint .anchor , bPoint .bcpOut )
90
-
91
- self .referenceGlyphLayer .appendLineSublayer (
92
- startPoint = inLoc ,
93
- endPoint = bPoint .anchor ,
94
- strokeWidth = .5 ,
95
- strokeColor = (isDarkMode , isDarkMode , isDarkMode , 1 ),
96
- )
97
- self .referenceGlyphLayer .appendLineSublayer (
98
- startPoint = bPoint .anchor ,
99
- endPoint = outLoc ,
100
- strokeWidth = .5 ,
101
- strokeColor = (isDarkMode , isDarkMode , isDarkMode , 1 ),
102
- )
103
- self .referenceGlyphLayer .appendSymbolSublayer (
104
- position = outLoc ,
105
- imageSettings = dict (
106
- name = "oval" ,
107
- size = (5 , 5 ),
108
- fillColor = (not isDarkMode , not isDarkMode , not isDarkMode , 1 ),
109
- strokeColor = (isDarkMode , isDarkMode , isDarkMode , 1 ),
110
- strokeWidth = .5 ,
93
+ if self .controller .w .getItemValue ('showPointsCheckbox' ):
94
+ for contour in self .interpolatedGlyph .contours :
95
+ for bPoint in contour .bPoints :
96
+ inLoc = self .addPoints (bPoint .anchor , bPoint .bcpIn )
97
+ outLoc = self .addPoints (bPoint .anchor , bPoint .bcpOut )
98
+
99
+ self .referenceGlyphLayer .appendLineSublayer (
100
+ startPoint = inLoc ,
101
+ endPoint = bPoint .anchor ,
102
+ strokeWidth = .5 ,
103
+ strokeColor = (isDarkMode , isDarkMode , isDarkMode , 1 ),
104
+ )
105
+ self .referenceGlyphLayer .appendLineSublayer (
106
+ startPoint = bPoint .anchor ,
107
+ endPoint = outLoc ,
108
+ strokeWidth = .5 ,
109
+ strokeColor = (isDarkMode , isDarkMode , isDarkMode , 1 ),
111
110
)
112
- )
113
- self . referenceGlyphLayer . appendSymbolSublayer (
114
- position = inLoc ,
115
- imageSettings = dict (
116
- name = "oval" ,
117
- size = ( 5 , 5 ),
118
- fillColor = ( not isDarkMode , not isDarkMode , not isDarkMode , 1 ),
119
- strokeColor = ( isDarkMode , isDarkMode , isDarkMode , 1 ) ,
120
- strokeWidth = .5 ,
111
+ self . referenceGlyphLayer . appendSymbolSublayer (
112
+ position = outLoc ,
113
+ imageSettings = dict (
114
+ name = "oval" ,
115
+ size = ( 5 , 5 ) ,
116
+ fillColor = ( not isDarkMode , not isDarkMode , not isDarkMode , 1 ),
117
+ strokeColor = ( isDarkMode , isDarkMode , isDarkMode , 1 ),
118
+ strokeWidth = .5 ,
119
+ )
121
120
)
122
- )
123
- self .referenceGlyphLayer .appendSymbolSublayer (
124
- position = bPoint .anchor ,
125
- imageSettings = dict (
126
- name = "oval" ,
127
- size = (5 , 5 ),
128
- fillColor = (not isDarkMode , not isDarkMode , not isDarkMode , 1 ),
129
- strokeColor = (isDarkMode , isDarkMode , isDarkMode , 1 ),
130
- strokeWidth = .5 ,
121
+ self .referenceGlyphLayer .appendSymbolSublayer (
122
+ position = inLoc ,
123
+ imageSettings = dict (
124
+ name = "oval" ,
125
+ size = (5 , 5 ),
126
+ fillColor = (not isDarkMode , not isDarkMode , not isDarkMode , 1 ),
127
+ strokeColor = (isDarkMode , isDarkMode , isDarkMode , 1 ),
128
+ strokeWidth = .5 ,
129
+ )
130
+ )
131
+ self .referenceGlyphLayer .appendSymbolSublayer (
132
+ position = bPoint .anchor ,
133
+ imageSettings = dict (
134
+ name = "oval" ,
135
+ size = (5 , 5 ),
136
+ fillColor = (not isDarkMode , not isDarkMode , not isDarkMode , 1 ),
137
+ strokeColor = (isDarkMode , isDarkMode , isDarkMode , 1 ),
138
+ strokeWidth = .5 ,
139
+ )
131
140
)
132
- )
133
141
134
142
def drawPreviewGlyph (self ):
135
143
# Draw a filled in version of the interpolated glyph
@@ -178,6 +186,7 @@ def build(self):
178
186
(This is a PopUpButton. ...) @secondSourceButton
179
187
Compatibility: ⚪️ @compatibilityText
180
188
---
189
+ [X] Show Points @showPointsCheckbox
181
190
--X-- @interpolationSlider
182
191
"""
183
192
descriptionData = dict (
@@ -233,6 +242,9 @@ def firstSourceButtonCallback(self, sender):
233
242
def secondSourceButtonCallback (self , sender ):
234
243
self .optionsChanged ()
235
244
245
+ def showPointsCheckboxCallback (self , sender ):
246
+ postEvent (eventName )
247
+
236
248
def collectFonts (self ):
237
249
firstSourceButton = self .w .getItem ("firstSourceButton" )
238
250
secondSourceButton = self .w .getItem ("secondSourceButton" )
@@ -329,4 +341,4 @@ def optionsChanged(self):
329
341
debug = True
330
342
)
331
343
332
- InterpolationSliderInterface ( )
344
+ OpenWindow ( InterpolationSliderInterface )
0 commit comments