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,318 +1,322 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # Bounding boxes are three-dimensional boxes (eight corners), aligned with the
5
- # global axes, that surround entities within your model. There is a default
6
- # bounding box for any new model that will surround all entities,
7
- # including all groups and components. Additionally, there are
8
- # bounding boxes for Drawingelement objects, including components and groups.
9
- # Bounding boxes are only large enough to exactly bound the entities within
10
- # your model, group, or component.
11
- #
12
- # You can also create arbitrary BoundingBox objects by calling BoundingBox.new.
13
- #
14
- # @example
15
- # # You can get the bounding box on a model.
16
- # model = Sketchup.active_model
17
- # model_bb = model.bounds
18
- #
19
- # # Or you can get the bounding box on any Drawingelement object.
20
- # first_entity = model.entities[0]
21
- # first_entity_bb = first_entity.bounds
22
- #
23
- # # Or you can create an empty bounding box of your own.
24
- # boundingbox = Geom::BoundingBox.new
25
- #
26
- # @note that the bounding box returned for face-me components is the center of
27
- # its entire range of motion. This behavior changed in SketchUp 7.1. In 7.0
28
- # and earlier, the .bounds method would return the bounds around the
29
- # face-me component's current, visible center.
30
- #
31
- # @version SketchUp 6.0
32
- class Geom::BoundingBox
33
-
34
- # Instance Methods
35
-
36
- # The add method is used to add a point, vertex, or other bounding boxes to the
37
- # bounding box. The size of the bounding box will increase as necessary to
38
- # accommodate the new items.
39
- #
40
- # Adding one point to an empty bounding box does not increase the size of the
41
- # bounding box. You must add at least two points before methods such as
42
- # BoundingBox.diagonal will return a size greater than zero.
43
- #
44
- # @example
45
- # model = Sketchup.active_model
46
- # boundingbox = model.bounds
47
- # point1 = Geom::Point3d.new(100, 200, 300)
48
- # point2 = Geom::Point3d.new(200, 400, 200)
49
- # boundingbox.add(point1, point2)
50
- #
51
- # @overload add(point_or_bb)
52
- #
53
- # @param [Geom::Point3d, Geom::BoundingBox, Sketchup::Vertex] point_or_bb
54
- #
55
- # @overload add(points_or_bb)
56
- #
57
- # @param [Array<Geom::Point3d, Geom::BoundingBox, Sketchup::Vertex>]
58
- # points_or_bb
59
- #
60
- # @return [Geom::BoundingBox]
61
- #
62
- # @version SketchUp 6.0
63
- def add(*args)
64
- end
65
-
66
- # The center method is used to retrieve the Point3d object at the center of
67
- # the bounding box.
68
- #
69
- # @example
70
- # boundingbox = Geom::BoundingBox.new
71
- # boundingbox.add([100, 200, -400], [200, 400, 100])
72
- # # This will return a point Point3d(150, 300, -150).
73
- # point = boundingbox.center
74
- #
75
- # @return [Geom::Point3d] the Point3d at the center of the bounding box
76
- # if successful
77
- #
78
- # @version SketchUp 6.0
79
- def center
80
- end
81
-
82
- # The clear method is used to clear a bounding box.
83
- #
84
- # A cleared BoundingBox does not have a size greater than zero until you add
85
- # at least two points or another bounding box.
86
- #
87
- # @example
88
- # boundingbox = Geom::BoundingBox.new
89
- # boundingbox.add([100, 200, -400], [200, 400, 100])
90
- #
91
- # # This will return false.
92
- # boundingbox.empty?
93
- #
94
- # boundingbox.clear
95
- # # This will return true.
96
- # boundingbox.empty?
97
- #
98
- # @return [Geom::BoundingBox] the BoundingBox object which was cleared
99
- #
100
- # @version SketchUp 6.0
101
- def clear
102
- end
103
-
104
- # This method is used to determine if a bounding box contains a specific
105
- # Point3d or BoundingBox object.
106
- #
107
- # @example
108
- # boundingbox = Geom::BoundingBox.new
109
- # boundingbox.add([100, 200, -400], [200, 400, 100])
110
- # # This will return false.
111
- # boundingbox.contains?([300, 100, 400])
112
- # # This will return true.
113
- # boundingbox.contains?([150, 300, -200])
114
- #
115
- # @param [Geom::Point3d, Geom::BoundingBox] point_or_bb
116
- #
117
- # @return [Boolean]
118
- #
119
- # @version SketchUp 6.0
120
- def contains?(point_or_bb)
121
- end
122
-
123
- # The corner method is used to retrieve a point object at a specified corner
124
- # of the bounding box.
125
- #
126
- # There are 8 corners to a bounding box, identified by the numbers 0 through 7.
127
- # Points are returned in the currently set units (inches, by default). These
128
- # are which index refers to which corner:
129
- #
130
- # - 0 = [0, 0, 0] (left front bottom)
131
- # - 1 = [1, 0, 0] (right front bottom)
132
- # - 2 = [0, 1, 0] (left back bottom)
133
- # - 3 = [1, 1, 0] (right back bottom)
134
- # - 4 = [0, 0, 1] (left front top)
135
- # - 5 = [1, 0, 1] (right front top)
136
- # - 6 = [0, 1, 1] (left back top)
137
- # - 7 = [1, 1, 1] (right back top)
138
- #
139
- # @example
140
- # boundingbox = Geom::BoundingBox.new
141
- # boundingbox.add([100, 200, -400], [200, 400, 100])
142
- # # This will return Point3d(100, 200, -400).
143
- # boundingbox.corner(0)
144
- # # This will return Point3d(100, 200, -400).
145
- # boundingbox.corner(6)
146
- #
147
- # @param [Integer] corner_index
148
- # A number (from 0 to 7) representing point at the
149
- # corner you want to retrieve.
150
- #
151
- # @return [Geom::Point3d] a Point3d object if successful
152
- #
153
- # @version SketchUp 6.0
154
- def corner(corner_index)
155
- end
156
-
157
- # The {#depth} method is used to retrieve the depth of the bounding box.
158
- #
159
- # @example
160
- # boundingbox = Geom::BoundingBox.new
161
- # boundingbox.add([100, 200, -400], [200, 400, 100])
162
- # # This will return a Length of 500.0.
163
- # length = boundingbox.depth
164
- #
165
- # @return [Length] the depth of the bounding box
166
- #
167
- # @version SketchUp 6.0
168
- def depth
169
- end
170
-
171
- # The {#diagonal} method is used to get the length of the diagonal of the
172
- # bounding box.
173
- #
174
- # @example
175
- # boundingbox = Geom::BoundingBox.new
176
- # boundingbox.add([100, 200, -400], [200, 400, 100])
177
- # # This will return a point a Length of ~547.72.
178
- # length = boundingbox.diagonal
179
- #
180
- # @return [Length] the size of the diagonal for the bounding
181
- # box
182
- #
183
- # @version SketchUp 6.0
184
- def diagonal
185
- end
186
-
187
- # The empty? method is used to determine if a bounding box is empty (such as
188
- # if the bounds have not been set.) This returns the opposite of the valid?
189
- # method.
190
- #
191
- # @example
192
- # boundingbox = Geom::BoundingBox.new
193
- # boundingbox.add([100, 200, -400], [200, 400, 100])
194
- # # This will return false.
195
- # boundingbox.empty?
196
- #
197
- # @return [Boolean]
198
- #
199
- # @version SketchUp 6.0
200
- def empty?
201
- end
202
-
203
- # The {#height} method is used to retrieve the height of the bounding box.
204
- #
205
- # @example
206
- # boundingbox = Geom::BoundingBox.new
207
- # boundingbox.add([100, 200, -400], [200, 400, 100])
208
- # # This will return a Length of 200.0.
209
- # length = boundingbox.height
210
- #
211
- # @return [Length] the height of the bounding box
212
- #
213
- # @version SketchUp 6.0
214
- def height
215
- end
216
-
217
- # The new method is used to create a new, empty, bounding box.
218
- #
219
- # @example
220
- # boundingbox = Geom::BoundingBox.new
221
- #
222
- # @return [Geom::BoundingBox] a BoundingBox object if successful
223
- #
224
- # @version SketchUp 6.0
225
- def initialize
226
- end
227
-
228
- # The intersect method is used to retrieve a bounding box that is the result
229
- # of intersecting one bounding box with another.
230
- #
231
- # @example
232
- # boundingbox1 = Geom::BoundingBox.new
233
- # boundingbox1.add([100, 200, -400], [200, 400, 300])
234
- # boundingbox2 = Geom::BoundingBox.new
235
- # boundingbox2.add([150, 350, 100], [200, 400, 500])
236
- # # The returned boundingbox is a result of the intersection of the two.
237
- # boundingbox = boundingbox1.intersect(boundingbox2)
238
- #
239
- # @note Prior to SU2015 this method would return incorrect result in some
240
- # cases. For correct result in these versions you must first check if the
241
- # boundingboxes actually overlap - then call this to get the resulting
242
- # boundingbox.
243
- #
244
- # @param [Geom::BoundingBox] boundingbox
245
- # A second boundbox which might intersect boundingbox1.
246
- #
247
- # @return [Geom::BoundingBox] the resulting BoundingBox object if
248
- # successful, an empty BoundingBox object if unsuccessful.
249
- #
250
- # @version SketchUp 6.0
251
- def intersect(boundingbox)
252
- end
253
-
254
- # The max method is used to retrieve the Point3d object where x, y and z are
255
- # maximum in the bounding box.
256
- #
257
- # If you attempt to call the max method on an empty bounding box, you will
258
- # receive a very large negative number.
259
- #
260
- # @example
261
- # boundingbox = Geom::BoundingBox.new
262
- # boundingbox.add([100, 200, -400], [700, 900, 800], [200, 400, 100])
263
- # # This will return a point Point3d(700, 900, 800).
264
- # point = boundingbox.max
265
- #
266
- # @return [Geom::Point3d] a Point3d object representing the point where
267
- # x, y, and z are the maximum in the bounding box.
268
- #
269
- # @version SketchUp 6.0
270
- def max
271
- end
272
-
273
- # The min method is used to retrieve the Point3d where x, y and z are minimum
274
- # in the bounding box.
275
- #
276
- # @example
277
- # boundingbox = Geom::BoundingBox.new
278
- # boundingbox.add([100, 200, -400], [700, 900, 800], [200, 400, 100])
279
- # # This will return a point Point3d(100, 200, -400).
280
- # point = boundingbox.min
281
- #
282
- # @return [Geom::Point3d] a Point3d object representing the point where
283
- # x, y, and z are the maximum in the bounding box.
284
- #
285
- # @version SketchUp 6.0
286
- def min
287
- end
288
-
289
- # The valid method is used to determine if a bounding box is valid (contains
290
- # points).
291
- #
292
- # @example
293
- # boundingbox = Geom::BoundingBox.new
294
- # boundingbox.add([100, 200, -400], [200, 400, 100])
295
- # # This will return true.
296
- # boundingbox.valid?
297
- #
298
- # @return [Boolean]
299
- #
300
- # @version SketchUp 6.0
301
- def valid?
302
- end
303
-
304
- # The {#width} method is used to retrieve the width of the bounding box.
305
- #
306
- # @example
307
- # boundingbox = Geom::BoundingBox.new
308
- # boundingbox.add([100, 200, -400], [200, 400, 100])
309
- # # This will return a Length of 100.0.
310
- # length = boundingbox.width
311
- #
312
- # @return [Length] the width of the bounding box
313
- #
314
- # @version SketchUp 6.0
315
- def width
316
- end
317
-
318
- end
1
+ # Copyright:: Copyright 2022 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # Bounding boxes are three-dimensional boxes (eight corners), aligned with the
5
+ # axes, that surround entities within your model. There is a default
6
+ # bounding box for any new model that will surround all entities,
7
+ # including all groups and components. Additionally, there are
8
+ # bounding boxes for Drawingelement objects, including components and groups.
9
+ # Bounding boxes are only large enough to exactly bound the entities within
10
+ # your model, group, or component.
11
+ #
12
+ # You can also create arbitrary BoundingBox objects by calling BoundingBox.new.
13
+ #
14
+ # @example
15
+ # # You can get the bounding box on a model.
16
+ # model = Sketchup.active_model
17
+ # model_bb = model.bounds
18
+ #
19
+ # # Or you can get the bounding box on any Drawingelement object.
20
+ # first_entity = model.entities[0]
21
+ # first_entity_bb = first_entity.bounds
22
+ #
23
+ # # Or you can create an empty bounding box of your own.
24
+ # boundingbox = Geom::BoundingBox.new
25
+ #
26
+ # @note that the bounding box returned for face-me components is the center of
27
+ # its entire range of motion. This behavior changed in SketchUp 7.1. In 7.0
28
+ # and earlier, the .bounds method would return the bounds around the
29
+ # face-me component's current, visible center.
30
+ #
31
+ # @version SketchUp 6.0
32
+ class Geom::BoundingBox
33
+
34
+ # Instance Methods
35
+
36
+ # The add method is used to add a point, vertex, or other bounding boxes to the
37
+ # bounding box. The size of the bounding box will increase as necessary to
38
+ # accommodate the new items.
39
+ #
40
+ # Adding one point to an empty bounding box does not increase the size of the
41
+ # bounding box. You must add at least two points before methods such as
42
+ # BoundingBox.diagonal will return a size greater than zero.
43
+ #
44
+ # @example
45
+ # model = Sketchup.active_model
46
+ # boundingbox = model.bounds
47
+ # point1 = Geom::Point3d.new(100, 200, 300)
48
+ # point2 = Geom::Point3d.new(200, 400, 200)
49
+ # boundingbox.add(point1, point2)
50
+ #
51
+ # @overload add(point_or_bb)
52
+ #
53
+ # @param [Geom::Point3d, Geom::BoundingBox, Sketchup::Vertex] point_or_bb
54
+ #
55
+ # @overload add(points_or_bb)
56
+ #
57
+ # @param [Array<Geom::Point3d, Geom::BoundingBox, Sketchup::Vertex>]
58
+ # points_or_bb
59
+ #
60
+ # @return [Geom::BoundingBox]
61
+ #
62
+ # @version SketchUp 6.0
63
+ def add(*args)
64
+ end
65
+
66
+ # The center method is used to retrieve the Point3d object at the center of
67
+ # the bounding box.
68
+ #
69
+ # @example
70
+ # boundingbox = Geom::BoundingBox.new
71
+ # boundingbox.add([100, 200, -400], [200, 400, 100])
72
+ # # This will return a point Point3d(150, 300, -150).
73
+ # point = boundingbox.center
74
+ #
75
+ # @return [Geom::Point3d] the Point3d at the center of the bounding box
76
+ # if successful
77
+ #
78
+ # @version SketchUp 6.0
79
+ def center
80
+ end
81
+
82
+ # The clear method is used to clear a bounding box.
83
+ #
84
+ # A cleared BoundingBox does not have a size greater than zero until you add
85
+ # at least two points or another bounding box.
86
+ #
87
+ # @example
88
+ # boundingbox = Geom::BoundingBox.new
89
+ # boundingbox.add([100, 200, -400], [200, 400, 100])
90
+ #
91
+ # # This will return false.
92
+ # boundingbox.empty?
93
+ #
94
+ # boundingbox.clear
95
+ # # This will return true.
96
+ # boundingbox.empty?
97
+ #
98
+ # @return [Geom::BoundingBox] the BoundingBox object which was cleared
99
+ #
100
+ # @version SketchUp 6.0
101
+ def clear
102
+ end
103
+
104
+ # This method is used to determine if a bounding box contains a specific
105
+ # Point3d or BoundingBox object.
106
+ #
107
+ # @example
108
+ # boundingbox = Geom::BoundingBox.new
109
+ # boundingbox.add([100, 200, -400], [200, 400, 100])
110
+ # # This will return false.
111
+ # boundingbox.contains?([300, 100, 400])
112
+ # # This will return true.
113
+ # boundingbox.contains?([150, 300, -200])
114
+ #
115
+ # @param [Geom::Point3d, Geom::BoundingBox] point_or_bb
116
+ #
117
+ # @return [Boolean]
118
+ #
119
+ # @version SketchUp 6.0
120
+ def contains?(point_or_bb)
121
+ end
122
+
123
+ # The corner method is used to retrieve a point object at a specified corner
124
+ # of the bounding box.
125
+ #
126
+ # There are 8 corners to a bounding box, identified by the numbers 0 through 7.
127
+ # Points are returned in the currently set units (inches, by default). These
128
+ # are which index refers to which corner:
129
+ #
130
+ # - 0 = [0, 0, 0] (left front bottom)
131
+ # - 1 = [1, 0, 0] (right front bottom)
132
+ # - 2 = [0, 1, 0] (left back bottom)
133
+ # - 3 = [1, 1, 0] (right back bottom)
134
+ # - 4 = [0, 0, 1] (left front top)
135
+ # - 5 = [1, 0, 1] (right front top)
136
+ # - 6 = [0, 1, 1] (left back top)
137
+ # - 7 = [1, 1, 1] (right back top)
138
+ #
139
+ # @example
140
+ # boundingbox = Geom::BoundingBox.new
141
+ # boundingbox.add([100, 200, -400], [200, 400, 100])
142
+ # # This will return Point3d(100, 200, -400).
143
+ # boundingbox.corner(0)
144
+ # # This will return Point3d(100, 200, -400).
145
+ # boundingbox.corner(6)
146
+ #
147
+ # @param [Integer] corner_index
148
+ # A number (from 0 to 7) representing point at the
149
+ # corner you want to retrieve.
150
+ #
151
+ # @return [Geom::Point3d] a Point3d object if successful
152
+ #
153
+ # @version SketchUp 6.0
154
+ def corner(corner_index)
155
+ end
156
+
157
+ # The {#depth} method is used to retrieve the Z extents of the bounding box.
158
+ #
159
+ # @example
160
+ # boundingbox = Geom::BoundingBox.new
161
+ # boundingbox.add([100, 200, -400], [200, 400, 100])
162
+ # # This will return a Length of 500.0.
163
+ # height = boundingbox.depth
164
+ #
165
+ # @note In SketchUp's coordinate system, this corresponds to the height.
166
+ #
167
+ # @return [Length]
168
+ #
169
+ # @version SketchUp 6.0
170
+ def depth
171
+ end
172
+
173
+ # The {#diagonal} method is used to get the length of the diagonal of the
174
+ # bounding box.
175
+ #
176
+ # @example
177
+ # boundingbox = Geom::BoundingBox.new
178
+ # boundingbox.add([100, 200, -400], [200, 400, 100])
179
+ # # This will return a point a Length of ~547.72.
180
+ # length = boundingbox.diagonal
181
+ #
182
+ # @return [Length] the size of the diagonal for the bounding
183
+ # box
184
+ #
185
+ # @version SketchUp 6.0
186
+ def diagonal
187
+ end
188
+
189
+ # The empty? method is used to determine if a bounding box is empty (such as
190
+ # if the bounds have not been set.) This returns the opposite of the valid?
191
+ # method.
192
+ #
193
+ # @example
194
+ # boundingbox = Geom::BoundingBox.new
195
+ # boundingbox.add([100, 200, -400], [200, 400, 100])
196
+ # # This will return false.
197
+ # boundingbox.empty?
198
+ #
199
+ # @return [Boolean]
200
+ #
201
+ # @version SketchUp 6.0
202
+ def empty?
203
+ end
204
+
205
+ # The {#height} method is used to retrieve the Y extent of the bounding box.
206
+ #
207
+ # @example
208
+ # boundingbox = Geom::BoundingBox.new
209
+ # boundingbox.add([100, 200, -400], [200, 400, 100])
210
+ # # This will return a Length of 200.0.
211
+ # depth = boundingbox.height
212
+ #
213
+ # @note In SketchUp's coordinate system, this corersponds to the depth.
214
+ #
215
+ # @return [Length]
216
+ #
217
+ # @version SketchUp 6.0
218
+ def height
219
+ end
220
+
221
+ # The new method is used to create a new, empty, bounding box.
222
+ #
223
+ # @example
224
+ # boundingbox = Geom::BoundingBox.new
225
+ #
226
+ # @return [Geom::BoundingBox] a BoundingBox object if successful
227
+ #
228
+ # @version SketchUp 6.0
229
+ def initialize
230
+ end
231
+
232
+ # The intersect method is used to retrieve a bounding box that is the result
233
+ # of intersecting one bounding box with another.
234
+ #
235
+ # @example
236
+ # boundingbox1 = Geom::BoundingBox.new
237
+ # boundingbox1.add([100, 200, -400], [200, 400, 300])
238
+ # boundingbox2 = Geom::BoundingBox.new
239
+ # boundingbox2.add([150, 350, 100], [200, 400, 500])
240
+ # # The returned boundingbox is a result of the intersection of the two.
241
+ # boundingbox = boundingbox1.intersect(boundingbox2)
242
+ #
243
+ # @note Prior to SU2015 this method would return incorrect result in some
244
+ # cases. For correct result in these versions you must first check if the
245
+ # boundingboxes actually overlap - then call this to get the resulting
246
+ # boundingbox.
247
+ #
248
+ # @param [Geom::BoundingBox] boundingbox
249
+ # A second boundbox which might intersect boundingbox1.
250
+ #
251
+ # @return [Geom::BoundingBox] the resulting BoundingBox object if
252
+ # successful, an empty BoundingBox object if unsuccessful.
253
+ #
254
+ # @version SketchUp 6.0
255
+ def intersect(boundingbox)
256
+ end
257
+
258
+ # The max method is used to retrieve the Point3d object where x, y and z are
259
+ # maximum in the bounding box.
260
+ #
261
+ # If you attempt to call the max method on an empty bounding box, you will
262
+ # receive a very large negative number.
263
+ #
264
+ # @example
265
+ # boundingbox = Geom::BoundingBox.new
266
+ # boundingbox.add([100, 200, -400], [700, 900, 800], [200, 400, 100])
267
+ # # This will return a point Point3d(700, 900, 800).
268
+ # point = boundingbox.max
269
+ #
270
+ # @return [Geom::Point3d] a Point3d object representing the point where
271
+ # x, y, and z are the maximum in the bounding box.
272
+ #
273
+ # @version SketchUp 6.0
274
+ def max
275
+ end
276
+
277
+ # The min method is used to retrieve the Point3d where x, y and z are minimum
278
+ # in the bounding box.
279
+ #
280
+ # @example
281
+ # boundingbox = Geom::BoundingBox.new
282
+ # boundingbox.add([100, 200, -400], [700, 900, 800], [200, 400, 100])
283
+ # # This will return a point Point3d(100, 200, -400).
284
+ # point = boundingbox.min
285
+ #
286
+ # @return [Geom::Point3d] a Point3d object representing the point where
287
+ # x, y, and z are the maximum in the bounding box.
288
+ #
289
+ # @version SketchUp 6.0
290
+ def min
291
+ end
292
+
293
+ # The valid method is used to determine if a bounding box is valid (contains
294
+ # points).
295
+ #
296
+ # @example
297
+ # boundingbox = Geom::BoundingBox.new
298
+ # boundingbox.add([100, 200, -400], [200, 400, 100])
299
+ # # This will return true.
300
+ # boundingbox.valid?
301
+ #
302
+ # @return [Boolean]
303
+ #
304
+ # @version SketchUp 6.0
305
+ def valid?
306
+ end
307
+
308
+ # The {#width} method is used to retrieve the X extent of the bounding box.
309
+ #
310
+ # @example
311
+ # boundingbox = Geom::BoundingBox.new
312
+ # boundingbox.add([100, 200, -400], [200, 400, 100])
313
+ # # This will return a Length of 100.0.
314
+ # width = boundingbox.width
315
+ #
316
+ # @return [Length]
317
+ #
318
+ # @version SketchUp 6.0
319
+ def width
320
+ end
321
+
322
+ end