sketchup-api-stubs 0.7.7 → 0.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -147
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → 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 -509
  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 -691
  16. data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -351
  17. data/lib/sketchup-api-stubs/stubs/{languagehandler.rb → LanguageHandler.rb} +93 -92
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -573
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -179
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +517 -515
  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 -349
  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 -694
  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 → Length.rb} +278 -278
  51. data/lib/sketchup-api-stubs/stubs/{numeric.rb → 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 -157
  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 -577
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -594
  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 -425
  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 -1126
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -0
  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 -917
  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 -405
  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 -327
  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 -1654
  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 -478
  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 -257
  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 -835
  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 -71
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1311 -1307
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1377 -1353
  144. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  145. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -317
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +494 -478
  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 -633
  151. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -672
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -311
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +20 -16
@@ -1,427 +1,427 @@
1
- # Copyright:: Copyright 2021 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The Layers collection allows you to see and manage all of the layers in a
5
- # model. You get a pointer to the Layers object from within the Model.
6
- #
7
- # @example
8
- # model = Sketchup.active_model
9
- # layers = model.layers
10
- #
11
- # @note As of SketchUp 2020 "Layers" were renamed to "Tags" in the UI.
12
- # The API retains the use of "Layer" for compatibility and is synonymous with
13
- # "Tag".
14
- #
15
- # @version SketchUp 6.0
16
- class Sketchup::Layers < Sketchup::Entity
17
-
18
- # Includes
19
-
20
- include Enumerable
21
-
22
- # Instance Methods
23
-
24
- # The {#[]} method is used to retrieve a layer by index or name.
25
- #
26
- # @example
27
- # model = Sketchup.active_model
28
- # layers = model.layers
29
- # new_layer = layers.add "test layer"
30
- # layer_by_number = layers[1]
31
- # layer_by_name = layers["test layer"]
32
- #
33
- # @param [Integer, String] index_or_name
34
- # A number representing the layer's
35
- # index in an array of Layer objects, or the name of the layer.
36
- #
37
- # @return [Sketchup::Layer, nil]
38
- #
39
- # @see #at
40
- #
41
- # @version SketchUp 6.0
42
- def [](index_or_name)
43
- end
44
-
45
- # The {#add} method is used to add a new layer.
46
- #
47
- # If you give the name of a Layer that is already defined, it will return the
48
- # existing Layer rather than adding a new one.
49
- #
50
- # @example
51
- # layers = Sketchup.active_model.layers
52
- # layer = layers.add("Test Layer")
53
- #
54
- # @param [String] layer_name
55
- # The name of the added layer.
56
- #
57
- # @return [Sketchup::Layer]
58
- #
59
- # @version SketchUp 6.0
60
- def add(layer_name)
61
- end
62
- alias_method :add_layer, :add
63
-
64
- # The {#add_folder} method adds or moves a layer folder.
65
- #
66
- # @api TagFolder
67
- #
68
- # @example
69
- # manager = Sketchup.active_model.layers
70
- # folder = manager.add_folder('Doors')
71
- #
72
- # @overload add_folder(name)
73
- #
74
- # Adds a new folder with the given name. Unlike layers, folders do not
75
- # need to have a unique name. But the name does have to be non-empty.
76
- # @param [String] name
77
- #
78
- # @overload add_folder(folder)
79
- #
80
- # Moves an existing {Sketchup::LayerFolder} to the receiver. This will
81
- # include any children in the given folder.
82
- # @param [Sketchup::LayerFolder] folder
83
- # @see Sketchup::LayerFolder#folder= Information on how which notifications
84
- # trigger when reparenting an existing folder.
85
- #
86
- # @return [Sketchup::LayerFolder]
87
- #
88
- # @see #count_layers
89
- #
90
- # @version SketchUp 2021.0
91
- def add_folder(arg)
92
- end
93
-
94
- # The {#add_observer} method is used to add an observer to the layers
95
- # collection.
96
- #
97
- # @example
98
- # layers = Sketchup.active_model.layers
99
- # status = layers.add_observer observer
100
- #
101
- # @param [Sketchup::LayersObserver] observer
102
- #
103
- # @return [Boolean] true if successful, false if unsuccessful.
104
- #
105
- # @version SketchUp 6.0
106
- def add_observer(observer)
107
- end
108
-
109
- # The {#at} method is an alias for {#[]}.
110
- #
111
- # @example
112
- # model = Sketchup.active_model
113
- # layers = model.layers
114
- # new_layer = layers.add "test layer"
115
- # layer_by_number = layers.at(1)
116
- # layer_by_name = layers.at("test layer")
117
- #
118
- # @return [Sketchup::Layer, nil]
119
- #
120
- # @see #[]
121
- #
122
- # @version SketchUp 6.0
123
- def at(index_or_name)
124
- end
125
-
126
- #
127
- # @example
128
- # layers = Sketchup.active_model.layers
129
- # number = layers.count
130
- #
131
- # @note Since SketchUp 2014 the count method is inherited from Ruby's
132
- # +Enumable+ mix-in module. Prior to that the {#count} method is an alias
133
- # for {#length}.
134
- #
135
- # @return integer - the number of layers in the collection
136
- #
137
- # @see #length
138
- #
139
- # @version SketchUp 6.0
140
- def count
141
- end
142
-
143
- # The {#count_folders} method counts the number of folders which are direct
144
- # children of the layer manager.
145
- #
146
- # @api TagFolder
147
- #
148
- # @example
149
- # manager = Sketchup.active_model.layers
150
- # folder = manager.add_folder('Doors')
151
- # num_folders = manager.count_folders
152
- #
153
- # @return [Integer]
154
- #
155
- # @version SketchUp 2021.0
156
- def count_folders
157
- end
158
-
159
- # The {#count_layers} method retrieves the number of layers not in a folder.
160
- #
161
- # @api TagFolder
162
- #
163
- # @example
164
- # layers = Sketchup.active_model.layers
165
- # number = layers.count_layers
166
- #
167
- # @return [Integer]
168
- #
169
- # @see #size
170
- #
171
- # @see #length
172
- #
173
- # @version SketchUp 2021.0
174
- def count_layers
175
- end
176
-
177
- # The {#each} method is used to iterate through all of the layers in the model.
178
- # This include layers that are nested inside folders.
179
- #
180
- # @example
181
- # model = Sketchup.active_model
182
- # layers = model.layers
183
- # layers.add("Test layer")
184
- # layers.each { | layer | puts layer.name }
185
- #
186
- # @note Don't remove content from this collection while iterating over it with
187
- # {#each}. This would change the size of the collection and cause elements to
188
- # be skipped as the indices change. Instead copy the current collection to an
189
- # array using +to_a+ and then use +each+ on the array, when removing content.
190
- #
191
- # @version SketchUp 6.0
192
- #
193
- # @yield [layer]
194
- #
195
- # @yieldparam [Sketchup::Layer] layer
196
- def each
197
- end
198
-
199
- # The {#each_folder} method is used to iterate through the folders that are
200
- # direct children to the layer manager.
201
- #
202
- # @api TagFolder
203
- #
204
- # @example
205
- # manager = Sketchup.active_model.layers
206
- # folder = manager.add_folder('Doors')
207
- # folder = manager.add_folder('Windows')
208
- # manager.each_folder { |folder|
209
- # puts folder.name
210
- # }
211
- #
212
- # @version SketchUp 2021.0
213
- #
214
- # @yield [folder]
215
- #
216
- # @yieldparam [Sketchup::LayerFolder] folder
217
- def each_folder
218
- end
219
-
220
- # The {#each_layer} method is used to iterate through the layers that are not
221
- # inside a layer folder.
222
- #
223
- # @api TagFolder
224
- #
225
- # @example
226
- # model = Sketchup.active_model
227
- # layers = model.layers
228
- # layers.add('Test layer')
229
- # layers.each_layer { | layer | puts layer.name }
230
- #
231
- # @version SketchUp 2021.0
232
- #
233
- # @yield [layer]
234
- #
235
- # @yieldparam [Sketchup::Layer] layer
236
- def each_layer
237
- end
238
-
239
- # The {#folders} method returns the folders of the layer manager.
240
- #
241
- # @api TagFolder
242
- #
243
- # @example
244
- # manager = Sketchup.active_model.layers
245
- # manager.add_folder('Doors')
246
- # manager.add_folder('Windows')
247
- # folders = manager.folders
248
- #
249
- # @note This does not return all the folders in the model, only those that are
250
- # direct children of the layer manager.
251
- #
252
- # @return [Array<Sketchup::LayerFolder>]
253
- #
254
- # @version SketchUp 2021.0
255
- def folders
256
- end
257
-
258
- # The {#layers} method retrieves the layers not in a folder.
259
- #
260
- # @api TagFolder
261
- #
262
- # @example
263
- # manager = Sketchup.active_model.layers
264
- # layers = manager.layers
265
- #
266
- # @return [Array<Sketchup::Layer>]
267
- #
268
- # @version SketchUp 2021.0
269
- def layers
270
- end
271
-
272
- # The {#length} method retrieves the number of layers.
273
- #
274
- # @example
275
- # layers = Sketchup.active_model.layers
276
- # number = layers.length
277
- #
278
- # @return [Integer]
279
- #
280
- # @see #size
281
- #
282
- # @version SketchUp 6.0
283
- def length
284
- end
285
-
286
- # The {#purge_unused} method is used to remove unused layers.
287
- #
288
- # @example
289
- # layers = Sketchup.active_model.layers
290
- # num_layers_removed = layers.purge_unused
291
- #
292
- # @return [Integer] Number of unused layers removed
293
- #
294
- # @see #purge_unused_folders
295
- #
296
- # @version SketchUp 6.0
297
- def purge_unused
298
- end
299
- alias_method :purge_unused_layers, :purge_unused
300
-
301
- # The {#purge_unused_folders} method is used to remove all layer folder with
302
- # no children.
303
- #
304
- # @api TagFolder
305
- #
306
- # @example
307
- # manager = Sketchup.active_model.layers
308
- # folder = manager.add_folder('Doors')
309
- # folder = manager.add_folder('Windows')
310
- # manager.purge_unused_folders
311
- #
312
- # @version SketchUp 2021.0
313
- #
314
- # @yield [folder]
315
- #
316
- # @yieldparam [Sketchup::LayerFolder] folder
317
- def purge_unused_folders
318
- end
319
-
320
- # Remove the given layer from the model, optionally removing the geometry.
321
- #
322
- # @example
323
- # # Remove layer by layer reference.
324
- # layer = Sketchup.active_model.layers.add("MyLayer")
325
- # Sketchup.active_model.layers.remove(layer)
326
- #
327
- # # Remove layer by name.
328
- # Sketchup.active_model.layers.add("MyLayer")
329
- # Sketchup.active_model.layers.remove("MyLayer")
330
- #
331
- # # Remove layer by index.
332
- # Sketchup.active_model.layers.remove(1)
333
- #
334
- # # Remove layer and the entities on the layer.
335
- # edge = Sketchup.active_model.entities.add_line([0, 0, 0], [9, 9, 9])
336
- # edge.layer = Sketchup.active_model.layers.add("MyLayer")
337
- # Sketchup.active_model.layers.remove("MyLayer", true)
338
- #
339
- # @param [Sketchup::Layer, Integer, String] layer
340
- #
341
- # @param [Boolean] remove_geometry
342
- # If true, geometry in the removed layer will
343
- # be removed as well. If false (which is the default),
344
- # this geometry will be placed on Layer 0.
345
- #
346
- # @return [Boolean] true if successful, false if unsuccessful.
347
- #
348
- # @version SketchUp 2015
349
- def remove(layer, remove_geometry = false)
350
- end
351
- alias_method :remove_layer, :remove
352
-
353
- # The {#remove_folder} method removes the folder from the model. All children are
354
- # preserved, but moved up one level.
355
- #
356
- # @api TagFolder
357
- #
358
- # @example
359
- # manager = Sketchup.active_model.layers
360
- # folder = manager.add_folder('Doors')
361
- # manager.remove_folder(folder)
362
- #
363
- # @param [Sketchup::LayerFolder] folder
364
- #
365
- # @raise [ArgumentError] if the +folder+ is not a direct child of the receiver.
366
- #
367
- # @return [nil]
368
- #
369
- # @version SketchUp 2021.0
370
- def remove_folder(folder)
371
- end
372
-
373
- # The {#remove_observer} method is used to remove an observer from the current
374
- # object.
375
- #
376
- # @example
377
- # layers = Sketchup.active_model.layers
378
- # status = layers.remove_observer observer
379
- #
380
- # @param [Sketchup::LayersObserver] observer
381
- #
382
- # @return [Boolean] true if successful, false if unsuccessful.
383
- #
384
- # @version SketchUp 6.0
385
- def remove_observer(observer)
386
- end
387
-
388
- # The {#size} method is an alias of {#length}.
389
- #
390
- # @example
391
- # layers = Sketchup.active_model.layers
392
- # number = layers.size
393
- #
394
- # @return [Integer]
395
- #
396
- # @see #length
397
- #
398
- # @version SketchUp 2014
399
- def size
400
- end
401
-
402
- # The {#unique_name} method can be used to get a string that will be a unique
403
- # layer name inside this collection.
404
- #
405
- # @example
406
- # model = Sketchup.active_model
407
- # layers = model.layers
408
- # # Will return "Joe" since there are probably no other layers named that.
409
- # # Or might return something like "Joe #2" if there is already a layer
410
- # # named Joe.
411
- # good_name = layers.unique_name("Joe")
412
- #
413
- # @overload unique_name
414
- #
415
- # @return [String] Will default to using "Layer" (SketchUp2019 and older)
416
- # or "Tag" as basename for a unique name.
417
- #
418
- # @overload unique_name(base_name)
419
- #
420
- # @param [String] base_name The base name to build the unique name from.
421
- # @return [String]
422
- #
423
- # @version SketchUp 6.0
424
- def unique_name(*args)
425
- end
426
-
427
- end
1
+ # Copyright:: Copyright 2023 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The Layers collection allows you to see and manage all of the layers in a
5
+ # model. You get a pointer to the Layers object from within the Model.
6
+ #
7
+ # @example
8
+ # model = Sketchup.active_model
9
+ # layers = model.layers
10
+ #
11
+ # @note As of SketchUp 2020 "Layers" were renamed to "Tags" in the UI.
12
+ # The API retains the use of "Layer" for compatibility and is synonymous with
13
+ # "Tag".
14
+ #
15
+ # @version SketchUp 6.0
16
+ class Sketchup::Layers < Sketchup::Entity
17
+
18
+ # Includes
19
+
20
+ include Enumerable
21
+
22
+ # Instance Methods
23
+
24
+ # The {#[]} method is used to retrieve a layer by index or name.
25
+ #
26
+ # @example
27
+ # model = Sketchup.active_model
28
+ # layers = model.layers
29
+ # new_layer = layers.add "test layer"
30
+ # layer_by_number = layers[1]
31
+ # layer_by_name = layers["test layer"]
32
+ #
33
+ # @param [Integer, String] index_or_name
34
+ # A number representing the layer's
35
+ # index in an array of Layer objects, or the name of the layer.
36
+ #
37
+ # @return [Sketchup::Layer, nil]
38
+ #
39
+ # @see #at
40
+ #
41
+ # @version SketchUp 6.0
42
+ def [](index_or_name)
43
+ end
44
+
45
+ # The {#add} method is used to add a new layer.
46
+ #
47
+ # If you give the name of a Layer that is already defined, it will return the
48
+ # existing Layer rather than adding a new one.
49
+ #
50
+ # @example
51
+ # layers = Sketchup.active_model.layers
52
+ # layer = layers.add("Test Layer")
53
+ #
54
+ # @param [String] layer_name
55
+ # The name of the added layer.
56
+ #
57
+ # @return [Sketchup::Layer]
58
+ #
59
+ # @version SketchUp 6.0
60
+ def add(layer_name)
61
+ end
62
+ alias_method :add_layer, :add
63
+
64
+ # The {#add_folder} method adds or moves a layer folder.
65
+ #
66
+ # @api TagFolder
67
+ #
68
+ # @example
69
+ # manager = Sketchup.active_model.layers
70
+ # folder = manager.add_folder('Doors')
71
+ #
72
+ # @overload add_folder(name)
73
+ #
74
+ # Adds a new folder with the given name. Unlike layers, folders do not
75
+ # need to have a unique name. But the name does have to be non-empty.
76
+ # @param [String] name
77
+ #
78
+ # @overload add_folder(folder)
79
+ #
80
+ # Moves an existing {Sketchup::LayerFolder} to the receiver. This will
81
+ # include any children in the given folder.
82
+ # @param [Sketchup::LayerFolder] folder
83
+ # @see Sketchup::LayerFolder#folder= Information on how which notifications
84
+ # trigger when reparenting an existing folder.
85
+ #
86
+ # @return [Sketchup::LayerFolder]
87
+ #
88
+ # @see #count_layers
89
+ #
90
+ # @version SketchUp 2021.0
91
+ def add_folder(arg)
92
+ end
93
+
94
+ # The {#add_observer} method is used to add an observer to the layers
95
+ # collection.
96
+ #
97
+ # @example
98
+ # layers = Sketchup.active_model.layers
99
+ # status = layers.add_observer observer
100
+ #
101
+ # @param [Sketchup::LayersObserver] observer
102
+ #
103
+ # @return [Boolean] true if successful, false if unsuccessful.
104
+ #
105
+ # @version SketchUp 6.0
106
+ def add_observer(observer)
107
+ end
108
+
109
+ # The {#at} method is an alias for {#[]}.
110
+ #
111
+ # @example
112
+ # model = Sketchup.active_model
113
+ # layers = model.layers
114
+ # new_layer = layers.add "test layer"
115
+ # layer_by_number = layers.at(1)
116
+ # layer_by_name = layers.at("test layer")
117
+ #
118
+ # @return [Sketchup::Layer, nil]
119
+ #
120
+ # @see #[]
121
+ #
122
+ # @version SketchUp 6.0
123
+ def at(index_or_name)
124
+ end
125
+
126
+ #
127
+ # @example
128
+ # layers = Sketchup.active_model.layers
129
+ # number = layers.count
130
+ #
131
+ # @note Since SketchUp 2014 the count method is inherited from Ruby's
132
+ # +Enumerable+ mix-in module. Prior to that the {#count} method is an alias
133
+ # for {#length}.
134
+ #
135
+ # @return integer - the number of layers in the collection
136
+ #
137
+ # @see #length
138
+ #
139
+ # @version SketchUp 6.0
140
+ def count
141
+ end
142
+
143
+ # The {#count_folders} method counts the number of folders which are direct
144
+ # children of the layer manager.
145
+ #
146
+ # @api TagFolder
147
+ #
148
+ # @example
149
+ # manager = Sketchup.active_model.layers
150
+ # folder = manager.add_folder('Doors')
151
+ # num_folders = manager.count_folders
152
+ #
153
+ # @return [Integer]
154
+ #
155
+ # @version SketchUp 2021.0
156
+ def count_folders
157
+ end
158
+
159
+ # The {#count_layers} method retrieves the number of layers not in a folder.
160
+ #
161
+ # @api TagFolder
162
+ #
163
+ # @example
164
+ # layers = Sketchup.active_model.layers
165
+ # number = layers.count_layers
166
+ #
167
+ # @return [Integer]
168
+ #
169
+ # @see #size
170
+ #
171
+ # @see #length
172
+ #
173
+ # @version SketchUp 2021.0
174
+ def count_layers
175
+ end
176
+
177
+ # The {#each} method is used to iterate through all of the layers in the model.
178
+ # This include layers that are nested inside folders.
179
+ #
180
+ # @example
181
+ # model = Sketchup.active_model
182
+ # layers = model.layers
183
+ # layers.add("Test layer")
184
+ # layers.each { | layer | puts layer.name }
185
+ #
186
+ # @note Don't remove content from this collection while iterating over it with
187
+ # {#each}. This would change the size of the collection and cause elements to
188
+ # be skipped as the indices change. Instead copy the current collection to an
189
+ # array using +to_a+ and then use +each+ on the array, when removing content.
190
+ #
191
+ # @version SketchUp 6.0
192
+ #
193
+ # @yield [layer]
194
+ #
195
+ # @yieldparam [Sketchup::Layer] layer
196
+ def each
197
+ end
198
+
199
+ # The {#each_folder} method is used to iterate through the folders that are
200
+ # direct children to the layer manager.
201
+ #
202
+ # @api TagFolder
203
+ #
204
+ # @example
205
+ # manager = Sketchup.active_model.layers
206
+ # folder = manager.add_folder('Doors')
207
+ # folder = manager.add_folder('Windows')
208
+ # manager.each_folder { |folder|
209
+ # puts folder.name
210
+ # }
211
+ #
212
+ # @version SketchUp 2021.0
213
+ #
214
+ # @yield [folder]
215
+ #
216
+ # @yieldparam [Sketchup::LayerFolder] folder
217
+ def each_folder
218
+ end
219
+
220
+ # The {#each_layer} method is used to iterate through the layers that are not
221
+ # inside a layer folder.
222
+ #
223
+ # @api TagFolder
224
+ #
225
+ # @example
226
+ # model = Sketchup.active_model
227
+ # layers = model.layers
228
+ # layers.add('Test layer')
229
+ # layers.each_layer { | layer | puts layer.name }
230
+ #
231
+ # @version SketchUp 2021.0
232
+ #
233
+ # @yield [layer]
234
+ #
235
+ # @yieldparam [Sketchup::Layer] layer
236
+ def each_layer
237
+ end
238
+
239
+ # The {#folders} method returns the folders of the layer manager.
240
+ #
241
+ # @api TagFolder
242
+ #
243
+ # @example
244
+ # manager = Sketchup.active_model.layers
245
+ # manager.add_folder('Doors')
246
+ # manager.add_folder('Windows')
247
+ # folders = manager.folders
248
+ #
249
+ # @note This does not return all the folders in the model, only those that are
250
+ # direct children of the layer manager.
251
+ #
252
+ # @return [Array<Sketchup::LayerFolder>]
253
+ #
254
+ # @version SketchUp 2021.0
255
+ def folders
256
+ end
257
+
258
+ # The {#layers} method retrieves the layers not in a folder.
259
+ #
260
+ # @api TagFolder
261
+ #
262
+ # @example
263
+ # manager = Sketchup.active_model.layers
264
+ # layers = manager.layers
265
+ #
266
+ # @return [Array<Sketchup::Layer>]
267
+ #
268
+ # @version SketchUp 2021.0
269
+ def layers
270
+ end
271
+
272
+ # The {#length} method retrieves the number of layers.
273
+ #
274
+ # @example
275
+ # layers = Sketchup.active_model.layers
276
+ # number = layers.length
277
+ #
278
+ # @return [Integer]
279
+ #
280
+ # @see #size
281
+ #
282
+ # @version SketchUp 6.0
283
+ def length
284
+ end
285
+
286
+ # The {#purge_unused} method is used to remove unused layers.
287
+ #
288
+ # @example
289
+ # layers = Sketchup.active_model.layers
290
+ # num_layers_removed = layers.purge_unused
291
+ #
292
+ # @return [Integer] Number of unused layers removed
293
+ #
294
+ # @see #purge_unused_folders
295
+ #
296
+ # @version SketchUp 6.0
297
+ def purge_unused
298
+ end
299
+ alias_method :purge_unused_layers, :purge_unused
300
+
301
+ # The {#purge_unused_folders} method is used to remove all layer folder with
302
+ # no children.
303
+ #
304
+ # @api TagFolder
305
+ #
306
+ # @example
307
+ # manager = Sketchup.active_model.layers
308
+ # folder = manager.add_folder('Doors')
309
+ # folder = manager.add_folder('Windows')
310
+ # manager.purge_unused_folders
311
+ #
312
+ # @version SketchUp 2021.0
313
+ #
314
+ # @yield [folder]
315
+ #
316
+ # @yieldparam [Sketchup::LayerFolder] folder
317
+ def purge_unused_folders
318
+ end
319
+
320
+ # Remove the given layer from the model, optionally removing the geometry.
321
+ #
322
+ # @example
323
+ # # Remove layer by layer reference.
324
+ # layer = Sketchup.active_model.layers.add("MyLayer")
325
+ # Sketchup.active_model.layers.remove(layer)
326
+ #
327
+ # # Remove layer by name.
328
+ # Sketchup.active_model.layers.add("MyLayer")
329
+ # Sketchup.active_model.layers.remove("MyLayer")
330
+ #
331
+ # # Remove layer by index.
332
+ # Sketchup.active_model.layers.remove(1)
333
+ #
334
+ # # Remove layer and the entities on the layer.
335
+ # edge = Sketchup.active_model.entities.add_line([0, 0, 0], [9, 9, 9])
336
+ # edge.layer = Sketchup.active_model.layers.add("MyLayer")
337
+ # Sketchup.active_model.layers.remove("MyLayer", true)
338
+ #
339
+ # @param [Sketchup::Layer, Integer, String] layer
340
+ #
341
+ # @param [Boolean] remove_geometry
342
+ # If true, geometry in the removed layer will
343
+ # be removed as well. If false (which is the default),
344
+ # this geometry will be placed on Layer 0.
345
+ #
346
+ # @return [Boolean] true if successful, false if unsuccessful.
347
+ #
348
+ # @version SketchUp 2015
349
+ def remove(layer, remove_geometry = false)
350
+ end
351
+ alias_method :remove_layer, :remove
352
+
353
+ # The {#remove_folder} method removes the folder from the model. All children are
354
+ # preserved, but moved up one level.
355
+ #
356
+ # @api TagFolder
357
+ #
358
+ # @example
359
+ # manager = Sketchup.active_model.layers
360
+ # folder = manager.add_folder('Doors')
361
+ # manager.remove_folder(folder)
362
+ #
363
+ # @param [Sketchup::LayerFolder] folder
364
+ #
365
+ # @raise [ArgumentError] if the +folder+ is not a direct child of the receiver.
366
+ #
367
+ # @return [nil]
368
+ #
369
+ # @version SketchUp 2021.0
370
+ def remove_folder(folder)
371
+ end
372
+
373
+ # The {#remove_observer} method is used to remove an observer from the current
374
+ # object.
375
+ #
376
+ # @example
377
+ # layers = Sketchup.active_model.layers
378
+ # status = layers.remove_observer observer
379
+ #
380
+ # @param [Sketchup::LayersObserver] observer
381
+ #
382
+ # @return [Boolean] true if successful, false if unsuccessful.
383
+ #
384
+ # @version SketchUp 6.0
385
+ def remove_observer(observer)
386
+ end
387
+
388
+ # The {#size} method is an alias of {#length}.
389
+ #
390
+ # @example
391
+ # layers = Sketchup.active_model.layers
392
+ # number = layers.size
393
+ #
394
+ # @return [Integer]
395
+ #
396
+ # @see #length
397
+ #
398
+ # @version SketchUp 2014
399
+ def size
400
+ end
401
+
402
+ # The {#unique_name} method can be used to get a string that will be a unique
403
+ # layer name inside this collection.
404
+ #
405
+ # @example
406
+ # model = Sketchup.active_model
407
+ # layers = model.layers
408
+ # # Will return "Joe" since there are probably no other layers named that.
409
+ # # Or might return something like "Joe #2" if there is already a layer
410
+ # # named Joe.
411
+ # good_name = layers.unique_name("Joe")
412
+ #
413
+ # @overload unique_name
414
+ #
415
+ # @return [String] Will default to using "Layer" (SketchUp2019 and older)
416
+ # or "Tag" as basename for a unique name.
417
+ #
418
+ # @overload unique_name(base_name)
419
+ #
420
+ # @param [String] base_name The base name to build the unique name from.
421
+ # @return [String]
422
+ #
423
+ # @version SketchUp 6.0
424
+ def unique_name(*args)
425
+ end
426
+
427
+ end