sketchup-api-stubs 0.7.9 → 0.7.11

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 (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +157 -151
  3. data/lib/sketchup-api-stubs/stubs/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 +182 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +111 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +423 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +693 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +535 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +500 -476
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +267 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +133 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +547 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +678 -693
  16. data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
  17. data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +751 -747
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Dictionary.rb +234 -0
  23. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +683 -517
  24. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  26. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +464 -353
  27. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  28. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  29. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  30. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  31. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  33. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  34. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  35. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +614 -567
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  37. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  38. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +282 -183
  39. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +458 -387
  40. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  41. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +346 -344
  42. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  43. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
  44. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  45. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1565 -1519
  46. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  49. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  50. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  51. data/lib/sketchup-api-stubs/stubs/Length.rb +286 -278
  52. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +196 -144
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +145 -150
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +296 -302
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +473 -478
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +673 -659
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +600 -593
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +252 -257
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +443 -449
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +167 -165
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +403 -406
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1282 -1239
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Environment.rb +406 -0
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Environments.rb +185 -0
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/EnvironmentsObserver.rb +113 -0
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +122 -125
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +1006 -937
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +740 -750
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +289 -282
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +64 -62
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +405 -468
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +432 -406
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +307 -306
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +332 -326
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +380 -422
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +409 -427
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +241 -249
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +55 -48
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/LoadHandler.rb +70 -0
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +1115 -414
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +330 -317
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1714 -1652
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +372 -357
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +133 -130
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +463 -490
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +104 -116
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +939 -797
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +388 -361
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +501 -478
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +385 -361
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +451 -458
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +211 -212
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +259 -255
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Snap.rb +125 -0
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +88 -69
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +263 -217
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +283 -262
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +199 -217
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +924 -834
  143. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  144. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  145. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  146. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +143 -142
  147. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1566 -1311
  148. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +71 -45
  149. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1429 -1377
  150. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  151. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  152. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +399 -389
  153. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +580 -494
  154. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +280 -269
  155. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +258 -241
  156. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +636 -635
  157. data/lib/sketchup-api-stubs/stubs/UI.rb +791 -683
  158. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  159. data/lib/sketchup-api-stubs.rb +1 -1
  160. metadata +10 -24
@@ -1,322 +1,322 @@
1
- # Copyright:: Copyright 2023 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
1
+ # Copyright:: Copyright 2026 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, 400, 100).
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