sketchup-api-stubs 0.7.9 → 0.7.11

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 (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +157 -151
  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 +182 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +111 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +423 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +693 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +535 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +500 -476
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +267 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +133 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +547 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +678 -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 +751 -747
  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/Dictionary.rb +234 -0
  23. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +683 -517
  24. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  26. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +464 -353
  27. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  28. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  29. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  30. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  31. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  33. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  34. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  35. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +614 -567
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  37. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  38. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +282 -183
  39. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +458 -387
  40. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  41. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +346 -344
  42. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  43. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
  44. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  45. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1565 -1519
  46. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  49. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  50. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  51. data/lib/sketchup-api-stubs/stubs/Length.rb +286 -278
  52. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +196 -144
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +145 -150
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +296 -302
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +473 -478
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +673 -659
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +600 -593
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +252 -257
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +443 -449
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +167 -165
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +403 -406
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1282 -1239
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Environment.rb +406 -0
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Environments.rb +185 -0
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/EnvironmentsObserver.rb +113 -0
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +122 -125
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +1006 -937
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +740 -750
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +289 -282
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +64 -62
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +405 -468
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +432 -406
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +307 -306
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +332 -326
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +380 -422
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +409 -427
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +241 -249
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +55 -48
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/LoadHandler.rb +70 -0
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +1115 -414
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +330 -317
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1714 -1652
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +372 -357
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +133 -130
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +463 -490
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +104 -116
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +939 -797
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +388 -361
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +501 -478
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +385 -361
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +451 -458
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +211 -212
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +259 -255
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Snap.rb +125 -0
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +88 -69
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +263 -217
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +283 -262
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +199 -217
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +924 -834
  143. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  144. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  145. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  146. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +143 -142
  147. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1566 -1311
  148. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +71 -45
  149. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1429 -1377
  150. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  151. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  152. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +399 -389
  153. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +580 -494
  154. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +280 -269
  155. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +258 -241
  156. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +636 -635
  157. data/lib/sketchup-api-stubs/stubs/UI.rb +791 -683
  158. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  159. data/lib/sketchup-api-stubs.rb +1 -1
  160. metadata +10 -24
@@ -1,458 +1,451 @@
1
- # Copyright:: Copyright 2023 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # A set of the currently selected entities. Use the Model.selection method
5
- # to get a Selection object. Note that the order of entities
6
- # (<code>selection[0]</code>, <code>selection[1]</code> and so on) in the set
7
- # is in no particular order and should not be assumed to be in the same order
8
- # as the user selected the entities.
9
- #
10
- # @example
11
- # # Get a handle to the selection set.
12
- # model = Sketchup.active_model
13
- # selection = model.selection
14
- #
15
- # @version SketchUp 6.0
16
- class Sketchup::Selection
17
-
18
- # Includes
19
-
20
- include Enumerable
21
-
22
- # Instance Methods
23
-
24
- # The {#[]} method is used to retrieve an {Sketchup::Entity} from the selection
25
- # by index. Index 0 is the first entity in the selection.
26
- #
27
- # This method is not very efficient. If you need to look at every entity in
28
- # the selection, consider using {#each} instead of using this method
29
- # to manually grab each one.
30
- #
31
- # @example
32
- # model = Sketchup.active_model
33
- # entities = model.active_entities
34
- # selection = model.selection
35
- # selection.add(entities.to_a)
36
- # p selection[0]
37
- #
38
- # @param [Integer] index
39
- # The index of the Entity object to retrieve.
40
- #
41
- # @return [Sketchup::Entity, nil]
42
- #
43
- # @see #at
44
- #
45
- # @version SketchUp 6.0
46
- def [](index)
47
- end
48
-
49
- # The add method is used to add entities to the selection. Entities that are
50
- # added to the Selection are visually indicated by the selection bounding box.
51
- #
52
- # You can pass it individual Entities or an Array of Entities:
53
- # Note that the add, remove, and toggle methods are all aliases for one
54
- # another. So if you call remove on an entity that is not selected, it will
55
- # be toggled to be selected, not removed! Be cautious when writing your code to
56
- # not make the assumption about the currently selected state of a given entity.
57
- #
58
- # @example
59
- # # Add by listing the entities...
60
- # ss.add(e1, e2, e3)
61
- #
62
- # # ...or add by passing an Array of entities.
63
- # ss.add([e1, e2, e3])
64
- #
65
- # @example
66
- # entities = model.active_entities
67
- # entity = entities[0]
68
- # status = selection.add entity
69
- #
70
- # @overload add(entities)
71
- #
72
- # @param [Array<Sketchup::Entity>] entities
73
- #
74
- # @overload add(*entities)
75
- #
76
- # @param [Array<Sketchup::Entity>] entities
77
- #
78
- # @return [Integer] the number of Entity objects added
79
- #
80
- # @version SketchUp 6.0
81
- def add(*args)
82
- end
83
-
84
- # The add_observer method is used to add an observer to the selection object.
85
- #
86
- # @example
87
- # selection = Sketchup.active_model.selection
88
- # status = selection.add_observer observer
89
- #
90
- # @param [Object] observer
91
- # An observer.
92
- #
93
- # @return [Boolean] true if successful, false if unsuccessful.
94
- #
95
- # @version SketchUp 6.0
96
- def add_observer(observer)
97
- end
98
-
99
- # The {#at} method is an alias for {#[]}.
100
- #
101
- # @example
102
- # model = Sketchup.active_model
103
- # entities = model.active_entities
104
- # selection = model.selection
105
- # selection.add(entities.to_a)
106
- # p selection.at(0)
107
- #
108
- # @param [Integer] index
109
- # The index of the Entity object to retrieve.
110
- #
111
- # @return [Sketchup::Entity, nil]
112
- #
113
- # @see #[]
114
- #
115
- # @version SketchUp 6.0
116
- def at(index)
117
- end
118
-
119
- # The clear method is used to clear the selection.
120
- #
121
- # @example
122
- # entity = entities[0]
123
- # selection.add entity
124
- # UI.messagebox "Ready to Clear"
125
- # selection.clear
126
- #
127
- # @return [nil]
128
- #
129
- # @version SketchUp 6.0
130
- def clear
131
- end
132
-
133
- # The {contains?} method is and alias of {#include?}.
134
- #
135
- # @example
136
- # model = Sketchup.active_model
137
- # entity = model.active_entities.first
138
- # selection = model.selection
139
- # selection.add(entity)
140
- # p selection.contains?(entity)
141
- #
142
- # @param [Sketchup::Entity] entity
143
- #
144
- # @return [Boolean]
145
- #
146
- # @see #include?
147
- #
148
- # @version SketchUp 6.0
149
- def contains?(entity)
150
- end
151
-
152
- #
153
- # @example
154
- # selection = Sketchup.active_model.selection
155
- # number = selection.count
156
- #
157
- # @note Since SketchUp 2014 the count method is inherited from Ruby's
158
- # +Enumerable+ mix-in module. Prior to that the {#count} method is an alias
159
- # for {#length}.
160
- #
161
- # @return [Integer]
162
- #
163
- # @see #length
164
- #
165
- # @version SketchUp 6.0
166
- def count
167
- end
168
-
169
- # The {#each} method is used to iterate through all of the selected entities.
170
- #
171
- # If you want to do something with all of the selected Entities, this is more
172
- # efficient than using {#[]}.
173
- #
174
- # @example
175
- # selection.each { |entity| puts entity }
176
- #
177
- # @note Don't remove content from this collection while iterating over it with
178
- # {#each}. This would change the size of the collection and cause elemnts to
179
- # be skipped as the indices change. Instead copy the current collection to an
180
- # array using +to_a+ and then use +each+ on the array, when removing content.
181
- #
182
- # @return [nil]
183
- #
184
- # @version SketchUp 6.0
185
- #
186
- # @yieldparam [Sketchup::Entity] entity
187
- def each
188
- end
189
-
190
- # The empty? method is used to determine if there are entities in the
191
- # selection.
192
- #
193
- # @example
194
- # status = selection.add entity
195
- # status = selection.empty
196
- #
197
- # @return [Boolean]
198
- #
199
- # @version SketchUp 6.0
200
- def empty?
201
- end
202
-
203
- # The first method is used to retrieve the first selected entity
204
- #
205
- # Returns nil if nothing is selected. This method is useful when you know that
206
- # only a single entity is selected, or you are only interested in the first
207
- # selected entity.
208
- #
209
- # @example
210
- # status = selection.add entity
211
- # entity = selection.first
212
- #
213
- # @return [Sketchup::Entity] the first selected Entity object if successful
214
- #
215
- # @version SketchUp 6.0
216
- def first
217
- end
218
-
219
- # The {include?} method is used to determine if a given {Sketchup::Entity} is
220
- # in the selection.
221
- #
222
- # @example
223
- # model = Sketchup.active_model
224
- # entity = model.active_entities.first
225
- # selection = model.selection
226
- # selection.add(entity)
227
- # p selection.include?(entity)
228
- #
229
- # @param [Sketchup::Entity] entity
230
- #
231
- # @return [Boolean]
232
- #
233
- # @see #contains?
234
- #
235
- # @version SketchUp 6.0
236
- def include?(entity)
237
- end
238
-
239
- # The {#invert} method is used to invert the selection.
240
- #
241
- # @example
242
- # model = Sketchup.active_model
243
- # entities = model.active_entities
244
- # selection = model.selection
245
- # # Create a cube
246
- # face = entities.add_face([0, 0, 0], [9, 0, 0], [9, 9, 0], [0, 9, 0])
247
- # face.pushpull(-9)
248
- # # Add the first two faces to the selection
249
- # faces = entities.grep(Sketchup::Face).take(2)
250
- # selection.add(faces)
251
- # # Invert selection
252
- # selection.invert
253
- #
254
- # @return [nil]
255
- #
256
- # @version SketchUp 2019.2
257
- def invert
258
- end
259
-
260
- # The is_curve? method is used to determine if the selection contains all
261
- # edges that belong to a single curve.
262
- #
263
- # @example
264
- # selection.add entity
265
- # status = selection.is_curve?
266
- #
267
- # @return [Boolean]
268
- #
269
- # @version SketchUp 6.0
270
- def is_curve?
271
- end
272
-
273
- # The is_surface? method is used to determine if the selection contains only
274
- # all of the faces that are part of a single curved surface.
275
- #
276
- # @example
277
- # selection.add entity
278
- # status = selection.is_surface
279
- #
280
- # @return [Boolean]
281
- #
282
- # @version SketchUp 6.0
283
- def is_surface?
284
- end
285
-
286
- # The {#length} method is used to retrieve the number of selected entities.
287
- #
288
- # @example
289
- # selection = Sketchup.active_model.selection
290
- # number = selection.length
291
- #
292
- # @return [Integer]
293
- #
294
- # @see #size
295
- #
296
- # @see #nitems
297
- #
298
- # @version SketchUp 6.0
299
- def length
300
- end
301
-
302
- # The model method retrieves the model for the selection.
303
- #
304
- # @example
305
- # model = selection.model
306
- #
307
- # @return [Sketchup::Model] the model that includes the selection if
308
- # successful
309
- #
310
- # @version SketchUp 6.0
311
- def model
312
- end
313
-
314
- # The {#nitems} method is an alias for {#length}.
315
- #
316
- # @example
317
- # selection = Sketchup.active_model.selection
318
- # number = selection.nitems
319
- #
320
- # @return [Integer]
321
- #
322
- # @see #length
323
- #
324
- # @version SketchUp 6.0
325
- def nitems
326
- end
327
-
328
- # The remove method is used to remove entities from the selection.
329
- #
330
- # You can pass it individual Entities or an Array of Entities:
331
- # Note that the add, remove, and toggle methods are all aliases for one
332
- # another. So if you call remove on an entity that is not selected, it will
333
- # be toggled to be selected, not removed! Be cautious when writing your code to
334
- # not make the assumption about the currently selected state of a given entity.
335
- #
336
- # @example
337
- # # Remove by listing the entities...
338
- # ss.remove(e1, e2, e3)
339
- #
340
- # # ...or remove by passing an Array of entities.
341
- # ss.remove([e1, e2, e3])
342
- #
343
- # @example
344
- # entities = model.active_entities
345
- # entity = entities[0]
346
- # status = selection.add entity
347
- #
348
- # @overload remove(entities)
349
- #
350
- # @param [Array<Sketchup::Entity>] entities
351
- #
352
- # @overload remove(*entities)
353
- #
354
- # @param [Array<Sketchup::Entity>] entities
355
- #
356
- # @return [Integer] the number of Entity objects removed
357
- #
358
- # @version SketchUp 6.0
359
- def remove(*args)
360
- end
361
-
362
- # The remove_observer method is used to remove an observer from the selection
363
- # object.
364
- #
365
- # @example
366
- # selection = Sketchup.active_model.selection
367
- # status = object.remove_observer observer
368
- #
369
- # @param [Object] observer
370
- # An observer.
371
- #
372
- # @return [Boolean] true if successful, false if unsuccessful.
373
- #
374
- # @version SketchUp 6.0
375
- def remove_observer(observer)
376
- end
377
-
378
- # The shift method is used to remove the first entity from the selection and
379
- # returns it.
380
- #
381
- # @example
382
- # status = selection.add entity
383
- # UI.messagebox "Ready to remove item from selection set"
384
- # entity = selection.shift
385
- #
386
- # @return [Sketchup::Entity] the first Entity object in the selection set
387
- # if successful
388
- #
389
- # @version SketchUp 6.0
390
- def shift
391
- end
392
-
393
- # The single_object? method is used to determine if the selection contains a
394
- # single object.
395
- #
396
- # It can either be a single Entity or a group of Entities for which is_curve?
397
- # or is_surface? will return true.
398
- #
399
- # @example
400
- # status = selection.single_object
401
- #
402
- # @return [Boolean]
403
- #
404
- # @version SketchUp 6.0
405
- def single_object?
406
- end
407
-
408
- # The {#size} method is an alias for {#length}.
409
- #
410
- # @example
411
- # selection = Sketchup.active_model.selection
412
- # number = selection.size
413
- #
414
- # @return [Integer]
415
- #
416
- # @see #length
417
- #
418
- # @version SketchUp 2014
419
- def size
420
- end
421
-
422
- # The toggle method is used to change whether an entity is part of the
423
- # selection. Entities that are not already selected
424
- # are added. Entities that are already selected are removed.
425
- #
426
- # You can pass it individual Entities or an Array of Entities:
427
- # Note that the add, remove, and toggle methods are all aliases for one
428
- # another. So if you call remove on an entity that is not selected, it will
429
- # be toggled to be selected, not removed! Be cautious when writing your code to
430
- # not make the assumption about the currently selected state of a given entity.
431
- #
432
- # @example
433
- # # Toggle by listing the entities...
434
- # ss.toggle(e1, e2, e3)
435
- #
436
- # # ...or toggle by passing an Array of entities.
437
- # ss.toggle([e1, e2, e3])
438
- #
439
- # @example
440
- # entities = model.active_entities
441
- # entity = entities[0]
442
- # status = selection.add entity
443
- #
444
- # @overload toggle(entities)
445
- #
446
- # @param [Array<Sketchup::Entity>] entities
447
- #
448
- # @overload toggle(*entities)
449
- #
450
- # @param [Array<Sketchup::Entity>] entities
451
- #
452
- # @return [Integer] the number of Entity objects changed
453
- #
454
- # @version SketchUp 6.0
455
- def toggle(*args)
456
- end
457
-
458
- end
1
+ # Copyright:: Copyright 2026 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # A set of the currently selected drawing elements. Use the Model.selection method
5
+ # to get a Selection object. Note that the order of drawing elements
6
+ # (<code>selection[0]</code>, <code>selection[1]</code> and so on) in the set
7
+ # is in no particular order and should not be assumed to be in the same order
8
+ # as the user selected the drawing elements.
9
+ #
10
+ # @example
11
+ # # Get a handle to the selection set.
12
+ # model = Sketchup.active_model
13
+ # selection = model.selection
14
+ #
15
+ # @version SketchUp 6.0
16
+ class Sketchup::Selection
17
+
18
+ # Includes
19
+
20
+ include Enumerable
21
+
22
+ # Instance Methods
23
+
24
+ # The {#[]} method is used to retrieve a {Sketchup::Drawingelement} from the selection
25
+ # by index. Index 0 is the first Drawingelement in the selection.
26
+ #
27
+ # This method is not very efficient. If you need to look at every entity in
28
+ # the selection, consider using {#each} instead of using this method
29
+ # to manually grab each one.
30
+ #
31
+ # @example
32
+ # model = Sketchup.active_model
33
+ # entities = model.active_entities
34
+ # selection = model.selection
35
+ # selection.add(entities.to_a)
36
+ # p selection[0]
37
+ #
38
+ # @param [Integer] index
39
+ # The index of the Drawingelement object to retrieve.
40
+ #
41
+ # @return [Sketchup::Drawingelement, nil]
42
+ #
43
+ # @see #at
44
+ #
45
+ # @version SketchUp 6.0
46
+ def [](index)
47
+ end
48
+
49
+ # The {#add} method is used to add Drawingelement to the selection. Drawingelements that are
50
+ # added to the Selection are visually indicated by the selection bounding box.
51
+ #
52
+ # You can pass it individual Drawingelements or an Array of Drawingelements.
53
+ #
54
+ # @example
55
+ # # Add by listing the Drawingelements...
56
+ # ss.add(e1, e2, e3)
57
+ #
58
+ # # ...or add by passing an Array of Drawingelements.
59
+ # ss.add([e1, e2, e3])
60
+ #
61
+ # @example
62
+ # model = Sketchup.active_model
63
+ # edge = model.active_entities.add_line([0, 0, 0], [9, 9, 9])
64
+ # model.selection.add(edge)
65
+ #
66
+ # @overload add(drawing_elements)
67
+ #
68
+ # @param [Array<Sketchup::Drawingelement>] drawing_elements
69
+ #
70
+ # @overload add(*drawing_elements)
71
+ #
72
+ # @param [Array<Sketchup::Drawingelement>] drawing_elements
73
+ #
74
+ # @return [Integer] the number of Drawingelement objects added
75
+ #
76
+ # @version SketchUp 6.0
77
+ def add(*args)
78
+ end
79
+
80
+ # The add_observer method is used to add an observer to the selection object.
81
+ #
82
+ # @example
83
+ # selection = Sketchup.active_model.selection
84
+ # status = selection.add_observer observer
85
+ #
86
+ # @param [Object] observer
87
+ # An observer.
88
+ #
89
+ # @return [Boolean] true if successful, false if unsuccessful.
90
+ #
91
+ # @version SketchUp 6.0
92
+ def add_observer(observer)
93
+ end
94
+
95
+ # The {#at} method is an alias for {#[]}.
96
+ #
97
+ # @example
98
+ # model = Sketchup.active_model
99
+ # entities = model.active_entities
100
+ # selection = model.selection
101
+ # selection.add(entities.to_a)
102
+ # p selection.at(0)
103
+ #
104
+ # @param [Integer] index
105
+ # The index of the Drawingelement object to retrieve.
106
+ #
107
+ # @return [Sketchup::Drawingelement, nil]
108
+ #
109
+ # @see #[]
110
+ #
111
+ # @version SketchUp 6.0
112
+ def at(index)
113
+ end
114
+
115
+ # The clear method is used to clear the selection.
116
+ #
117
+ # @example
118
+ # entity = entities[0]
119
+ # selection.add entity
120
+ # UI.messagebox "Ready to Clear"
121
+ # selection.clear
122
+ #
123
+ # @return [nil]
124
+ #
125
+ # @version SketchUp 6.0
126
+ def clear
127
+ end
128
+
129
+ # The {#contains?} method is and alias of {#include?}.
130
+ #
131
+ # @example
132
+ # model = Sketchup.active_model
133
+ # entity = model.active_entities.first
134
+ # selection = model.selection
135
+ # selection.add(entity)
136
+ # p selection.contains?(entity)
137
+ #
138
+ # @param [Sketchup::Drawingelement] drawing_element
139
+ #
140
+ # @return [Boolean]
141
+ #
142
+ # @see #include?
143
+ #
144
+ # @version SketchUp 6.0
145
+ def contains?(drawing_element)
146
+ end
147
+
148
+ #
149
+ # @example
150
+ # selection = Sketchup.active_model.selection
151
+ # number = selection.count
152
+ #
153
+ # @note Since SketchUp 2014 the count method is inherited from Ruby's
154
+ # +Enumerable+ mix-in module. Prior to that the {#count} method is an alias
155
+ # for {#length}.
156
+ #
157
+ # @return [Integer]
158
+ #
159
+ # @see #length
160
+ #
161
+ # @version SketchUp 6.0
162
+ def count
163
+ end
164
+
165
+ # The {#each} method is used to iterate through all of the selected Drawingelements.
166
+ #
167
+ # If you want to do something with all of the selected Drawingelements, this is more
168
+ # efficient than using {#[]}.
169
+ #
170
+ # @example
171
+ # selection.each { |drawing_element| puts drawing_element }
172
+ #
173
+ # @note Don't remove content from this collection while iterating over it with
174
+ # {#each}. This would change the size of the collection and cause elemnts to
175
+ # be skipped as the indices change. Instead copy the current collection to an
176
+ # array using +to_a+ and then use +each+ on the array, when removing content.
177
+ #
178
+ # @return [nil]
179
+ #
180
+ # @version SketchUp 6.0
181
+ #
182
+ # @yieldparam [Sketchup::Drawingelement] drawing_element
183
+ def each
184
+ end
185
+
186
+ # The {#empty?} method is used to determine if there are drawing elements in the
187
+ # selection.
188
+ #
189
+ # @example
190
+ # status = selection.add drawing_element
191
+ # status = selection.empty
192
+ #
193
+ # @return [Boolean]
194
+ #
195
+ # @version SketchUp 6.0
196
+ def empty?
197
+ end
198
+
199
+ # The {#first} method is used to retrieve the first selected Drawingelement
200
+ #
201
+ # Returns nil if nothing is selected. This method is useful when you know that
202
+ # only a single Drawingelement is selected, or you are only interested in the first
203
+ # selected Drawingelement.
204
+ #
205
+ # @example
206
+ # status = selection.add drawing_element
207
+ # drawing_element = selection.first
208
+ #
209
+ # @return [Sketchup::Drawingelement] the first selected Drawingelement object if successful
210
+ #
211
+ # @version SketchUp 6.0
212
+ def first
213
+ end
214
+
215
+ # The {#include?} method is used to determine if a given {Sketchup::Drawingelement} is
216
+ # in the selection.
217
+ #
218
+ # @example
219
+ # model = Sketchup.active_model
220
+ # entity = model.active_entities.first
221
+ # selection = model.selection
222
+ # selection.add(entity)
223
+ # p selection.include?(entity)
224
+ #
225
+ # @param [Sketchup::Drawingelement] drawing_element
226
+ #
227
+ # @return [Boolean]
228
+ #
229
+ # @see #contains?
230
+ #
231
+ # @version SketchUp 6.0
232
+ def include?(drawing_element)
233
+ end
234
+
235
+ # The {#invert} method is used to invert the selection.
236
+ #
237
+ # @example
238
+ # model = Sketchup.active_model
239
+ # entities = model.active_entities
240
+ # selection = model.selection
241
+ # # Create a cube
242
+ # face = entities.add_face([0, 0, 0], [9, 0, 0], [9, 9, 0], [0, 9, 0])
243
+ # face.pushpull(-9)
244
+ # # Add the first two faces to the selection
245
+ # faces = entities.grep(Sketchup::Face).take(2)
246
+ # selection.add(faces)
247
+ # # Invert selection
248
+ # selection.invert
249
+ #
250
+ # @return [nil]
251
+ #
252
+ # @version SketchUp 2019.2
253
+ def invert
254
+ end
255
+
256
+ # The {#is_curve?} method is used to determine if the selection contains all
257
+ # edges that belong to a single curve.
258
+ #
259
+ # @example
260
+ # selection.add drawing_element
261
+ # status = selection.is_curve?
262
+ #
263
+ # @return [Boolean]
264
+ #
265
+ # @version SketchUp 6.0
266
+ def is_curve?
267
+ end
268
+
269
+ # The {#is_surface?} method is used to determine if the selection contains only
270
+ # all of the faces that are part of a single curved surface.
271
+ #
272
+ # @example
273
+ # selection.add drawing_element
274
+ # status = selection.is_surface
275
+ #
276
+ # @return [Boolean]
277
+ #
278
+ # @version SketchUp 6.0
279
+ def is_surface?
280
+ end
281
+
282
+ # The {#length} method is used to retrieve the number of selected drawing elements.
283
+ #
284
+ # @example
285
+ # selection = Sketchup.active_model.selection
286
+ # number = selection.length
287
+ #
288
+ # @return [Integer]
289
+ #
290
+ # @see #size
291
+ #
292
+ # @see #nitems
293
+ #
294
+ # @version SketchUp 6.0
295
+ def length
296
+ end
297
+
298
+ # The {#model} method retrieves the model for the selection.
299
+ #
300
+ # @example
301
+ # model = selection.model
302
+ #
303
+ # @return [Sketchup::Model] the model that includes the selection if
304
+ # successful
305
+ #
306
+ # @version SketchUp 6.0
307
+ def model
308
+ end
309
+
310
+ # The {#nitems} method is an alias for {#length}.
311
+ #
312
+ # @example
313
+ # selection = Sketchup.active_model.selection
314
+ # number = selection.nitems
315
+ #
316
+ # @return [Integer]
317
+ #
318
+ # @see #length
319
+ #
320
+ # @version SketchUp 6.0
321
+ def nitems
322
+ end
323
+
324
+ # The {#remove} method is used to remove Drawingelements from the selection.
325
+ # You can pass it individual Drawingelements or an Array of Drawingelements.
326
+ #
327
+ # @example
328
+ # # Remove by listing the Drawingelements...
329
+ # ss.remove(e1, e2, e3)
330
+ #
331
+ # # ...or remove by passing an Array of Drawingelements.
332
+ # ss.remove([e1, e2, e3])
333
+ #
334
+ # @example
335
+ # model = Sketchup.active_model
336
+ # face = model.active_entities.add_line([0, 0, 0], [9, 0, 0], [9, 9, 0], [0, 9, 0])
337
+ # edges = face.all_connected
338
+ # model.selection.add(edges)
339
+ #
340
+ # model.selection.remove(edges.first)
341
+ #
342
+ # @overload remove(drawing_elements)
343
+ #
344
+ # @param [Array<Sketchup::Drawingelement>] drawing_elements
345
+ #
346
+ # @overload remove(*drawing_elements)
347
+ #
348
+ # @param [Array<Sketchup::Drawingelement>] drawing_elements
349
+ #
350
+ # @return [Integer] the number of Drawingelement objects removed
351
+ #
352
+ # @version SketchUp 6.0
353
+ def remove(*args)
354
+ end
355
+
356
+ # The remove_observer method is used to remove an observer from the selection
357
+ # object.
358
+ #
359
+ # @example
360
+ # selection = Sketchup.active_model.selection
361
+ # status = object.remove_observer observer
362
+ #
363
+ # @param [Object] observer
364
+ # An observer.
365
+ #
366
+ # @return [Boolean] true if successful, false if unsuccessful.
367
+ #
368
+ # @version SketchUp 6.0
369
+ def remove_observer(observer)
370
+ end
371
+
372
+ # The {#shift} method is used to remove the first Drawingelement from the selection and
373
+ # returns it.
374
+ #
375
+ # @example
376
+ # status = selection.add drawing_element
377
+ # UI.messagebox "Ready to remove item from selection set"
378
+ # drawing_element = selection.shift
379
+ #
380
+ # @return [Sketchup::Drawingelement] the first Drawingelement object in the selection set
381
+ # if successful
382
+ #
383
+ # @version SketchUp 6.0
384
+ def shift
385
+ end
386
+
387
+ # The {#single_object?} method is used to determine if the selection contains a
388
+ # single object.
389
+ #
390
+ # It can either be a single DrawingElement or a group of DrawingElements for which is_curve?
391
+ # or is_surface? will return true.
392
+ #
393
+ # @example
394
+ # status = selection.single_object
395
+ #
396
+ # @return [Boolean]
397
+ #
398
+ # @version SketchUp 6.0
399
+ def single_object?
400
+ end
401
+
402
+ # The {#size} method is an alias for {#length}.
403
+ #
404
+ # @example
405
+ # selection = Sketchup.active_model.selection
406
+ # number = selection.size
407
+ #
408
+ # @return [Integer]
409
+ #
410
+ # @see #length
411
+ #
412
+ # @version SketchUp 2014
413
+ def size
414
+ end
415
+
416
+ # The {#toggle} method is used to change whether a Drawingelement is part of the
417
+ # selection. Drawingelements that are not already selected
418
+ # are added. Drawingelements that are already selected are removed.
419
+ #
420
+ # You can pass it individual Drawingelements or an Array of Drawingelements.
421
+ #
422
+ # @example
423
+ # # Toggle by listing the Drawingelements...
424
+ # ss.toggle(e1, e2, e3)
425
+ #
426
+ # # ...or toggle by passing an Array of Drawingelements.
427
+ # ss.toggle([e1, e2, e3])
428
+ #
429
+ # @example
430
+ # model = Sketchup.active_model
431
+ # face = model.active_entities.add_line([0, 0, 0], [9, 0, 0], [9, 9, 0], [0, 9, 0])
432
+ # edges = face.all_connected
433
+ # model.selection.add(edges)
434
+ #
435
+ # model.selection.toggle(edges.first)
436
+ #
437
+ # @overload toggle(drawings_elements)
438
+ #
439
+ # @param [Array<Sketchup::Drawingelement>] drawing_elements
440
+ #
441
+ # @overload toggle(*drawing_elements)
442
+ #
443
+ # @param [Array<Sketchup::Drawingelement>] drawing_elements
444
+ #
445
+ # @return [Integer] the number of Drawingelement objects changed
446
+ #
447
+ # @version SketchUp 6.0
448
+ def toggle(*args)
449
+ end
450
+
451
+ end