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.
- checksums.yaml +4 -4
- data/lib/sketchup-api-stubs/sketchup.rb +148 -145
- data/lib/sketchup-api-stubs/stubs/{array.rb → Array.rb} +741 -741
- data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -318
- data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
- data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
- data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
- data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
- data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
- data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +523 -492
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -478
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
- data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
- data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
- data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -691
- data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -348
- data/lib/sketchup-api-stubs/stubs/{languagehandler.rb → LanguageHandler.rb} +93 -92
- data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -573
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +698 -411
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -174
- data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
- data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +516 -514
- data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
- data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
- data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
- data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -349
- data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
- data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
- data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
- data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -371
- data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
- data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
- data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -220
- data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
- data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
- data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
- data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
- data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
- data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -204
- data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
- data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
- data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -694
- data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
- data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
- data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
- data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
- data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
- data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
- data/lib/sketchup-api-stubs/stubs/{length.rb → Length.rb} +278 -278
- data/lib/sketchup-api-stubs/stubs/{numeric.rb → Numeric.rb} +249 -249
- data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
- data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -157
- data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
- data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
- data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
- data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
- data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
- data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
- data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +619 -562
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
- data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
- data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
- data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
- data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +426 -329
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
- data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
- data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
- data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
- data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1205 -1119
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +272 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
- data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
- data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -750
- data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
- data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -697
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +292 -285
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
- data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -409
- data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
- data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
- data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +407 -393
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -285
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
- data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
- data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
- data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
- data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
- data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
- data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
- data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
- data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
- data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
- data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
- data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +477 -456
- data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
- data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
- data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
- data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
- data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
- data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +260 -257
- data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
- data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
- data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
- data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
- data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
- data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +837 -829
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
- data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
- data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -61
- data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
- data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1317 -1301
- data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
- data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1360 -1310
- data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
- data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
- data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -310
- data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +496 -356
- data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -229
- data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
- data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
- data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -667
- data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
- data/lib/sketchup-api-stubs.rb +1 -1
- metadata +15 -12
@@ -1,454 +1,459 @@
|
|
1
|
-
# Copyright:: Copyright
|
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::
|
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::
|
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
|
-
# +
|
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|
|
176
|
-
#
|
177
|
-
# @
|
178
|
-
#
|
179
|
-
#
|
180
|
-
#
|
181
|
-
#
|
182
|
-
#
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
#
|
187
|
-
#
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
#
|
192
|
-
#
|
193
|
-
#
|
194
|
-
#
|
195
|
-
#
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
#
|
200
|
-
#
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
#
|
205
|
-
#
|
206
|
-
#
|
207
|
-
#
|
208
|
-
#
|
209
|
-
#
|
210
|
-
#
|
211
|
-
#
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
#
|
216
|
-
#
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
#
|
221
|
-
#
|
222
|
-
#
|
223
|
-
#
|
224
|
-
#
|
225
|
-
#
|
226
|
-
#
|
227
|
-
#
|
228
|
-
#
|
229
|
-
#
|
230
|
-
#
|
231
|
-
#
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
#
|
236
|
-
#
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
#
|
241
|
-
#
|
242
|
-
#
|
243
|
-
#
|
244
|
-
#
|
245
|
-
#
|
246
|
-
#
|
247
|
-
#
|
248
|
-
#
|
249
|
-
#
|
250
|
-
#
|
251
|
-
#
|
252
|
-
#
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
#
|
257
|
-
#
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
#
|
262
|
-
#
|
263
|
-
#
|
264
|
-
#
|
265
|
-
#
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
#
|
270
|
-
#
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
#
|
275
|
-
#
|
276
|
-
#
|
277
|
-
#
|
278
|
-
#
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
#
|
283
|
-
#
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
#
|
288
|
-
#
|
289
|
-
#
|
290
|
-
#
|
291
|
-
#
|
292
|
-
#
|
293
|
-
#
|
294
|
-
#
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
#
|
299
|
-
#
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
#
|
304
|
-
#
|
305
|
-
#
|
306
|
-
#
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
#
|
311
|
-
#
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
#
|
316
|
-
#
|
317
|
-
#
|
318
|
-
#
|
319
|
-
#
|
320
|
-
#
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
#
|
325
|
-
#
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
#
|
330
|
-
#
|
331
|
-
#
|
332
|
-
#
|
333
|
-
#
|
334
|
-
#
|
335
|
-
#
|
336
|
-
#
|
337
|
-
#
|
338
|
-
#
|
339
|
-
#
|
340
|
-
#
|
341
|
-
#
|
342
|
-
#
|
343
|
-
#
|
344
|
-
# @
|
345
|
-
#
|
346
|
-
#
|
347
|
-
#
|
348
|
-
#
|
349
|
-
#
|
350
|
-
#
|
351
|
-
#
|
352
|
-
#
|
353
|
-
#
|
354
|
-
#
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
#
|
359
|
-
#
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
#
|
364
|
-
#
|
365
|
-
#
|
366
|
-
#
|
367
|
-
#
|
368
|
-
#
|
369
|
-
#
|
370
|
-
# @
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
#
|
375
|
-
#
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
#
|
380
|
-
#
|
381
|
-
#
|
382
|
-
# @
|
383
|
-
#
|
384
|
-
#
|
385
|
-
#
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
#
|
390
|
-
#
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
#
|
395
|
-
#
|
396
|
-
#
|
397
|
-
#
|
398
|
-
#
|
399
|
-
#
|
400
|
-
# @
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
#
|
405
|
-
#
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
#
|
410
|
-
#
|
411
|
-
#
|
412
|
-
#
|
413
|
-
#
|
414
|
-
#
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
#
|
419
|
-
#
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
#
|
424
|
-
#
|
425
|
-
#
|
426
|
-
#
|
427
|
-
#
|
428
|
-
#
|
429
|
-
#
|
430
|
-
#
|
431
|
-
#
|
432
|
-
#
|
433
|
-
#
|
434
|
-
#
|
435
|
-
#
|
436
|
-
#
|
437
|
-
#
|
438
|
-
#
|
439
|
-
#
|
440
|
-
# @
|
441
|
-
#
|
442
|
-
#
|
443
|
-
#
|
444
|
-
#
|
445
|
-
#
|
446
|
-
#
|
447
|
-
#
|
448
|
-
#
|
449
|
-
#
|
450
|
-
#
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
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
|