sketchup-api-stubs 0.7.8 → 0.7.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -148
  3. data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +509 -523
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -478
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -693
  16. data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
  17. data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -698
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +517 -516
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -0
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -692
  44. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  45. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  49. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  50. data/lib/sketchup-api-stubs/stubs/Length.rb +278 -278
  51. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -144
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -152
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -286
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -302
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -478
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -122
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -619
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +449 -426
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +406 -396
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -502
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1239 -1205
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -272
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -126
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -937
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -104
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -292
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -468
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +406 -407
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -306
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -326
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -422
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -427
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -249
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -112
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -414
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +317 -318
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1652 -1651
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -131
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -284
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -0
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -0
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -363
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -477
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +361 -364
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +458 -459
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +255 -260
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -217
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -217
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +834 -837
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1311 -1317
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1377 -1360
  144. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  145. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -389
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +494 -496
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -240
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -635
  151. data/lib/sketchup-api-stubs/stubs/UI.rb +683 -683
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -311
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +10 -7
@@ -0,0 +1,490 @@
1
+ # Copyright:: Copyright 2023 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # An Overlay provides contextual model information directly in the viewport.
5
+ # This can be presented in 2D and 3D.
6
+ #
7
+ # Examples can be annotations or analytical model information such as geometry
8
+ # analysis, energy analysis, etc.
9
+ #
10
+ # The overlay feature is not intended as a mechanism to provide custom entities
11
+ # to SketchUp. Whatever overlays draw is not pickable nor exportable.
12
+ #
13
+ # It is also not allowed to perform model changes from overlay events. Doing
14
+ # so will result in a +RuntimeError+ being thrown.
15
+ #
16
+ # @api Overlays
17
+ #
18
+ # @example
19
+ # class ExampleOverlay < Sketchup::Overlay
20
+ #
21
+ # def initialize
22
+ # super('example_inc.my_overlay', 'Example Overlay')
23
+ # end
24
+ #
25
+ # def draw(view)
26
+ # rectangle = [
27
+ # [100, 100, 0], [300, 100, 0], [300, 200, 0], [100, 200, 0]
28
+ # ]
29
+ # view.drawing_color = 'blue'
30
+ # view.draw2d(GL_QUADS, rectangle)
31
+ # point = Geom::Point3d.new(120, 120, 0)
32
+ # view.draw_text(point, "Hello Overlay", size: 20, bold: true, color: 'white')
33
+ # end
34
+ #
35
+ # end
36
+ #
37
+ # # Using an observer to create a new overlay per model.
38
+ # class ExampleAppObserver < Sketchup::AppObserver
39
+ #
40
+ # def expectsStartupModelNotifications
41
+ # true
42
+ # end
43
+ #
44
+ # def register_overlay(model)
45
+ # overlay = ExampleOverlay.new
46
+ # model.overlays.add(overlay)
47
+ # end
48
+ # alias_method :onNewModel, :register_overlay
49
+ # alias_method :onOpenModel, :register_overlay
50
+ #
51
+ # end
52
+ #
53
+ # observer = ExampleAppObserver.new
54
+ # Sketchup.add_observer(observer)
55
+ #
56
+ # # The following line is needed if you copy+paste in the Ruby Console or
57
+ # # at the moment the extension is installed:
58
+ # observer.register_overlay(Sketchup.active_model)
59
+ #
60
+ # @version SketchUp 2023.0
61
+ class Sketchup::Overlay
62
+
63
+ # Instance Methods
64
+
65
+ # This is a short user facing description of the overlay that will appear in the UI.
66
+ #
67
+ # @api Overlays
68
+ #
69
+ # @example
70
+ # Sketchup.active_model.overlays.each { |overlay|
71
+ # puts "#{overlay.name}: #{overlay.description}"
72
+ # }
73
+ #
74
+ # @return [String]
75
+ #
76
+ # @version SketchUp 2023.0
77
+ def description
78
+ end
79
+
80
+ # Sets a short user facing description of the overlay that will appear in the UI.
81
+ # Set this before adding to the {Sketchup::OverlaysManager}.
82
+ #
83
+ # @api Overlays
84
+ #
85
+ # @example
86
+ # Sketchup.active_model.overlays.each { |overlay|
87
+ # puts "#{overlay.name}: #{overlay.description}"
88
+ # }
89
+ #
90
+ # @return [String]
91
+ #
92
+ # @version SketchUp 2023.0
93
+ def description=(description)
94
+ end
95
+
96
+ #
97
+ # @abstract It is called whenever the view updates.
98
+ #
99
+ # @api Overlays
100
+ #
101
+ # @example
102
+ # class ExampleOverlay < Sketchup::Overlay
103
+ #
104
+ # def initialize
105
+ # super('example_inc.my_overlay', 'Example Overlay')
106
+ # end
107
+ #
108
+ # def draw(view)
109
+ # # Draw a square.
110
+ # points = [
111
+ # Geom::Point3d.new(0, 0, 0),
112
+ # Geom::Point3d.new(9, 0, 0),
113
+ # Geom::Point3d.new(9, 9, 0),
114
+ # Geom::Point3d.new(0, 9, 0)
115
+ # ]
116
+ # # Fill
117
+ # view.drawing_color = Sketchup::Color.new(255, 128, 128)
118
+ # view.draw(GL_QUADS, points)
119
+ # # Outline
120
+ # view.line_stipple = '' # Solid line
121
+ # view.drawing_color = Sketchup::Color.new(64, 0, 0)
122
+ # view.draw(GL_LINE_LOOP, points)
123
+ # end
124
+ #
125
+ # end
126
+ #
127
+ # @note This is called very often. Perform minimal amount of computation in
128
+ # this event. Cache the data needed to draw what the overlay needs whenever
129
+ # possible.
130
+ #
131
+ # @note If you draw outside the model bounds you need to implement
132
+ # {Sketchup::Overlay#getExtents} which return a bounding box large enough to
133
+ # include the points you draw. Otherwise your drawing will be clipped.
134
+ #
135
+ # @param [Sketchup::View] view
136
+ # A View object where the method was invoked.
137
+ #
138
+ # @see getExtents
139
+ #
140
+ # @see Sketchup::View#draw
141
+ #
142
+ # @version SketchUp 2023.0
143
+ def draw(view)
144
+ end
145
+
146
+ #
147
+ # @api Overlays
148
+ #
149
+ # @note In most cases, extensions doesn't need to expose any new UI for
150
+ # enabling them. This can be done from the Overlays panel. However, in some
151
+ # cases the extension might have additional UI related to the overlays and
152
+ # might want to offer a way to toggle its overlays along with the rest of
153
+ # the UI.
154
+ #
155
+ # @param [Boolean] enabled
156
+ #
157
+ # @raise [RuntimeError] if the overlay is not added to a model.
158
+ #
159
+ # @version SketchUp 2023.0
160
+ def enabled=(enabled)
161
+ end
162
+
163
+ #
164
+ # @api Overlays
165
+ #
166
+ # @example
167
+ # Sketchup.active_model.overlays.each { |overlay|
168
+ # puts "#{overlay.name} (#{overlay.overlay_id}) Enabled: #{overlay.enabled?}"
169
+ # }
170
+ #
171
+ # @return [Boolean]
172
+ #
173
+ # @version SketchUp 2023.0
174
+ def enabled?
175
+ end
176
+
177
+ # In order to accurately draw things, SketchUp needs to know the extents of
178
+ # what it is drawing. If the overlay is doing its own drawing, it may need to
179
+ # implement this method to tell SketchUp the extents of what it will be
180
+ # drawing. If you don't implement this method, you may find that part of what
181
+ # the overlay is drawing gets clipped to the extents of the rest of the
182
+ # model.
183
+ #
184
+ # This must return a {Geom::BoundingBox}. In a typical implementation, you
185
+ # will create a new {Geom::BoundingBox}, add points to set the extents of the
186
+ # drawing that the overlay will do and then return it.
187
+ #
188
+ # @abstract The method should be implementing sub-classes ensure what is drawn
189
+ # in 3D space doesn't appear clipped. If the overlay only draws in 2D this
190
+ # isn't needed.
191
+ #
192
+ # @api Overlays
193
+ #
194
+ # @example
195
+ # class ExampleOverlay < Sketchup::Overlay
196
+ #
197
+ # def initialize
198
+ # super('example_inc.my_overlay', 'Example Overlay')
199
+ # @points = [ [0, 0, 0], [9, 0, 0], [9, 9, 0], [0, 9, 0] ]
200
+ # end
201
+ #
202
+ # def getExtents
203
+ # bb = Sketchup.active_model.bounds
204
+ # bb.add(@points)
205
+ # return bb
206
+ # end
207
+ #
208
+ # def draw(view)
209
+ # view.draw(GL_QUADS, @points)
210
+ # end
211
+ #
212
+ # end
213
+ #
214
+ # @note This is called very often. Perform minimal amount of computation in
215
+ # this event. Cache the data needed to compute the bounds of what the overlay
216
+ # draws whenever possible.
217
+ #
218
+ # @return [Geom::BoundingBox]
219
+ #
220
+ # @version SketchUp 2023.0
221
+ def getExtents
222
+ end
223
+
224
+ #
225
+ # @api Overlays
226
+ #
227
+ # @example
228
+ # class ExampleOverlay < Sketchup::Overlay
229
+ #
230
+ # def initialize
231
+ # description = "A short sentence describing the overlay."
232
+ # super('example_inc.my_overlay', 'Example Overlay', description: description)
233
+ # end
234
+ #
235
+ # end
236
+ #
237
+ # overlay = ExampleOverlay.new
238
+ #
239
+ # @param [String] id
240
+ # The string should be unique per overlay subclass.
241
+ # A good pattern would be something like: +"company_name.extension_name.overlay_name"+.
242
+ #
243
+ # @param [String] name
244
+ # This is a user facing display name that will appear in the UI.
245
+ # Make it short and representative for what the overlay does.
246
+ #
247
+ # @param [String] description
248
+ # This is a user facing description that will appear in the UI.
249
+ # Make it short and representative for what the overlay does.
250
+ #
251
+ # @raise [ArgumentError] if +id+ or +name+ is an empty string
252
+ #
253
+ # @version SketchUp 2023.0
254
+ def initialize(id, name, description: "")
255
+ end
256
+
257
+ # This is a user facing display name that will appear in the UI.
258
+ #
259
+ # @api Overlays
260
+ #
261
+ # @example
262
+ # Sketchup.active_model.overlays.each { |overlay|
263
+ # puts "#{overlay.name} (#{overlay.overlay_id}) Enabled: #{overlay.enabled?}"
264
+ # }
265
+ #
266
+ # @return [String]
267
+ #
268
+ # @version SketchUp 2023.0
269
+ def name
270
+ end
271
+
272
+ # The {#onMouseEnter} method is called by SketchUp when the mouse enters the
273
+ # viewport.
274
+ #
275
+ # @abstract It can be used by implementing sub-classes to react to
276
+ # mouse movement in the viewport.
277
+ #
278
+ # @api Overlays
279
+ #
280
+ # @example
281
+ # class ExampleOverlay < Sketchup::Overlay
282
+ #
283
+ # def initialize
284
+ # super('example_inc.my_overlay', 'Example Overlay')
285
+ # end
286
+ #
287
+ # def onMouseEnter(flags, x, y, view)
288
+ # puts "onMouseEnter: flags = #{flags}"
289
+ # puts " x = #{x}"
290
+ # puts " y = #{y}"
291
+ # puts " view = #{view}"
292
+ # end
293
+ #
294
+ # end
295
+ #
296
+ # @param [Integer] flags
297
+ # A bit mask that tells the state of the modifier
298
+ # keys and other mouse buttons at the time.
299
+ #
300
+ # @param [Integer] x
301
+ # The X coordinate on the screen where the event occurred.
302
+ #
303
+ # @param [Integer] y
304
+ # The Y coordinate on the screen where the event occurred.
305
+ #
306
+ # @param [Sketchup::View] view
307
+ #
308
+ # @version SketchUp 2023.0
309
+ def onMouseEnter(flags, x, y, view)
310
+ end
311
+
312
+ # The {#onMouseLeave} method is called by SketchUp when the mouse enters the
313
+ # viewport.
314
+ #
315
+ # @abstract It can be used by implementing sub-classes to react to
316
+ # mouse movement in the viewport.
317
+ #
318
+ # @api Overlays
319
+ #
320
+ # @example
321
+ # class ExampleOverlay < Sketchup::Overlay
322
+ #
323
+ # def initialize
324
+ # super('example_inc.my_overlay', 'Example Overlay')
325
+ # end
326
+ #
327
+ # def onMouseLeave(view)
328
+ # puts "onMouseLeave"
329
+ # end
330
+ #
331
+ # end
332
+ #
333
+ # @param [Sketchup::View] view
334
+ #
335
+ # @version SketchUp 2023.0
336
+ def onMouseLeave(view)
337
+ end
338
+
339
+ # Try to make this method as efficient as possible because this method is
340
+ # called often.
341
+ #
342
+ # @abstract It can be used by implementing sub-classes to react to
343
+ # mouse movement in the viewport.
344
+ #
345
+ # @api Overlays
346
+ #
347
+ # @example
348
+ # class ExampleOverlay < Sketchup::Overlay
349
+ #
350
+ # def initialize
351
+ # super('example_inc.my_overlay', 'Example Overlay')
352
+ # end
353
+ #
354
+ # def onMouseMove(flags, x, y, view)
355
+ # puts "onMouseMove: flags = #{flags}"
356
+ # puts " x = #{x}"
357
+ # puts " y = #{y}"
358
+ # puts " view = #{view}"
359
+ # end
360
+ #
361
+ # end
362
+ #
363
+ # @param [Integer] flags
364
+ # A bit mask that tells the state of the modifier
365
+ # keys and other mouse buttons at the time.
366
+ #
367
+ # @param [Integer] x
368
+ # The X coordinate on the screen where the event occurred.
369
+ #
370
+ # @param [Integer] y
371
+ # The Y coordinate on the screen where the event occurred.
372
+ #
373
+ # @param [Sketchup::View] view
374
+ #
375
+ # @version SketchUp 2023.0
376
+ def onMouseMove(flags, x, y, view)
377
+ end
378
+
379
+ #
380
+ # @api Overlays
381
+ #
382
+ # @example Implementing
383
+ # class ExampleOverlay < Sketchup::Overlay
384
+ #
385
+ # def initialize
386
+ # super('example_inc.my_overlay', 'Example Overlay')
387
+ # end
388
+ #
389
+ # end
390
+ #
391
+ # @example Accessing
392
+ # Sketchup.active_model.overlays.each { |overlay|
393
+ # puts "#{overlay.name} (#{overlay.overlay_id}) Enabled: #{overlay.enabled?}"
394
+ # }
395
+ #
396
+ # @return [String]
397
+ #
398
+ # @version SketchUp 2023.0
399
+ def overlay_id
400
+ end
401
+
402
+ # Describes the source associated with the overlay. This is automatically inferred
403
+ # when the overlay instance is initialized.
404
+ #
405
+ # @api Overlays
406
+ #
407
+ # @example
408
+ # Sketchup.active_model.overlays.each { |overlay|
409
+ # puts "#{overlay.name} (Extension: #{overlay.source})"
410
+ # }
411
+ #
412
+ # @return [String]
413
+ #
414
+ # @version SketchUp 2023.0
415
+ def source
416
+ end
417
+
418
+ #
419
+ # @abstract It can be used by implementing sub-classes to react when the overlay
420
+ # becomes active, for instance when the user turns it on.
421
+ #
422
+ # @api Overlays
423
+ #
424
+ # @example
425
+ # class ExampleOverlay < Sketchup::Overlay
426
+ #
427
+ # def initialize
428
+ # super('example_inc.my_overlay', 'Example Overlay')
429
+ # end
430
+ #
431
+ # def start
432
+ # puts "Overlay #{self} started"
433
+ # end
434
+ #
435
+ # end
436
+ #
437
+ # @version SketchUp 2023.0
438
+ def start
439
+ end
440
+
441
+ #
442
+ # @abstract It can be used by implementing sub-classes to react when the overlay
443
+ # becomes inactive, for instance when the user turns it off.
444
+ #
445
+ # @api Overlays
446
+ #
447
+ # @example
448
+ # class ExampleOverlay < Sketchup::Overlay
449
+ #
450
+ # def initialize
451
+ # super('example_inc.my_overlay', 'Example Overlay')
452
+ # end
453
+ #
454
+ # def stop(view)
455
+ # puts "Overlay #{self} stopped"
456
+ # end
457
+ #
458
+ # end
459
+ #
460
+ # @version SketchUp 2023.0
461
+ def stop
462
+ end
463
+
464
+ # Indicates whether the overlay is valid. An overlay becomes invalid after
465
+ # being removed from the model and cannot be reused.
466
+ #
467
+ # @api Overlays
468
+ #
469
+ # @example
470
+ # class ExampleOverlay < Sketchup::Overlay
471
+ # def initialize
472
+ # super('example_inc.my_overlay', 'Example Overlay')
473
+ # end
474
+ # end
475
+ #
476
+ # overlay = ExampleOverlay.new
477
+ # p overlay.valid? # => true
478
+ # Sketchup.active_model.overlays.add(overlay)
479
+ # p overlay.valid? # => true
480
+ #
481
+ # Sketchup.active_model.overlays.remove(overlay)
482
+ # p overlay.valid? # => false
483
+ #
484
+ # @return [Boolean]
485
+ #
486
+ # @version SketchUp 2023.0
487
+ def valid?
488
+ end
489
+
490
+ end
@@ -0,0 +1,116 @@
1
+ # Copyright:: Copyright 2023 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # An overlay added to a model is invalidated once it's removed from the model.
5
+ # It cannot be re-added or added to another model. Create another unique
6
+ # instance for that.
7
+ #
8
+ # Contains the registered overlays for a model along with methods to manage
9
+ # them.
10
+ #
11
+ # A model can not have multiple overlays with the same id.
12
+ #
13
+ # @api Overlays
14
+ #
15
+ # @example
16
+ # Sketchup.active_model.overlays.each { |overlay|
17
+ # puts "#{overlay.name} (#{overlay.overlay_id}) Enabled: #{overlay.enabled?}"
18
+ # }
19
+ #
20
+ # @see Sketchup::Overlay
21
+ # Documentation for overlays for more details.
22
+ #
23
+ # @version SketchUp 2023.0
24
+ class Sketchup::OverlaysManager
25
+
26
+ # Includes
27
+
28
+ include Enumerable
29
+
30
+ # Instance Methods
31
+
32
+ #
33
+ # @api Overlays
34
+ #
35
+ # @example
36
+ # overlay = Sketchup.active_model.overlays[0]
37
+ #
38
+ # @return [Sketchup::Overlay]
39
+ #
40
+ # @version SketchUp 2023.0
41
+ def [](index)
42
+ end
43
+ alias_method :at, :[]
44
+
45
+ #
46
+ # @api Overlays
47
+ #
48
+ # @example
49
+ # class ExampleOverlay < Sketchup::Overlay
50
+ # def initialize
51
+ # super('example_inc.my_overlay', 'Example Overlay')
52
+ # end
53
+ # end
54
+ #
55
+ # overlay = ExampleOverlay.new
56
+ # Sketchup.active_model.overlays.add(overlay)
57
+ #
58
+ # @raise [ArgumentError] If the overlay is already added to a model.
59
+ #
60
+ # @return [Boolean] +false+ if an overlay with the same id already exists.
61
+ #
62
+ # @version SketchUp 2023.0
63
+ def add(service)
64
+ end
65
+
66
+ #
67
+ # @api Overlays
68
+ #
69
+ # @example
70
+ # Sketchup.active_model.overlays.each { |overlay|
71
+ # puts "#{overlay.name} (#{overlay.overlay_id}) Enabled: #{overlay.enabled?}"
72
+ # }
73
+ #
74
+ # @return [nil]
75
+ #
76
+ # @version SketchUp 2023.0
77
+ #
78
+ # @yieldparam [Sketchup::Overlay] overlay
79
+ def each
80
+ end
81
+
82
+ #
83
+ # @api Overlays
84
+ #
85
+ # @example
86
+ # class ExampleOverlay < Sketchup::Overlay
87
+ # def initialize
88
+ # super('example_inc.my_overlay', 'Example Overlay')
89
+ # end
90
+ # end
91
+ #
92
+ # overlay = ExampleOverlay.new
93
+ # Sketchup.active_model.overlays.add(overlay)
94
+ #
95
+ # Sketchup.active_model.overlays.remove(overlay)
96
+ #
97
+ # @return [Boolean]
98
+ #
99
+ # @version SketchUp 2023.0
100
+ def remove(service)
101
+ end
102
+
103
+ #
104
+ # @api Overlays
105
+ #
106
+ # @example
107
+ # num_overlays = Sketchup.active_model.overlays.size
108
+ #
109
+ # @return [Integer]
110
+ #
111
+ # @version SketchUp 2023.0
112
+ def size
113
+ end
114
+ alias_method :length, :size
115
+
116
+ end