sketchup-api-stubs 0.7.9 → 0.7.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -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 +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 -476
  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 -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 +747 -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/Document.rb +569 -517
  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 +356 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  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 +459 -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 -82
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  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 +278 -278
  51. data/lib/sketchup-api-stubs/stubs/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 -169
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -150
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -281
  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 -121
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -659
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  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 -449
  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 -406
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1242 -1239
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -125
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -937
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -282
  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 -406
  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 -326
  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 -114
  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 -317
  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 +1656 -1652
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -130
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -490
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -116
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -361
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +480 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +373 -361
  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 -458
  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 -255
  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 -834
  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 -75
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1329 -1311
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1394 -1377
  144. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  145. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +387 -389
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +505 -494
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -241
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -635
  151. data/lib/sketchup-api-stubs/stubs/UI.rb +728 -683
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +3 -3
@@ -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 2024 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