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,478 +1,478 @@
1
- # Copyright:: Copyright 2021 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The {Sketchup::PickHelper} class is used to pick entities that reside under
5
- # the current cursor location, similar to native Select tool. Unlike
6
- # {Sketchup::InputPoint}, {Sketchup::PickHelper} uses no inference.
7
- #
8
- # Only {Sketchup::Tool}s react to cursor location and most of these methods are
9
- # only useful in the context of a tool. For example, if you want to determine
10
- # the entity you just clicked, you would use {#do_pick} from within your
11
- # {Sketchup::Tool#onLButtonDown} method.
12
- #
13
- # You can retrieve a PickHelper object using the {Sketchup::View#pick_helper}
14
- # method.
15
- #
16
- # Entities that are picked (found under the
17
- # cursor when a mouse or keyboard event occurs), are called Pick Records and
18
- # are placed in an indexed list.
19
- #
20
- # @note The same {Sketchup::Pickhelper} instance is being reused by SketchUp.
21
- # Don't extend, add methods or redefine methods on this object as it can
22
- # clash with other extensions.
23
- #
24
- # @version SketchUp 6.0
25
- class Sketchup::PickHelper
26
-
27
- # Constants
28
-
29
- PICK_CROSSING = nil # Stub value.
30
- PICK_INSIDE = nil # Stub value.
31
-
32
- # Instance Methods
33
-
34
- # The all_picked method is used to get an array of entities from the
35
- # active entities from all the pick paths. Duplicates might occur if
36
- # there are multiple pick paths for entities that ends in a group or
37
- # component.
38
- #
39
- # For example, if the pick hits at the border of an edge and face
40
- # inside a group there will be two pick paths - one for the face and
41
- # one for the edge. Since this method returns entities from the active
42
- # entities it would return an array with the group two times.
43
- #
44
- # @example
45
- # ph = view.pick_helper
46
- # ph.do_pick(x, y)
47
- # entities = ph.all_picked
48
- #
49
- # @return elements - the array of elements in the pick.
50
- #
51
- # @version SketchUp 6.0
52
- def all_picked
53
- end
54
-
55
- # The best_picked method is used to retrieve the "best" entity picked (entity
56
- # that you would have picked if you were using the select tool).
57
- #
58
- # Returns nil if nothing was picked. You must have called do_pick
59
- # before calling this method.
60
- #
61
- # @example
62
- # ph = view.pick_helper
63
- # ph.do_pick(x, y)
64
- # best_entity = ph.best_picked
65
- #
66
- # @return entity - the best picked entity
67
- #
68
- # @version SketchUp 6.0
69
- def best_picked
70
- end
71
-
72
- # Used to pick a set of entities from a model from a BoundingBox. The pick
73
- # criteria can be for completely-contained or partially-contained entities,
74
- # similar to how the Selection tool works.
75
- #
76
- # @example
77
- # boundingbox = Geom::BoundingBox.new
78
- # boundingbox.add([1, 1, 1], [100, 100, 100])
79
- # ph = Sketchup.active_model.active_view.pick_helper
80
- #
81
- # # Rotate the box 45' around the z-axis
82
- # angle = 45
83
- # transformation = Geom::Transformation.new(ORIGIN, Z_AXIS, angle)
84
- #
85
- # num_picked = ph.boundingbox_pick(boundingbox, Sketchup::PickHelper::PICK_CROSSING, transformation)
86
- # if num_picked > 0
87
- # Sketchup.active_model.selection.add(ph.all_picked)
88
- # end
89
- #
90
- # @param bounding_box
91
- # BoundingBox object defining the volume to use for picking
92
- #
93
- # @param pick_type
94
- # PICK_INSIDE to select entities completely contained or
95
- # PICK_CROSSING to select entities partially contained.
96
- #
97
- # @param [optional] transformation
98
- # Transformation that will be applied to the
99
- # volume defined by the BoundingBox that allows for a
100
- # rotation.
101
- #
102
- # @return The number of Entity objects picked
103
- #
104
- # @version SketchUp 2016
105
- def boundingbox_pick(bounding_box, pick_type, transformation = IDENTITY)
106
- end
107
-
108
- # The count method is used to count the number of entities picked (number of
109
- # pick records)
110
- #
111
- # @example
112
- # number = pickhelper.count
113
- #
114
- # @return number - the number of entities picked
115
- #
116
- # @version SketchUp 6.0
117
- def count
118
- end
119
-
120
- # The depth_at method retrieves the depth of one of the currently picked
121
- # entities in the list of pick records.
122
- #
123
- # @example
124
- # pickhelper = view.pick_helper
125
- # pickhelper.do_pick(x, y)
126
- # # Iterate all pick-routes:
127
- # pickhelper.count.times { |pick_path_index|
128
- # puts pickhelper.depth_at(pick_path_index)
129
- # }
130
- #
131
- # @param index
132
- # A number from 0 to number of items picked minus one.
133
- #
134
- # @return integer - the depth of the entity if successful
135
- #
136
- # @version SketchUp 6.0
137
- def depth_at(index)
138
- end
139
-
140
- # The do_pick method is used to perform the initial pick. This method is
141
- # generally called before any other methods in the PickHelper class.
142
- #
143
- # Returns the number of entities picked. The x and y values are the screen
144
- # coordinates of the point at which would want to do a pick.
145
- #
146
- # @example
147
- # ph = view.pick_helpernum = ph.do_pick(x, y)
148
- #
149
- # @param x
150
- # X screen coordinate for the pick.
151
- #
152
- # @param y
153
- # Y screen coordinate for the pick.
154
- #
155
- # @param aperture
156
- # The size of the pick-aperture.
157
- #
158
- # @return Integer - The number of Entity objects picked
159
- #
160
- # @version SketchUp 6.0
161
- def do_pick(x, y, aperture = 0)
162
- end
163
-
164
- # The element_at method is used to retrieve a specific entity in the list of
165
- # picked elements. This element will be from the active entities.
166
- #
167
- # Use count() to get the number of possible pick paths.
168
- #
169
- # @example
170
- # pickhelper = view.pick_helper
171
- # pickhelper.do_pick(x, y)
172
- # # Iterate all pick-routes:
173
- # pickhelper.count.times { |pick_path_index|
174
- # puts pickhelper.element_at(pick_path_index)
175
- # }
176
- # # You would iterate the same elements in all_picked.
177
- #
178
- # @param index
179
- # A number from 0 to number of items picked minus one.
180
- #
181
- # @return entity - the entity at the index position in the list
182
- # of picked entities.
183
- #
184
- # @version SketchUp 6.0
185
- def element_at(index)
186
- end
187
-
188
- # The {#init} method is used to initialize the PickHelper for testing points.
189
- #
190
- # You do not normally need to call this method, but you can use this if you
191
- # want to call {#test_point} or {#pick_segment} on a lot of points.
192
- #
193
- # If the optional aperture is given, it is given in pixels.
194
- #
195
- # @example
196
- # ph = view.pick_helper
197
- # ph.init(x, y, 5)
198
- # # Find all points picked by the screen click.
199
- # selected = points.select { |point|
200
- # ph.test_point(point)
201
- # }
202
- #
203
- # @param [Integer] x
204
- # X screen coordinate for the pick.
205
- #
206
- # @param [Integer] y
207
- # Y screen coordinate for the pick.
208
- #
209
- # @param [Integer] aperture
210
- # aperture in pixels.
211
- #
212
- # @return [PickHelper] self
213
- #
214
- # @version SketchUp 6.0
215
- def init(x, y, aperture = 0)
216
- end
217
-
218
- # The leaf_at method retrieves the deepest thing in a pick path.
219
- #
220
- # For example, if you have a face that is within a component that is within
221
- # another component, leaf_at returns the face.
222
- #
223
- # Use count() to get the number of possible pick paths.
224
- #
225
- # @example
226
- # pickhelper = view.pick_helper
227
- # pickhelper.do_pick(x, y)
228
- # # Iterate all pick-routes:
229
- # pickhelper.count.times { |pick_path_index|
230
- # p pickhelper.leaf_at(pick_path_index)
231
- # }
232
- #
233
- # @param index
234
- # A number from 0 to number of items picked minus one.
235
- #
236
- # @return entity - the leaf entity
237
- #
238
- # @version SketchUp 6.0
239
- def leaf_at(index)
240
- end
241
-
242
- # The path_at method is used to retrieve the entire path for an entity in the
243
- # pick list (as an array).
244
- #
245
- # If one of the pick paths end in a face nested in a group nested in a
246
- # component this method will return an array of these entities. The Group
247
- # will be first and the face will be last.
248
- #
249
- # The first item in the array will be from the active entities and the last
250
- # item will be a drawing element that is not a group, component or image.
251
- #
252
- # @example
253
- # pickhelper = view.pick_helper
254
- # pickhelper.do_pick(x, y)
255
- # # Iterate all pick-routes:
256
- # pickhelper.count.times { |pick_path_index|
257
- # p pickhelper.path_at(pick_path_index)
258
- # }
259
- #
260
- # @param index
261
- # A number from 0 to number of items picked minus one.
262
- #
263
- # @return array - an array of entities including the leaf
264
- #
265
- # @version SketchUp 6.0
266
- def path_at(index)
267
- end
268
-
269
- # The {#pick_segment} method is used to pick a segment of a polyline curve that
270
- # is defined by an array of points.
271
- #
272
- # If you click on a point in a polyline curve, the index of
273
- # the point in the curve is returned (starting at 0).
274
- #
275
- # If you click on a segment in the polyline curve, the index of the segment is
276
- # returned. Segments are returned by negative indicies and start at index -1
277
- # (for the segment connecting the first two points) and increase by a factor
278
- # of -1 (for example, the segment connecting second and third point is -2).
279
- #
280
- # There is no need to invoke {#do_pick} for this and the results are unrelated.
281
- #
282
- # @example
283
- # point1 = Geom::Point3d.new(0 ,0, 0)
284
- # point2 = Geom::Point3d.new(10, 0, 0)
285
- # segment = [point1, point2]
286
- # ph = view.pick_helper
287
- # # If testing many points this is the fastest way to test.
288
- # ph.init(x, y)
289
- # picked = ph.pick_segment(segment)
290
- # # This do not require .init
291
- # picked = ph.pick_segment(segment, x, y)
292
- #
293
- # @note The return value will be a negative index when a segment is picked.
294
- #
295
- # @overload pick_segment(points)
296
- #
297
- # This is more efficient if you need to test a number of segments for the
298
- # same set of screen coordinates. But then you must use {#init} first.
299
- # @param [Array<Geom::Point3d>] points A series of points in the polyline as
300
- # a list of parameters or an array containing Point3d
301
- # objects.
302
- # @return [Integer, false] an index on success, +false+ on failure
303
- #
304
- # @overload pick_segment(points, x, y, aperture = 0)
305
- #
306
- # @param [Array<Geom::Point3d>] points A series of points in the polyline as
307
- # a list of parameters or an array containing Point3d
308
- # objects.
309
- # @param [Integer] x screen mouse position in pixels.
310
- # @param [Integer] y (required if x given) screen mouse position
311
- # in pixels.
312
- # @param aperture aperture in pixels.
313
- # @return [Integer, false] an index on success, +false+ on failure
314
- #
315
- # @version SketchUp 6.0
316
- def pick_segment(*args)
317
- end
318
-
319
- # The picked_edge method is used to retrieve the "best" Edge picked.
320
- #
321
- # Returns nil if there were no edges picked. You must have called do_pick
322
- # before calling this method.
323
- #
324
- # @example
325
- # ph = view.pick_helper
326
- # ph.do_pick(x, y)
327
- # edge = ph.picked_edge
328
- #
329
- # @return edge - an Edge object if successful
330
- #
331
- # @version SketchUp 6.0
332
- def picked_edge
333
- end
334
-
335
- # The picked_element method retrieves the best drawing element, that is not an
336
- # edge or a face, picked.
337
- #
338
- # Returns nil if nothing was picked. You must have called do_pick
339
- # before calling this method.
340
- #
341
- # @example
342
- # ph = view.pick_helper
343
- # ph.do_pick(x, y)
344
- # entity = ph.picked_element
345
- #
346
- # @param index
347
- #
348
- # @return element - a drawing element that is not an edge or face
349
- # if successful
350
- #
351
- # @version SketchUp 6.0
352
- def picked_element(index)
353
- end
354
-
355
- # The picked_face method is used to retrieve the best face picked.
356
- #
357
- # Returns nil if there were no faces picked. You must have called do_pick
358
- # before calling this method.
359
- #
360
- # @example
361
- # ph = view.pick_helper
362
- # ph.do_pick(x, y)
363
- # face = ph.picked_face
364
- #
365
- # @return face - a Face object if successful
366
- #
367
- # @version SketchUp 6.0
368
- def picked_face
369
- end
370
-
371
- # The {#test_point} method is used to test a point to see if it would be
372
- # selected using the default or given pick aperture.
373
- #
374
- # There is no need to invoke {#do_pick} for this and the results are unrelated.
375
- #
376
- # @example
377
- # ph = view.pick_helper
378
- # # If testing many points this is the fastest way to test.
379
- # ph.init(x, y)
380
- # picked = ph.test_point(point)
381
- # # These do not require init()
382
- # picked = ph.test_point(point, x, y)
383
- # picked = ph.test_point(point, x, y, aperture)
384
- #
385
- # @overload test_point(point)
386
- #
387
- # This is more efficient if you want to test a lot of points using the same
388
- # screen point. But you *must* have called the {#init} method first for this
389
- # to work.
390
- # @param [Geom::Point3d] point
391
- #
392
- # @overload test_point(point, x, y, aperture = 0)
393
- #
394
- # @param [Geom::Point3d] point
395
- # @param [Integer] x
396
- # @param [Integer] y
397
- # @param [Integer] aperture
398
- #
399
- # @return [Boolean]
400
- #
401
- # @version SketchUp 6.0
402
- def test_point(*args)
403
- end
404
-
405
- # The transformation_at method is used to get a transformation at a specific
406
- # pick path index in the pick helper.
407
- #
408
- # The transformation combines the transformation of all groups, components and
409
- # images in the pick path. This transformation can be used to transform the
410
- # coordinates of the leaf entity into the coordinates of the active entities.
411
- #
412
- # @example
413
- # pickhelper = view.pick_helper
414
- # pickhelper.do_pick(x, y)
415
- # # Iterate all pick-routes:
416
- # pickhelper.count.times { |pick_path_index|
417
- # puts pickhelper.transformation_at(pick_path_index)
418
- # }
419
- #
420
- # @example Get transformation for specific picked element
421
- # pickhelper = view.pick_helper
422
- # pickhelper.do_pick(x, y)
423
- # face = pickhelper.picked_face # Face may be inside a group or component.
424
- #
425
- # index = pickhelper.count.times.find { |i| pickhelper.leaf_at(i) == face }
426
- # transformation = index ? pickhelper.transformation_at(index) : IDENTITY
427
- #
428
- # # Face#area is one method that may need a transformation.
429
- # area = face.area(transformation)
430
- #
431
- # @param index
432
- # The index where the transformation should be retrieved.
433
- #
434
- # @return transformation - the transformation found
435
- #
436
- # @version SketchUp 6.0
437
- def transformation_at(index)
438
- end
439
-
440
- # The view method is used to get the view associated with the PickHelper.
441
- #
442
- # @example
443
- # view = pickhelper.view
444
- #
445
- # @return view - the associated view
446
- #
447
- # @version SketchUp 6.0
448
- def view
449
- end
450
-
451
- # Used to pick a set of entities from a model based on a screen coordinate
452
- # rectangular area defined by two points. The pick criteria can be for
453
- # completely-contained or partially-contained entities, similar to how
454
- # the Selection tool works. The z value of the points passed in are ignored.
455
- #
456
- # @example
457
- # ph = Sketchup.active_model.active_view.pick_helper
458
- # start_point = Geom::Point3d.new(100, 100, 0)
459
- # end_point = Geom::Point3d.new(500, 500, 0)
460
- # num_picked = ph.window_pick(start_point, end_point, Sketchup::PickHelper::PICK_CROSSING)
461
- #
462
- # @param start_point
463
- # First screen coordinate point.
464
- #
465
- # @param end_point
466
- # Second screen coordinate point.
467
- #
468
- # @param pick_type
469
- # PICK_INSIDE to select entities completely contained or
470
- # PICK_CROSSING to select entities partially contained.
471
- #
472
- # @return The number of Entity objects picked
473
- #
474
- # @version SketchUp 2016
475
- def window_pick(start_point, end_point, pick_type)
476
- end
477
-
478
- end
1
+ # Copyright:: Copyright 2023 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The {Sketchup::PickHelper} class is used to pick entities that reside under
5
+ # the current cursor location, similar to native Select tool. Unlike
6
+ # {Sketchup::InputPoint}, {Sketchup::PickHelper} uses no inference.
7
+ #
8
+ # Only {Sketchup::Tool}s react to cursor location and most of these methods are
9
+ # only useful in the context of a tool. For example, if you want to determine
10
+ # the entity you just clicked, you would use {#do_pick} from within your
11
+ # {Sketchup::Tool#onLButtonDown} method.
12
+ #
13
+ # You can retrieve a PickHelper object using the {Sketchup::View#pick_helper}
14
+ # method.
15
+ #
16
+ # Entities that are picked (found under the
17
+ # cursor when a mouse or keyboard event occurs), are called Pick Records and
18
+ # are placed in an indexed list.
19
+ #
20
+ # @note The same {Sketchup::Pickhelper} instance is being reused by SketchUp.
21
+ # Don't extend, add methods or redefine methods on this object as it can
22
+ # clash with other extensions.
23
+ #
24
+ # @version SketchUp 6.0
25
+ class Sketchup::PickHelper
26
+
27
+ # Constants
28
+
29
+ PICK_CROSSING = nil # Stub value.
30
+ PICK_INSIDE = nil # Stub value.
31
+
32
+ # Instance Methods
33
+
34
+ # The all_picked method is used to get an array of entities from the
35
+ # active entities from all the pick paths. Duplicates might occur if
36
+ # there are multiple pick paths for entities that ends in a group or
37
+ # component.
38
+ #
39
+ # For example, if the pick hits at the border of an edge and face
40
+ # inside a group there will be two pick paths - one for the face and
41
+ # one for the edge. Since this method returns entities from the active
42
+ # entities it would return an array with the group two times.
43
+ #
44
+ # @example
45
+ # ph = view.pick_helper
46
+ # ph.do_pick(x, y)
47
+ # entities = ph.all_picked
48
+ #
49
+ # @return elements - the array of elements in the pick.
50
+ #
51
+ # @version SketchUp 6.0
52
+ def all_picked
53
+ end
54
+
55
+ # The best_picked method is used to retrieve the "best" entity picked (entity
56
+ # that you would have picked if you were using the select tool).
57
+ #
58
+ # Returns nil if nothing was picked. You must have called do_pick
59
+ # before calling this method.
60
+ #
61
+ # @example
62
+ # ph = view.pick_helper
63
+ # ph.do_pick(x, y)
64
+ # best_entity = ph.best_picked
65
+ #
66
+ # @return entity - the best picked entity
67
+ #
68
+ # @version SketchUp 6.0
69
+ def best_picked
70
+ end
71
+
72
+ # Used to pick a set of entities from a model from a {Geom::BoundingBox}. The pick
73
+ # criteria can be for completely-contained or partially-contained entities,
74
+ # similar to how the Selection tool works.
75
+ #
76
+ # @example
77
+ # boundingbox = Geom::BoundingBox.new
78
+ # boundingbox.add([1, 1, 1], [100, 100, 100])
79
+ # ph = Sketchup.active_model.active_view.pick_helper
80
+ #
81
+ # # Rotate the box 45' around the z-axis
82
+ # angle = 45
83
+ # transformation = Geom::Transformation.new(ORIGIN, Z_AXIS, angle)
84
+ #
85
+ # num_picked = ph.boundingbox_pick(boundingbox, Sketchup::PickHelper::PICK_CROSSING,
86
+ # transformation)
87
+ # if num_picked > 0
88
+ # Sketchup.active_model.selection.add(ph.all_picked)
89
+ # end
90
+ #
91
+ # @param [Geom::BoundingBox] bounding_box
92
+ # Bounding box defining the volume to use for picking.
93
+ #
94
+ # @param [Integer] pick_type
95
+ # {PICK_INSIDE} to select entities completely contained or
96
+ # {PICK_CROSSING} to select entities partially contained.
97
+ #
98
+ # @param [Geom::Transformation] transformation
99
+ # Transformation that will be applied to the volume defined by the
100
+ # +bounding_box+ that allows for a rotation.
101
+ #
102
+ # @return [Integer] The number of entities picked
103
+ #
104
+ # @version SketchUp 2016
105
+ def boundingbox_pick(bounding_box, pick_type, transformation = IDENTITY)
106
+ end
107
+
108
+ # The count method is used to count the number of entities picked (number of
109
+ # pick records)
110
+ #
111
+ # @example
112
+ # number = pickhelper.count
113
+ #
114
+ # @return number - the number of entities picked
115
+ #
116
+ # @version SketchUp 6.0
117
+ def count
118
+ end
119
+
120
+ # The depth_at method retrieves the depth of one of the currently picked
121
+ # entities in the list of pick records.
122
+ #
123
+ # @example
124
+ # pickhelper = view.pick_helper
125
+ # pickhelper.do_pick(x, y)
126
+ # # Iterate all pick-routes:
127
+ # pickhelper.count.times { |pick_path_index|
128
+ # puts pickhelper.depth_at(pick_path_index)
129
+ # }
130
+ #
131
+ # @param index
132
+ # A number from 0 to number of items picked minus one.
133
+ #
134
+ # @return integer - the depth of the entity if successful
135
+ #
136
+ # @version SketchUp 6.0
137
+ def depth_at(index)
138
+ end
139
+
140
+ # The do_pick method is used to perform the initial pick. This method is
141
+ # generally called before any other methods in the PickHelper class.
142
+ #
143
+ # Returns the number of entities picked. The x and y values are the screen
144
+ # coordinates of the point at which would want to do a pick.
145
+ #
146
+ # @example
147
+ # ph = view.pick_helpernum = ph.do_pick(x, y)
148
+ #
149
+ # @param x
150
+ # X screen coordinate for the pick.
151
+ #
152
+ # @param y
153
+ # Y screen coordinate for the pick.
154
+ #
155
+ # @param aperture
156
+ # The size of the pick-aperture.
157
+ #
158
+ # @return Integer - The number of Entity objects picked
159
+ #
160
+ # @version SketchUp 6.0
161
+ def do_pick(x, y, aperture = 0)
162
+ end
163
+
164
+ # The element_at method is used to retrieve a specific entity in the list of
165
+ # picked elements. This element will be from the active entities.
166
+ #
167
+ # Use count() to get the number of possible pick paths.
168
+ #
169
+ # @example
170
+ # pickhelper = view.pick_helper
171
+ # pickhelper.do_pick(x, y)
172
+ # # Iterate all pick-routes:
173
+ # pickhelper.count.times { |pick_path_index|
174
+ # puts pickhelper.element_at(pick_path_index)
175
+ # }
176
+ # # You would iterate the same elements in all_picked.
177
+ #
178
+ # @param index
179
+ # A number from 0 to number of items picked minus one.
180
+ #
181
+ # @return entity - the entity at the index position in the list
182
+ # of picked entities.
183
+ #
184
+ # @version SketchUp 6.0
185
+ def element_at(index)
186
+ end
187
+
188
+ # The {#init} method is used to initialize the PickHelper for testing points.
189
+ #
190
+ # You do not normally need to call this method, but you can use this if you
191
+ # want to call {#test_point} or {#pick_segment} on a lot of points.
192
+ #
193
+ # If the optional aperture is given, it is given in pixels.
194
+ #
195
+ # @example
196
+ # ph = view.pick_helper
197
+ # ph.init(x, y, 5)
198
+ # # Find all points picked by the screen click.
199
+ # selected = points.select { |point|
200
+ # ph.test_point(point)
201
+ # }
202
+ #
203
+ # @param [Integer] x
204
+ # X screen coordinate for the pick.
205
+ #
206
+ # @param [Integer] y
207
+ # Y screen coordinate for the pick.
208
+ #
209
+ # @param [Integer] aperture
210
+ # aperture in pixels.
211
+ #
212
+ # @return [Sketchup::PickHelper]
213
+ #
214
+ # @version SketchUp 6.0
215
+ def init(x, y, aperture = 0)
216
+ end
217
+
218
+ # The leaf_at method retrieves the deepest thing in a pick path.
219
+ #
220
+ # For example, if you have a face that is within a component that is within
221
+ # another component, leaf_at returns the face.
222
+ #
223
+ # Use count() to get the number of possible pick paths.
224
+ #
225
+ # @example
226
+ # pickhelper = view.pick_helper
227
+ # pickhelper.do_pick(x, y)
228
+ # # Iterate all pick-routes:
229
+ # pickhelper.count.times { |pick_path_index|
230
+ # p pickhelper.leaf_at(pick_path_index)
231
+ # }
232
+ #
233
+ # @param index
234
+ # A number from 0 to number of items picked minus one.
235
+ #
236
+ # @return entity - the leaf entity
237
+ #
238
+ # @version SketchUp 6.0
239
+ def leaf_at(index)
240
+ end
241
+
242
+ # The path_at method is used to retrieve the entire path for an entity in the
243
+ # pick list (as an array).
244
+ #
245
+ # If one of the pick paths end in a face nested in a group nested in a
246
+ # component this method will return an array of these entities. The Group
247
+ # will be first and the face will be last.
248
+ #
249
+ # The first item in the array will be from the active entities and the last
250
+ # item will be a drawing element that is not a group, component or image.
251
+ #
252
+ # @example
253
+ # pickhelper = view.pick_helper
254
+ # pickhelper.do_pick(x, y)
255
+ # # Iterate all pick-routes:
256
+ # pickhelper.count.times { |pick_path_index|
257
+ # p pickhelper.path_at(pick_path_index)
258
+ # }
259
+ #
260
+ # @param index
261
+ # A number from 0 to number of items picked minus one.
262
+ #
263
+ # @return array - an array of entities including the leaf
264
+ #
265
+ # @version SketchUp 6.0
266
+ def path_at(index)
267
+ end
268
+
269
+ # The {#pick_segment} method is used to pick a segment of a polyline curve that
270
+ # is defined by an array of points.
271
+ #
272
+ # If you click on a point in a polyline curve, the index of
273
+ # the point in the curve is returned (starting at 0).
274
+ #
275
+ # If you click on a segment in the polyline curve, the index of the segment is
276
+ # returned. Segments are returned by negative indicies and start at index -1
277
+ # (for the segment connecting the first two points) and increase by a factor
278
+ # of -1 (for example, the segment connecting second and third point is -2).
279
+ #
280
+ # There is no need to invoke {#do_pick} for this and the results are unrelated.
281
+ #
282
+ # @example
283
+ # point1 = Geom::Point3d.new(0 ,0, 0)
284
+ # point2 = Geom::Point3d.new(10, 0, 0)
285
+ # segment = [point1, point2]
286
+ # ph = view.pick_helper
287
+ # # If testing many points this is the fastest way to test.
288
+ # ph.init(x, y)
289
+ # picked = ph.pick_segment(segment)
290
+ # # This do not require .init
291
+ # picked = ph.pick_segment(segment, x, y)
292
+ #
293
+ # @note The return value will be a negative index when a segment is picked.
294
+ #
295
+ # @overload pick_segment(points)
296
+ #
297
+ # This is more efficient if you need to test a number of segments for the
298
+ # same set of screen coordinates. But then you must use {#init} first.
299
+ # @param [Array<Geom::Point3d>] points A series of points in the polyline as
300
+ # a list of parameters or an array containing Point3d
301
+ # objects.
302
+ # @return [Integer, false] an index on success, +false+ on failure
303
+ #
304
+ # @overload pick_segment(points, x, y, aperture = 0)
305
+ #
306
+ # @param [Array<Geom::Point3d>] points A series of points in the polyline as
307
+ # a list of parameters or an array containing Point3d
308
+ # objects.
309
+ # @param [Integer] x screen mouse position in pixels.
310
+ # @param [Integer] y (required if x given) screen mouse position
311
+ # in pixels.
312
+ # @param aperture aperture in pixels.
313
+ # @return [Integer, false] an index on success, +false+ on failure
314
+ #
315
+ # @version SketchUp 6.0
316
+ def pick_segment(*args)
317
+ end
318
+
319
+ # The picked_edge method is used to retrieve the "best" Edge picked.
320
+ #
321
+ # Returns nil if there were no edges picked. You must have called do_pick
322
+ # before calling this method.
323
+ #
324
+ # @example
325
+ # ph = view.pick_helper
326
+ # ph.do_pick(x, y)
327
+ # edge = ph.picked_edge
328
+ #
329
+ # @return edge - an Edge object if successful
330
+ #
331
+ # @version SketchUp 6.0
332
+ def picked_edge
333
+ end
334
+
335
+ # The picked_element method retrieves the best drawing element, that is not an
336
+ # edge or a face, picked.
337
+ #
338
+ # Returns nil if nothing was picked. You must have called do_pick
339
+ # before calling this method.
340
+ #
341
+ # @example
342
+ # ph = view.pick_helper
343
+ # ph.do_pick(x, y)
344
+ # entity = ph.picked_element
345
+ #
346
+ # @param index
347
+ #
348
+ # @return element - a drawing element that is not an edge or face
349
+ # if successful
350
+ #
351
+ # @version SketchUp 6.0
352
+ def picked_element(index)
353
+ end
354
+
355
+ # The picked_face method is used to retrieve the best face picked.
356
+ #
357
+ # Returns nil if there were no faces picked. You must have called do_pick
358
+ # before calling this method.
359
+ #
360
+ # @example
361
+ # ph = view.pick_helper
362
+ # ph.do_pick(x, y)
363
+ # face = ph.picked_face
364
+ #
365
+ # @return face - a Face object if successful
366
+ #
367
+ # @version SketchUp 6.0
368
+ def picked_face
369
+ end
370
+
371
+ # The {#test_point} method is used to test a point to see if it would be
372
+ # selected using the default or given pick aperture.
373
+ #
374
+ # There is no need to invoke {#do_pick} for this and the results are unrelated.
375
+ #
376
+ # @example
377
+ # ph = view.pick_helper
378
+ # # If testing many points this is the fastest way to test.
379
+ # ph.init(x, y)
380
+ # picked = ph.test_point(point)
381
+ # # These do not require init()
382
+ # picked = ph.test_point(point, x, y)
383
+ # picked = ph.test_point(point, x, y, aperture)
384
+ #
385
+ # @overload test_point(point)
386
+ #
387
+ # This is more efficient if you want to test a lot of points using the same
388
+ # screen point. But you *must* have called the {#init} method first for this
389
+ # to work.
390
+ # @param [Geom::Point3d] point
391
+ #
392
+ # @overload test_point(point, x, y, aperture = 0)
393
+ #
394
+ # @param [Geom::Point3d] point
395
+ # @param [Integer] x
396
+ # @param [Integer] y
397
+ # @param [Integer] aperture
398
+ #
399
+ # @return [Boolean]
400
+ #
401
+ # @version SketchUp 6.0
402
+ def test_point(*args)
403
+ end
404
+
405
+ # The transformation_at method is used to get a transformation at a specific
406
+ # pick path index in the pick helper.
407
+ #
408
+ # The transformation combines the transformation of all groups, components and
409
+ # images in the pick path. This transformation can be used to transform the
410
+ # coordinates of the leaf entity into the coordinates of the active entities.
411
+ #
412
+ # @example
413
+ # pickhelper = view.pick_helper
414
+ # pickhelper.do_pick(x, y)
415
+ # # Iterate all pick-routes:
416
+ # pickhelper.count.times { |pick_path_index|
417
+ # puts pickhelper.transformation_at(pick_path_index)
418
+ # }
419
+ #
420
+ # @example Get transformation for specific picked element
421
+ # pickhelper = view.pick_helper
422
+ # pickhelper.do_pick(x, y)
423
+ # face = pickhelper.picked_face # Face may be inside a group or component.
424
+ #
425
+ # index = pickhelper.count.times.find { |i| pickhelper.leaf_at(i) == face }
426
+ # transformation = index ? pickhelper.transformation_at(index) : IDENTITY
427
+ #
428
+ # # Face#area is one method that may need a transformation.
429
+ # area = face.area(transformation)
430
+ #
431
+ # @param index
432
+ # The index where the transformation should be retrieved.
433
+ #
434
+ # @return transformation - the transformation found
435
+ #
436
+ # @version SketchUp 6.0
437
+ def transformation_at(index)
438
+ end
439
+
440
+ # The view method is used to get the view associated with the PickHelper.
441
+ #
442
+ # @example
443
+ # view = pickhelper.view
444
+ #
445
+ # @return view - the associated view
446
+ #
447
+ # @version SketchUp 6.0
448
+ def view
449
+ end
450
+
451
+ # Used to pick a set of entities from a model based on a screen coordinate
452
+ # rectangular area defined by two points. The pick criteria can be for
453
+ # completely-contained or partially-contained entities, similar to how
454
+ # the Selection tool works. The z value of the points passed in are ignored.
455
+ #
456
+ # @example
457
+ # ph = Sketchup.active_model.active_view.pick_helper
458
+ # start_point = Geom::Point3d.new(100, 100, 0)
459
+ # end_point = Geom::Point3d.new(500, 500, 0)
460
+ # num_picked = ph.window_pick(start_point, end_point, Sketchup::PickHelper::PICK_CROSSING)
461
+ #
462
+ # @param start_point
463
+ # First screen coordinate point.
464
+ #
465
+ # @param end_point
466
+ # Second screen coordinate point.
467
+ #
468
+ # @param pick_type
469
+ # PICK_INSIDE to select entities completely contained or
470
+ # PICK_CROSSING to select entities partially contained.
471
+ #
472
+ # @return The number of Entity objects picked
473
+ #
474
+ # @version SketchUp 2016
475
+ def window_pick(start_point, end_point, pick_type)
476
+ end
477
+
478
+ end