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,459 +1,458 @@
1
- # Copyright:: Copyright 2021 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
- # +Enumable+ 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
- # @yield [Sketchup::Entity] A variable that will hold each Entity object as they
187
- # are found.
188
- def each
189
- end
190
-
191
- # The empty? method is used to determine if there are entities in the
192
- # selection.
193
- #
194
- # @example
195
- # status = selection.add entity
196
- # status = selection.empty
197
- #
198
- # @return [Boolean]
199
- #
200
- # @version SketchUp 6.0
201
- def empty?
202
- end
203
-
204
- # The first method is used to retrieve the first selected entity
205
- #
206
- # Returns nil if nothing is selected. This method is useful when you know that
207
- # only a single entity is selected, or you are only interested in the first
208
- # selected entity.
209
- #
210
- # @example
211
- # status = selection.add entity
212
- # entity = selection.first
213
- #
214
- # @return [Sketchup::Entity] the first selected Entity object if successful
215
- #
216
- # @version SketchUp 6.0
217
- def first
218
- end
219
-
220
- # The {include?} method is used to determine if a given {Sketchup::Entity} is
221
- # in the selection.
222
- #
223
- # @example
224
- # model = Sketchup.active_model
225
- # entity = model.active_entities.first
226
- # selection = model.selection
227
- # selection.add(entity)
228
- # p selection.include?(entity)
229
- #
230
- # @param [Sketchup::Entity] entity
231
- #
232
- # @return [Boolean]
233
- #
234
- # @see #contains?
235
- #
236
- # @version SketchUp 6.0
237
- def include?(entity)
238
- end
239
-
240
- # The {#invert} method is used to invert the selection.
241
- #
242
- # @example
243
- # model = Sketchup.active_model
244
- # entities = model.active_entities
245
- # selection = model.selection
246
- # # Create a cube
247
- # face = entities.add_face([0, 0, 0], [9, 0, 0], [9, 9, 0], [0, 9, 0])
248
- # face.pushpull(-9)
249
- # # Add the first two faces to the selection
250
- # faces = entities.grep(Sketchup::Face).take(2)
251
- # selection.add(faces)
252
- # # Invert selection
253
- # selection.invert
254
- #
255
- # @return [nil]
256
- #
257
- # @version SketchUp 2019.2
258
- def invert
259
- end
260
-
261
- # The is_curve? method is used to determine if the selection contains all
262
- # edges that belong to a single curve.
263
- #
264
- # @example
265
- # selection.add entity
266
- # status = selection.is_curve?
267
- #
268
- # @return [Boolean]
269
- #
270
- # @version SketchUp 6.0
271
- def is_curve?
272
- end
273
-
274
- # The is_surface? method is used to determine if the selection contains only
275
- # all of the faces that are part of a single curved surface.
276
- #
277
- # @example
278
- # selection.add entity
279
- # status = selection.is_surface
280
- #
281
- # @return [Boolean]
282
- #
283
- # @version SketchUp 6.0
284
- def is_surface?
285
- end
286
-
287
- # The {#length} method is used to retrieve the number of selected entities.
288
- #
289
- # @example
290
- # selection = Sketchup.active_model.selection
291
- # number = selection.length
292
- #
293
- # @return [Integer]
294
- #
295
- # @see #size
296
- #
297
- # @see #nitems
298
- #
299
- # @version SketchUp 6.0
300
- def length
301
- end
302
-
303
- # The model method retrieves the model for the selection.
304
- #
305
- # @example
306
- # model = selection.model
307
- #
308
- # @return [Sketchup::Model] the model that includes the selection if
309
- # successful
310
- #
311
- # @version SketchUp 6.0
312
- def model
313
- end
314
-
315
- # The {#nitems} method is an alias for {#length}.
316
- #
317
- # @example
318
- # selection = Sketchup.active_model.selection
319
- # number = selection.nitems
320
- #
321
- # @return [Integer]
322
- #
323
- # @see #length
324
- #
325
- # @version SketchUp 6.0
326
- def nitems
327
- end
328
-
329
- # The remove method is used to remove entities from the selection.
330
- #
331
- # You can pass it individual Entities or an Array of Entities:
332
- # Note that the add, remove, and toggle methods are all aliases for one
333
- # another. So if you call remove on an entity that is not selected, it will
334
- # be toggled to be selected, not removed! Be cautious when writing your code to
335
- # not make the assumption about the currently selected state of a given entity.
336
- #
337
- # @example
338
- # # Remove by listing the entities...
339
- # ss.remove(e1, e2, e3)
340
- #
341
- # # ...or remove by passing an Array of entities.
342
- # ss.remove([e1, e2, e3])
343
- #
344
- # @example
345
- # entities = model.active_entities
346
- # entity = entities[0]
347
- # status = selection.add entity
348
- #
349
- # @overload remove(entities)
350
- #
351
- # @param [Array<Sketchup::Entity>] entities
352
- #
353
- # @overload remove(*entities)
354
- #
355
- # @param [Array<Sketchup::Entity>] entities
356
- #
357
- # @return [Integer] the number of Entity objects removed
358
- #
359
- # @version SketchUp 6.0
360
- def remove(*args)
361
- end
362
-
363
- # The remove_observer method is used to remove an observer from the selection
364
- # object.
365
- #
366
- # @example
367
- # selection = Sketchup.active_model.selection
368
- # status = object.remove_observer observer
369
- #
370
- # @param [Object] observer
371
- # An observer.
372
- #
373
- # @return [Boolean] true if successful, false if unsuccessful.
374
- #
375
- # @version SketchUp 6.0
376
- def remove_observer(observer)
377
- end
378
-
379
- # The shift method is used to remove the first entity from the selection and
380
- # returns it.
381
- #
382
- # @example
383
- # status = selection.add entity
384
- # UI.messagebox "Ready to remove item from selection set"
385
- # entity = selection.shift
386
- #
387
- # @return [Sketchup::Entity] the first Entity object in the selection set
388
- # if successful
389
- #
390
- # @version SketchUp 6.0
391
- def shift
392
- end
393
-
394
- # The single_object? method is used to determine if the selection contains a
395
- # single object.
396
- #
397
- # It can either be a single Entity or a group of Entities for which is_curve?
398
- # or is_surface? will return true.
399
- #
400
- # @example
401
- # status = selection.single_object
402
- #
403
- # @return [Boolean]
404
- #
405
- # @version SketchUp 6.0
406
- def single_object?
407
- end
408
-
409
- # The {#size} method is an alias for {#length}.
410
- #
411
- # @example
412
- # selection = Sketchup.active_model.selection
413
- # number = selection.size
414
- #
415
- # @return [Integer]
416
- #
417
- # @see #length
418
- #
419
- # @version SketchUp 2014
420
- def size
421
- end
422
-
423
- # The toggle method is used to change whether an entity is part of the
424
- # selection. Entities that are not already selected
425
- # are added. Entities that are already selected are removed.
426
- #
427
- # You can pass it individual Entities or an Array of Entities:
428
- # Note that the add, remove, and toggle methods are all aliases for one
429
- # another. So if you call remove on an entity that is not selected, it will
430
- # be toggled to be selected, not removed! Be cautious when writing your code to
431
- # not make the assumption about the currently selected state of a given entity.
432
- #
433
- # @example
434
- # # Toggle by listing the entities...
435
- # ss.toggle(e1, e2, e3)
436
- #
437
- # # ...or toggle by passing an Array of entities.
438
- # ss.toggle([e1, e2, e3])
439
- #
440
- # @example
441
- # entities = model.active_entities
442
- # entity = entities[0]
443
- # status = selection.add entity
444
- #
445
- # @overload toggle(entities)
446
- #
447
- # @param [Array<Sketchup::Entity>] entities
448
- #
449
- # @overload toggle(*entities)
450
- #
451
- # @param [Array<Sketchup::Entity>] entities
452
- #
453
- # @return [Integer] the number of Entity objects changed
454
- #
455
- # @version SketchUp 6.0
456
- def toggle(*args)
457
- end
458
-
459
- end
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