sketchup-api-stubs 0.7.4 → 0.7.8

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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +148 -145
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → Array.rb} +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -318
  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 +523 -492
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -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 -348
  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 +698 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -174
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +516 -514
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
  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 -371
  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 -220
  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 -204
  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/SketchUpModel.rb +692 -694
  43. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  44. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  48. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  49. data/lib/sketchup-api-stubs/stubs/{length.rb → Length.rb} +278 -278
  50. data/lib/sketchup-api-stubs/stubs/{numeric.rb → Numeric.rb} +249 -249
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -157
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +619 -562
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +426 -329
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1205 -1119
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +272 -0
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -750
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -697
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +292 -285
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -409
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +407 -393
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -285
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +477 -456
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +260 -257
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +837 -829
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -61
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1317 -1301
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
  140. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1360 -1310
  141. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  142. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  143. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -310
  144. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +496 -356
  145. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -229
  146. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  147. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
  148. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -667
  149. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
  150. data/lib/sketchup-api-stubs.rb +1 -1
  151. metadata +15 -12
@@ -1,454 +1,459 @@
1
- # Copyright:: Copyright 2020 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::Entitiy, 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::Entitiy, 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| UI.messagebox(entity) }
176
- #
177
- # @return [nil]
178
- #
179
- # @version SketchUp 6.0
180
- #
181
- # @yield [Sketchup::Entity] A variable that will hold each Entity object as they
182
- # are found.
183
- def each
184
- end
185
-
186
- # The empty? method is used to determine if there are entities in the
187
- # selection.
188
- #
189
- # @example
190
- # status = selection.add entity
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 entity
200
- #
201
- # Returns nil if nothing is selected. This method is useful when you know that
202
- # only a single entity is selected, or you are only interested in the first
203
- # selected entity.
204
- #
205
- # @example
206
- # status = selection.add entity
207
- # entity = selection.first
208
- #
209
- # @return [Sketchup::Entity] the first selected Entity 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::Entity} 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::Entity] entity
226
- #
227
- # @return [Boolean]
228
- #
229
- # @see #contains?
230
- #
231
- # @version SketchUp 6.0
232
- def include?(entity)
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 entity
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 entity
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 entities.
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 entities from the selection.
325
- #
326
- # You can pass it individual Entities or an Array of Entities:
327
- # Note that the add, remove, and toggle methods are all aliases for one
328
- # another. So if you call remove on an entity that is not selected, it will
329
- # be toggled to be selected, not removed! Be cautious when writing your code to
330
- # not make the assumption about the currently selected state of a given entity.
331
- #
332
- # @example
333
- # # Remove by listing the entities...
334
- # ss.remove(e1, e2, e3)
335
- #
336
- # # ...or remove by passing an Array of entities.
337
- # ss.remove([e1, e2, e3])
338
- #
339
- # @example
340
- # entities = model.active_entities
341
- # entity = entities[0]
342
- # status = selection.add entity
343
- #
344
- # @overload remove(entities)
345
- #
346
- # @param [Array<Sketchup::Entity>] entities
347
- #
348
- # @overload remove(*entities)
349
- #
350
- # @param [Array<Sketchup::Entity>] entities
351
- #
352
- # @return [Integer] the number of Entity objects removed
353
- #
354
- # @version SketchUp 6.0
355
- def remove(*args)
356
- end
357
-
358
- # The remove_observer method is used to remove an observer from the selection
359
- # object.
360
- #
361
- # @example
362
- # selection = Sketchup.active_model.selection
363
- # status = object.remove_observer observer
364
- #
365
- # @param [Object] observer
366
- # An observer.
367
- #
368
- # @return [Boolean] true if successful, false if unsuccessful.
369
- #
370
- # @version SketchUp 6.0
371
- def remove_observer(observer)
372
- end
373
-
374
- # The shift method is used to remove the first entity from the selection and
375
- # returns it.
376
- #
377
- # @example
378
- # status = selection.add entity
379
- # UI.messagebox "Ready to remove item from selection set"
380
- # entity = selection.shift
381
- #
382
- # @return [Sketchup::Entity] the first Entity object in the selection set
383
- # if successful
384
- #
385
- # @version SketchUp 6.0
386
- def shift
387
- end
388
-
389
- # The single_object? method is used to determine if the selection contains a
390
- # single object.
391
- #
392
- # It can either be a single Entity or a group of Entities for which is_curve?
393
- # or is_surface? will return true.
394
- #
395
- # @example
396
- # status = selection.single_object
397
- #
398
- # @return [Boolean]
399
- #
400
- # @version SketchUp 6.0
401
- def single_object?
402
- end
403
-
404
- # The {#size} method is an alias for {#length}.
405
- #
406
- # @example
407
- # selection = Sketchup.active_model.selection
408
- # number = selection.size
409
- #
410
- # @return [Integer]
411
- #
412
- # @see #length
413
- #
414
- # @version SketchUp 2014
415
- def size
416
- end
417
-
418
- # The toggle method is used to change whether an entity is part of the
419
- # selection. Entities that are not already selected
420
- # are added. Entities that are already selected are removed.
421
- #
422
- # You can pass it individual Entities or an Array of Entities:
423
- # Note that the add, remove, and toggle methods are all aliases for one
424
- # another. So if you call remove on an entity that is not selected, it will
425
- # be toggled to be selected, not removed! Be cautious when writing your code to
426
- # not make the assumption about the currently selected state of a given entity.
427
- #
428
- # @example
429
- # # Toggle by listing the entities...
430
- # ss.toggle(e1, e2, e3)
431
- #
432
- # # ...or toggle by passing an Array of entities.
433
- # ss.toggle([e1, e2, e3])
434
- #
435
- # @example
436
- # entities = model.active_entities
437
- # entity = entities[0]
438
- # status = selection.add entity
439
- #
440
- # @overload toggle(entities)
441
- #
442
- # @param [Array<Sketchup::Entity>] entities
443
- #
444
- # @overload toggle(*entities)
445
- #
446
- # @param [Array<Sketchup::Entity>] entities
447
- #
448
- # @return [Integer] the number of Entity objects changed
449
- #
450
- # @version SketchUp 6.0
451
- def toggle(*args)
452
- end
453
-
454
- end
1
+ # Copyright:: Copyright 2022 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
+ # @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