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.
- checksums.yaml +4 -4
- data/lib/sketchup-api-stubs/sketchup.rb +151 -147
- data/lib/sketchup-api-stubs/stubs/{array.rb → Array.rb} +741 -741
- data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
- data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
- data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
- data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
- data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
- data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
- data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +509 -509
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -478
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
- data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
- data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
- data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -691
- data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -351
- data/lib/sketchup-api-stubs/stubs/{languagehandler.rb → LanguageHandler.rb} +93 -92
- data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -573
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -411
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -179
- data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
- data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +517 -515
- data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
- data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
- data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
- data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -349
- data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
- data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
- data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
- data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
- data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
- data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
- data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
- data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
- data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
- data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
- data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
- data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
- data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
- data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
- data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
- data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -0
- data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -694
- data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
- data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
- data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
- data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
- data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
- data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
- data/lib/sketchup-api-stubs/stubs/{length.rb → Length.rb} +278 -278
- data/lib/sketchup-api-stubs/stubs/{numeric.rb → Numeric.rb} +249 -249
- data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -144
- data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -157
- data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -152
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -286
- data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
- data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -302
- data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -478
- data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
- data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -122
- data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -577
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -594
- data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
- data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
- data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
- data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +449 -425
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
- data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
- data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +406 -396
- data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -502
- data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1239 -1126
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -545
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
- data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -126
- data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -917
- data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -104
- data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -292
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
- data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -468
- data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
- data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
- data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +406 -405
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -306
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -327
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -422
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -427
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -249
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -112
- data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
- data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -414
- data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +317 -318
- data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
- data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
- data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1652 -1654
- data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -131
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -284
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
- data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
- data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -363
- data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
- data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -478
- data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +361 -364
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
- data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
- data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +458 -459
- data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
- data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
- data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +255 -257
- data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
- data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
- data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
- data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -217
- data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
- data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -217
- data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +834 -835
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
- data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
- data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -71
- data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
- data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1311 -1307
- data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
- data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1377 -1353
- data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
- data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
- data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -317
- data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +494 -478
- data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
- data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -240
- data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
- data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -672
- data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -311
- data/lib/sketchup-api-stubs.rb +1 -1
- metadata +20 -16
@@ -1,322 +1,322 @@
|
|
1
|
-
# Copyright:: Copyright
|
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
|