sketchup-api-stubs 0.7.7 → 0.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -147
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → Array.rb} +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +509 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -478
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -691
  16. data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -351
  17. data/lib/sketchup-api-stubs/stubs/{languagehandler.rb → LanguageHandler.rb} +93 -92
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -573
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -179
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +517 -515
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -349
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -0
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -694
  44. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  45. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  49. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  50. data/lib/sketchup-api-stubs/stubs/{length.rb → Length.rb} +278 -278
  51. data/lib/sketchup-api-stubs/stubs/{numeric.rb → Numeric.rb} +249 -249
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -144
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -157
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -152
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -286
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -302
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -478
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -122
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -577
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -594
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +449 -425
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +406 -396
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -502
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1239 -1126
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -0
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -126
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -917
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -104
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -292
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -468
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +406 -405
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -306
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -327
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -422
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -427
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -249
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -112
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -414
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +317 -318
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1652 -1654
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -131
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -284
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -0
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -0
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -363
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +361 -364
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +458 -459
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +255 -257
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -217
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -217
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +834 -835
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -71
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1311 -1307
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1377 -1353
  144. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  145. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -317
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +494 -478
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -240
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
  151. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -672
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -311
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +20 -16
@@ -1,322 +1,322 @@
1
- # Copyright:: Copyright 2021 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 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