sketchup-api-stubs 0.7.9 → 0.7.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/sketchup-api-stubs/sketchup.rb +157 -151
- data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
- data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
- data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +182 -172
- data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +111 -126
- data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
- data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +423 -400
- data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +693 -661
- data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +535 -509
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +500 -476
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +267 -263
- data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +133 -141
- data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +547 -522
- data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +678 -693
- data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
- data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
- data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +751 -747
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
- data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
- data/lib/sketchup-api-stubs/stubs/Layout/Dictionary.rb +234 -0
- data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +683 -517
- 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 +464 -353
- data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
- 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 +614 -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 +282 -183
- data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +458 -387
- data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
- data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +346 -344
- data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
- data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
- data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
- data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1565 -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 +286 -278
- data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
- data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +196 -144
- data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
- data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +145 -150
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +294 -281
- data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
- data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +296 -302
- data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +473 -478
- data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
- data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
- data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +673 -659
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +600 -593
- data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
- data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +252 -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 +443 -449
- 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 +167 -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 +403 -406
- data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
- data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1282 -1239
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
- data/lib/sketchup-api-stubs/stubs/Sketchup/Environment.rb +406 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Environments.rb +185 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/EnvironmentsObserver.rb +113 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +122 -125
- data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +1006 -937
- data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
- data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +740 -750
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +289 -282
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +64 -62
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
- data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +405 -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 +432 -406
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +307 -306
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +332 -326
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +380 -422
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +409 -427
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +241 -249
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +55 -48
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
- data/lib/sketchup-api-stubs/stubs/Sketchup/LoadHandler.rb +70 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
- data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +1115 -414
- data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +330 -317
- 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 +1714 -1652
- data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +372 -357
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +133 -130
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
- data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +463 -490
- data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +104 -116
- data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +939 -797
- data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +388 -361
- data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
- data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +501 -478
- data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +385 -361
- 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 +451 -458
- data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
- data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +211 -212
- data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +259 -255
- 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/Snap.rb +125 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +88 -69
- data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +263 -217
- data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +283 -262
- data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +199 -217
- data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +924 -834
- 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 -75
- data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +143 -142
- data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1566 -1311
- data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +71 -45
- data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1429 -1377
- data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
- data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
- data/lib/sketchup-api-stubs/stubs/UI/Command.rb +399 -389
- data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +580 -494
- data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +280 -269
- data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +258 -241
- data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +636 -635
- data/lib/sketchup-api-stubs/stubs/UI.rb +791 -683
- data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
- data/lib/sketchup-api-stubs.rb +1 -1
- metadata +10 -24
|
@@ -1,522 +1,547 @@
|
|
|
1
|
-
# Copyright:: Copyright
|
|
2
|
-
# License:: The MIT License (MIT)
|
|
3
|
-
|
|
4
|
-
# The {Geom::Vector2d} class represents vectors in a 2 dimensional space.
|
|
5
|
-
#
|
|
6
|
-
# There are numerous tutorials on 2D vectors available on the internet.
|
|
7
|
-
#
|
|
8
|
-
# @version LayOut 2018
|
|
9
|
-
class Geom::Vector2d
|
|
10
|
-
|
|
11
|
-
# Instance Methods
|
|
12
|
-
|
|
13
|
-
# The {#%} method
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
#
|
|
19
|
-
#
|
|
20
|
-
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
# @
|
|
24
|
-
#
|
|
25
|
-
# @
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
#
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
#
|
|
34
|
-
#
|
|
35
|
-
#
|
|
36
|
-
#
|
|
37
|
-
#
|
|
38
|
-
#
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
-
#
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
#
|
|
46
|
-
#
|
|
47
|
-
#
|
|
48
|
-
#
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
#
|
|
53
|
-
#
|
|
54
|
-
# @
|
|
55
|
-
#
|
|
56
|
-
#
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
#
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
#
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
#
|
|
68
|
-
#
|
|
69
|
-
# @
|
|
70
|
-
#
|
|
71
|
-
#
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
#
|
|
76
|
-
#
|
|
77
|
-
#
|
|
78
|
-
# @
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
#
|
|
83
|
-
#
|
|
84
|
-
#
|
|
85
|
-
#
|
|
86
|
-
#
|
|
87
|
-
#
|
|
88
|
-
#
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
#
|
|
93
|
-
#
|
|
94
|
-
#
|
|
95
|
-
# @
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
#
|
|
100
|
-
#
|
|
101
|
-
#
|
|
102
|
-
#
|
|
103
|
-
#
|
|
104
|
-
#
|
|
105
|
-
#
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
#
|
|
110
|
-
#
|
|
111
|
-
#
|
|
112
|
-
# @
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
#
|
|
117
|
-
#
|
|
118
|
-
#
|
|
119
|
-
#
|
|
120
|
-
#
|
|
121
|
-
#
|
|
122
|
-
#
|
|
123
|
-
# @
|
|
124
|
-
#
|
|
125
|
-
#
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
#
|
|
130
|
-
#
|
|
131
|
-
#
|
|
132
|
-
# @
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
#
|
|
137
|
-
#
|
|
138
|
-
#
|
|
139
|
-
#
|
|
140
|
-
#
|
|
141
|
-
#
|
|
142
|
-
#
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
#
|
|
147
|
-
#
|
|
148
|
-
#
|
|
149
|
-
# @
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
#
|
|
154
|
-
#
|
|
155
|
-
#
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
#
|
|
160
|
-
#
|
|
161
|
-
#
|
|
162
|
-
# @
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
#
|
|
167
|
-
#
|
|
168
|
-
#
|
|
169
|
-
#
|
|
170
|
-
#
|
|
171
|
-
#
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
# The
|
|
176
|
-
#
|
|
177
|
-
#
|
|
178
|
-
# @
|
|
179
|
-
#
|
|
180
|
-
#
|
|
181
|
-
#
|
|
182
|
-
#
|
|
183
|
-
#
|
|
184
|
-
#
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
#
|
|
192
|
-
#
|
|
193
|
-
#
|
|
194
|
-
#
|
|
195
|
-
#
|
|
196
|
-
#
|
|
197
|
-
#
|
|
198
|
-
#
|
|
199
|
-
#
|
|
200
|
-
#
|
|
201
|
-
#
|
|
202
|
-
#
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
#
|
|
207
|
-
#
|
|
208
|
-
#
|
|
209
|
-
#
|
|
210
|
-
#
|
|
211
|
-
#
|
|
212
|
-
#
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
#
|
|
217
|
-
#
|
|
218
|
-
# @
|
|
219
|
-
#
|
|
220
|
-
#
|
|
221
|
-
#
|
|
222
|
-
#
|
|
223
|
-
#
|
|
224
|
-
# @
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
#
|
|
229
|
-
#
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
#
|
|
234
|
-
#
|
|
235
|
-
# @
|
|
236
|
-
#
|
|
237
|
-
#
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
#
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
#
|
|
246
|
-
#
|
|
247
|
-
#
|
|
248
|
-
#
|
|
249
|
-
#
|
|
250
|
-
#
|
|
251
|
-
#
|
|
252
|
-
# @return [
|
|
253
|
-
#
|
|
254
|
-
# @version LayOut 2018
|
|
255
|
-
def length
|
|
256
|
-
end
|
|
257
|
-
|
|
258
|
-
# The {#
|
|
259
|
-
#
|
|
260
|
-
#
|
|
261
|
-
# @example
|
|
262
|
-
# vector = Geom::Vector2d.new(0, 4)
|
|
263
|
-
#
|
|
264
|
-
#
|
|
265
|
-
#
|
|
266
|
-
#
|
|
267
|
-
#
|
|
268
|
-
# @
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
#
|
|
275
|
-
#
|
|
276
|
-
#
|
|
277
|
-
#
|
|
278
|
-
# vector.
|
|
279
|
-
#
|
|
280
|
-
#
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
#
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
#
|
|
289
|
-
#
|
|
290
|
-
#
|
|
291
|
-
#
|
|
292
|
-
#
|
|
293
|
-
#
|
|
294
|
-
#
|
|
295
|
-
#
|
|
296
|
-
#
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
#
|
|
302
|
-
#
|
|
303
|
-
#
|
|
304
|
-
#
|
|
305
|
-
#
|
|
306
|
-
#
|
|
307
|
-
#
|
|
308
|
-
#
|
|
309
|
-
#
|
|
310
|
-
#
|
|
311
|
-
#
|
|
312
|
-
#
|
|
313
|
-
#
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
#
|
|
319
|
-
#
|
|
320
|
-
#
|
|
321
|
-
# @example
|
|
322
|
-
#
|
|
323
|
-
#
|
|
324
|
-
#
|
|
325
|
-
#
|
|
326
|
-
#
|
|
327
|
-
#
|
|
328
|
-
#
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
#
|
|
336
|
-
#
|
|
337
|
-
#
|
|
338
|
-
#
|
|
339
|
-
#
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
#
|
|
344
|
-
#
|
|
345
|
-
#
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
#
|
|
350
|
-
#
|
|
351
|
-
#
|
|
352
|
-
#
|
|
353
|
-
#
|
|
354
|
-
#
|
|
355
|
-
#
|
|
356
|
-
# @version LayOut 2018
|
|
357
|
-
def
|
|
358
|
-
end
|
|
359
|
-
|
|
360
|
-
# The {#
|
|
361
|
-
#
|
|
362
|
-
#
|
|
363
|
-
#
|
|
364
|
-
#
|
|
365
|
-
#
|
|
366
|
-
#
|
|
367
|
-
#
|
|
368
|
-
#
|
|
369
|
-
#
|
|
370
|
-
#
|
|
371
|
-
#
|
|
372
|
-
#
|
|
373
|
-
#
|
|
374
|
-
#
|
|
375
|
-
#
|
|
376
|
-
#
|
|
377
|
-
#
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
#
|
|
383
|
-
#
|
|
384
|
-
# @example
|
|
385
|
-
#
|
|
386
|
-
#
|
|
387
|
-
#
|
|
388
|
-
#
|
|
389
|
-
#
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
#
|
|
394
|
-
#
|
|
395
|
-
#
|
|
396
|
-
#
|
|
397
|
-
#
|
|
398
|
-
#
|
|
399
|
-
# @
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
#
|
|
406
|
-
#
|
|
407
|
-
#
|
|
408
|
-
#
|
|
409
|
-
#
|
|
410
|
-
#
|
|
411
|
-
#
|
|
412
|
-
#
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
#
|
|
417
|
-
#
|
|
418
|
-
#
|
|
419
|
-
#
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
#
|
|
424
|
-
#
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
#
|
|
429
|
-
#
|
|
430
|
-
#
|
|
431
|
-
#
|
|
432
|
-
#
|
|
433
|
-
#
|
|
434
|
-
#
|
|
435
|
-
#
|
|
436
|
-
#
|
|
437
|
-
#
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
#
|
|
442
|
-
#
|
|
443
|
-
#
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
#
|
|
448
|
-
#
|
|
449
|
-
#
|
|
450
|
-
#
|
|
451
|
-
#
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
#
|
|
456
|
-
#
|
|
457
|
-
#
|
|
458
|
-
#
|
|
459
|
-
#
|
|
460
|
-
#
|
|
461
|
-
#
|
|
462
|
-
# @
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
#
|
|
469
|
-
#
|
|
470
|
-
#
|
|
471
|
-
#
|
|
472
|
-
#
|
|
473
|
-
#
|
|
474
|
-
# @return [
|
|
475
|
-
#
|
|
476
|
-
# @version LayOut 2018
|
|
477
|
-
def
|
|
478
|
-
end
|
|
479
|
-
|
|
480
|
-
# The {#
|
|
481
|
-
#
|
|
482
|
-
#
|
|
483
|
-
#
|
|
484
|
-
# vector
|
|
485
|
-
#
|
|
486
|
-
#
|
|
487
|
-
#
|
|
488
|
-
#
|
|
489
|
-
# @
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
#
|
|
496
|
-
#
|
|
497
|
-
#
|
|
498
|
-
#
|
|
499
|
-
#
|
|
500
|
-
#
|
|
501
|
-
# @
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
#
|
|
508
|
-
#
|
|
509
|
-
#
|
|
510
|
-
#
|
|
511
|
-
#
|
|
512
|
-
#
|
|
513
|
-
#
|
|
514
|
-
#
|
|
515
|
-
#
|
|
516
|
-
# @
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
1
|
+
# Copyright:: Copyright 2026 Trimble Inc.
|
|
2
|
+
# License:: The MIT License (MIT)
|
|
3
|
+
|
|
4
|
+
# The {Geom::Vector2d} class represents vectors in a 2 dimensional space.
|
|
5
|
+
#
|
|
6
|
+
# There are numerous tutorials on 2D vectors available on the internet.
|
|
7
|
+
#
|
|
8
|
+
# @version LayOut 2018
|
|
9
|
+
class Geom::Vector2d
|
|
10
|
+
|
|
11
|
+
# Instance Methods
|
|
12
|
+
|
|
13
|
+
# The {#%} method is used to compute the dot product between two vectors.
|
|
14
|
+
#
|
|
15
|
+
# This is an alias of the {#dot} method.
|
|
16
|
+
#
|
|
17
|
+
# @example
|
|
18
|
+
# vector1 = Geom::Vector2d.new(4, 5)
|
|
19
|
+
# vector2 = Geom::Vector2d.new(7, 1)
|
|
20
|
+
# # The result is 33
|
|
21
|
+
# dot = vector1 % vector2
|
|
22
|
+
#
|
|
23
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
24
|
+
#
|
|
25
|
+
# @return [Float]
|
|
26
|
+
#
|
|
27
|
+
# @see #dot
|
|
28
|
+
#
|
|
29
|
+
# @version SketchUp 6.0
|
|
30
|
+
def %(vector)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# The {#*} method returns the cross product between two {Geom::Vector2d}. This
|
|
34
|
+
# is an alias of the cross method.
|
|
35
|
+
#
|
|
36
|
+
# @example
|
|
37
|
+
# vector1 = Geom::Vector2d.new(2, 5)
|
|
38
|
+
# vector2 = Geom::Vector2d.new(5, 1)
|
|
39
|
+
# # The result is -23
|
|
40
|
+
# cross = vector1 * vector2
|
|
41
|
+
#
|
|
42
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
43
|
+
#
|
|
44
|
+
# @return [Float]
|
|
45
|
+
#
|
|
46
|
+
# @see #cross
|
|
47
|
+
#
|
|
48
|
+
# @version LayOut 2018
|
|
49
|
+
def *(vector)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# The {#+} method adds a {Geom::Vector2d} to this one.
|
|
53
|
+
#
|
|
54
|
+
# @example
|
|
55
|
+
# vector1 = Geom::Vector2d.new(0, 2)
|
|
56
|
+
# vector2 = Geom::Vector2d.new(1, 0)
|
|
57
|
+
# new_vector = vector1 + vector2
|
|
58
|
+
#
|
|
59
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
60
|
+
#
|
|
61
|
+
# @return [Geom::Vector2d]
|
|
62
|
+
#
|
|
63
|
+
# @version LayOut 2018
|
|
64
|
+
def +(vector)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# The {#-} method subtracts a {Geom::Vector2d} from this one.
|
|
68
|
+
#
|
|
69
|
+
# @example
|
|
70
|
+
# vector1 = Geom::Vector2d.new(0, 2)
|
|
71
|
+
# vector2 = Geom::Vector2d.new(1, 0)
|
|
72
|
+
# new_vector = vector1 - vector2
|
|
73
|
+
#
|
|
74
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
75
|
+
#
|
|
76
|
+
# @return [Geom::Vector2d]
|
|
77
|
+
#
|
|
78
|
+
# @version LayOut 2018
|
|
79
|
+
def -(vector)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# The {#==} method returns whether two {Geom::Vector2d} are equal within
|
|
83
|
+
# tolerance.
|
|
84
|
+
#
|
|
85
|
+
# @example
|
|
86
|
+
# vector1 = Geom::Vector2d.new(1, 0)
|
|
87
|
+
# vector2 = Geom::Vector2d.new(0, 1)
|
|
88
|
+
# # Returns false
|
|
89
|
+
# status = vector1 == vector2
|
|
90
|
+
#
|
|
91
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
92
|
+
#
|
|
93
|
+
# @return [Boolean]
|
|
94
|
+
#
|
|
95
|
+
# @version LayOut 2018
|
|
96
|
+
def ==(vector)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# The {#[]} method returns the value of the {Geom::Vector2d} at the specified
|
|
100
|
+
# index.
|
|
101
|
+
#
|
|
102
|
+
# @example
|
|
103
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
104
|
+
# # Retrieves the y value of 2
|
|
105
|
+
# yvalue = vector[1]
|
|
106
|
+
#
|
|
107
|
+
# @param [Integer] index
|
|
108
|
+
# The index into an array of two coordinates.
|
|
109
|
+
#
|
|
110
|
+
# @return [Float] The value for the x or y coordinate.
|
|
111
|
+
#
|
|
112
|
+
# @version LayOut 2018
|
|
113
|
+
def [](index)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# The {#[]=} method sets the x or y value of the {Geom::Vector2d} based on the
|
|
117
|
+
# specific index of the value.
|
|
118
|
+
#
|
|
119
|
+
# @example
|
|
120
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
121
|
+
# vector[1] = 4
|
|
122
|
+
#
|
|
123
|
+
# @param [Integer] index
|
|
124
|
+
# The index for a specific x or y value in the
|
|
125
|
+
# {Geom::Vector2d} to set
|
|
126
|
+
#
|
|
127
|
+
# @param [Float] value
|
|
128
|
+
# The value to set for x or y
|
|
129
|
+
#
|
|
130
|
+
# @return [Float] The new x or y value if successful
|
|
131
|
+
#
|
|
132
|
+
# @version LayOut 2018
|
|
133
|
+
def []=(index, value)
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
# The {#angle_between} method computes the angle in radians between
|
|
137
|
+
# the {Geom::Vector2d} and another {Geom::Vector2d}.
|
|
138
|
+
#
|
|
139
|
+
# @example
|
|
140
|
+
# vector1 = Geom::Vector2d.new(1, 0)
|
|
141
|
+
# vector2 = Geom::Vector2d.new(-1, 0)
|
|
142
|
+
# # Returns PI
|
|
143
|
+
# angle = vector1.angle_between(vector2)
|
|
144
|
+
#
|
|
145
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
146
|
+
#
|
|
147
|
+
# @return [Float] The angle (in radians)
|
|
148
|
+
#
|
|
149
|
+
# @version LayOut 2018
|
|
150
|
+
def angle_between(vector)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# The {#clone} method makes a copy of the {Geom::Vector2d}. This method is
|
|
154
|
+
# equivalent to vec2 = Geom::Vector2d.new(vec).
|
|
155
|
+
#
|
|
156
|
+
# @example
|
|
157
|
+
# vector = Geom::Vector2d.new(1, 0)
|
|
158
|
+
# new_vector = vector.clone
|
|
159
|
+
#
|
|
160
|
+
# @return [Geom::Vector2d]
|
|
161
|
+
#
|
|
162
|
+
# @version LayOut 2018
|
|
163
|
+
def clone
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
# The {#cross} method returns the cross product between two {Geom::Vector2d}s.
|
|
167
|
+
#
|
|
168
|
+
# The cross product, also called the vector product, is an operation on two
|
|
169
|
+
# vectors. The cross product of two vectors produces a third vector which is
|
|
170
|
+
# perpendicular to the plane in which the first two lie.
|
|
171
|
+
#
|
|
172
|
+
# @example
|
|
173
|
+
# vector1 = Geom::Vector2d.new(3, 3)
|
|
174
|
+
# vector2 = Geom::Vector2d.new(2, 5)
|
|
175
|
+
# # The result is 9
|
|
176
|
+
# cross = vector1.cross(vector2)
|
|
177
|
+
#
|
|
178
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
179
|
+
#
|
|
180
|
+
# @return [Float]
|
|
181
|
+
#
|
|
182
|
+
# @see #*
|
|
183
|
+
#
|
|
184
|
+
# @version LayOut 2018
|
|
185
|
+
def cross(vector)
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
# The {#dot} method is used to compute the dot product between two vectors.
|
|
189
|
+
#
|
|
190
|
+
# @example
|
|
191
|
+
# vector1 = Geom::Vector2d.new(4, 1)
|
|
192
|
+
# # The result is 14
|
|
193
|
+
# vector2 = Geom::Vector2d.new(3, 2)
|
|
194
|
+
# dot = vector1.dot(vector2)
|
|
195
|
+
#
|
|
196
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
197
|
+
#
|
|
198
|
+
# @return [Float]
|
|
199
|
+
#
|
|
200
|
+
# @see #%
|
|
201
|
+
#
|
|
202
|
+
# @version SketchUp 6.0
|
|
203
|
+
def dot(vector)
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
# The {.new} method creates a new {Geom::Vector2d}.
|
|
207
|
+
#
|
|
208
|
+
# @example
|
|
209
|
+
# # A vector that runs along the X axis.
|
|
210
|
+
# vector1 = Geom::Vector2d.new(1, 0)
|
|
211
|
+
#
|
|
212
|
+
# vector2 = Geom::Vector2d.new([5, 6])
|
|
213
|
+
#
|
|
214
|
+
# @overload initialize
|
|
215
|
+
#
|
|
216
|
+
# @return [Geom::Vector2d]
|
|
217
|
+
#
|
|
218
|
+
# @overload initialize(x, y)
|
|
219
|
+
#
|
|
220
|
+
# @param [Float] x The length in the x direction
|
|
221
|
+
# @param [Float] y The length in the y direction
|
|
222
|
+
# @return [Geom::Vector2d]
|
|
223
|
+
#
|
|
224
|
+
# @overload initialize(vector)
|
|
225
|
+
#
|
|
226
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
227
|
+
# @return [Geom::Vector2d]
|
|
228
|
+
#
|
|
229
|
+
# @version LayOut 2018
|
|
230
|
+
def initialize(*args)
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
# The {#inspect} method formats the {Geom::Vector2d} as a string.
|
|
234
|
+
#
|
|
235
|
+
# @example
|
|
236
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
237
|
+
# string = vector.inspect
|
|
238
|
+
#
|
|
239
|
+
# @return [String] the string representation of the {Geom::Vector2d}
|
|
240
|
+
#
|
|
241
|
+
# @version LayOut 2018
|
|
242
|
+
def inspect
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
# The {#length} method returns the length of the {Geom::Vector2d}.
|
|
246
|
+
#
|
|
247
|
+
# @example
|
|
248
|
+
# vector = Geom::Vector2d.new(0, 4)
|
|
249
|
+
# # The result is 4
|
|
250
|
+
# length = vector.length
|
|
251
|
+
#
|
|
252
|
+
# @return [Length] The length of the {Geom::Vector2d}
|
|
253
|
+
#
|
|
254
|
+
# @version LayOut 2018
|
|
255
|
+
def length
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
# The {#length=} method sets the length of the {Geom::Vector2d}. The new length
|
|
259
|
+
# must not be 0.
|
|
260
|
+
#
|
|
261
|
+
# @example
|
|
262
|
+
# vector = Geom::Vector2d.new(0, 4)
|
|
263
|
+
# vector.length = 2
|
|
264
|
+
#
|
|
265
|
+
# @param [Float] length
|
|
266
|
+
# The new length for the {Geom::Vector2d}
|
|
267
|
+
#
|
|
268
|
+
# @return [Length] The new length
|
|
269
|
+
#
|
|
270
|
+
# @version LayOut 2018
|
|
271
|
+
def length=(length)
|
|
272
|
+
end
|
|
273
|
+
|
|
274
|
+
# The {#normalize} method returns a {Geom::Vector2d} that is a unit vector
|
|
275
|
+
# of the {Geom::Vector2d}.
|
|
276
|
+
#
|
|
277
|
+
# @example
|
|
278
|
+
# vector = Geom::Vector2d.new(0, 4)
|
|
279
|
+
# # The result is a Vector2d(0, 1)
|
|
280
|
+
# new_vector = vector.normalize
|
|
281
|
+
#
|
|
282
|
+
# @return [Geom::Vector2d]
|
|
283
|
+
#
|
|
284
|
+
# @version LayOut 2018
|
|
285
|
+
def normalize
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
# The {#normalize!} method converts a {Geom::Vector2d} vector into a unit
|
|
289
|
+
# vector. Another way to do this is +vector.length = 1.0+
|
|
290
|
+
#
|
|
291
|
+
# @example
|
|
292
|
+
# vector = Geom::Vector2d.new(0, 4)
|
|
293
|
+
# # Modifies vector to be the Vector2d(0, 1)
|
|
294
|
+
# vector.normalize!
|
|
295
|
+
#
|
|
296
|
+
# @version LayOut 2018
|
|
297
|
+
def normalize!
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
# The {#parallel?} method determines if two {Geom::Vector2d}s are parallel within a
|
|
301
|
+
# tolerance. Two vectors are parallel if there exists a scalar multiple between them.
|
|
302
|
+
#
|
|
303
|
+
# @example
|
|
304
|
+
# vector1 = Geom::Vector2d.new(0, 1)
|
|
305
|
+
# vector2 = Geom::Vector2d.new(0, -9)
|
|
306
|
+
# # Returns true
|
|
307
|
+
# status = vector1.parallel?(vector2)
|
|
308
|
+
#
|
|
309
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
310
|
+
#
|
|
311
|
+
# @return [Boolean]
|
|
312
|
+
#
|
|
313
|
+
# @version LayOut 2018
|
|
314
|
+
def parallel?(vector)
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
# The {#perpendicular?} method determines if two {Geom::Vector2d}s are
|
|
318
|
+
# perpendicular within a tolerance. Two vectors are considered
|
|
319
|
+
# perpendicular if their dot product is zero.
|
|
320
|
+
#
|
|
321
|
+
# @example
|
|
322
|
+
# vector1 = Geom::Vector2d.new(0, 5)
|
|
323
|
+
# vector2 = Geom::Vector2d.new(1, 0)
|
|
324
|
+
# # Returns true
|
|
325
|
+
# status = vector1.perpendicular?(vector2)
|
|
326
|
+
#
|
|
327
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
328
|
+
#
|
|
329
|
+
# @return [Boolean]
|
|
330
|
+
#
|
|
331
|
+
# @version LayOut 2018
|
|
332
|
+
def perpendicular?(vector)
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
# The {#reverse} method returns a new {Geom::Vector2d} that is the reverse of
|
|
336
|
+
# the {Geom::Vector2d}, leaving the original unchanged.
|
|
337
|
+
#
|
|
338
|
+
# @example
|
|
339
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
340
|
+
# # The result is a Vector2d(-1, -2)
|
|
341
|
+
# new_vector = vector.reverse
|
|
342
|
+
#
|
|
343
|
+
# @return [Geom::Vector2d]
|
|
344
|
+
#
|
|
345
|
+
# @version LayOut 2018
|
|
346
|
+
def reverse
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
# The {#reverse!} method reverses the {Geom::Vector2d} in place.
|
|
350
|
+
#
|
|
351
|
+
# @example
|
|
352
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
353
|
+
# # Modifies vector to be the Vector2d(-1, -2)
|
|
354
|
+
# vector.reverse!
|
|
355
|
+
#
|
|
356
|
+
# @version LayOut 2018
|
|
357
|
+
def reverse!
|
|
358
|
+
end
|
|
359
|
+
|
|
360
|
+
# The {#same_direction?} method determines if the {Geom::Vector2d} is parallel
|
|
361
|
+
# to and in the same direction as another {Geom::Vector2d} within tolerance.
|
|
362
|
+
#
|
|
363
|
+
# @example
|
|
364
|
+
# vector1 = Geom::Vector2d.new(0, 1)
|
|
365
|
+
# vector2 = Geom::Vector2d.new(1, 2)
|
|
366
|
+
# # Returns false
|
|
367
|
+
# status = vector1.same_direction?(vector2)
|
|
368
|
+
#
|
|
369
|
+
# @example
|
|
370
|
+
# vector = Geom::Vector2d.new(0, 2)
|
|
371
|
+
# # Returns true
|
|
372
|
+
# status = vector.same_direction?([0, 4])
|
|
373
|
+
#
|
|
374
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
375
|
+
#
|
|
376
|
+
# @return [Boolean]
|
|
377
|
+
#
|
|
378
|
+
# @version LayOut 2018
|
|
379
|
+
def same_direction?(vector)
|
|
380
|
+
end
|
|
381
|
+
|
|
382
|
+
# The {#set!} method sets the values of the {Geom::Vector2d}.
|
|
383
|
+
#
|
|
384
|
+
# @example
|
|
385
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
386
|
+
# vector = vector.set!([4, 5])
|
|
387
|
+
#
|
|
388
|
+
# @overload set!(vector)
|
|
389
|
+
#
|
|
390
|
+
# @param [Geom::Vector2d, Array(Float, Float)] vector
|
|
391
|
+
# @return [Geom::Vector2d]
|
|
392
|
+
#
|
|
393
|
+
# @overload set!(x, y)
|
|
394
|
+
#
|
|
395
|
+
# @param [Float] x
|
|
396
|
+
# @param [Float] y
|
|
397
|
+
# @return [Geom::Vector2d]
|
|
398
|
+
#
|
|
399
|
+
# @version LayOut 2018
|
|
400
|
+
def set!(*args)
|
|
401
|
+
end
|
|
402
|
+
|
|
403
|
+
# The {#to_a} method retrieves the coordinates of the {Geom::Vector2d} in an
|
|
404
|
+
# Array.
|
|
405
|
+
#
|
|
406
|
+
# @example
|
|
407
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
408
|
+
# array = vector.to_a
|
|
409
|
+
#
|
|
410
|
+
# @return [Array(Float, Float)]
|
|
411
|
+
#
|
|
412
|
+
# @version LayOut 2018
|
|
413
|
+
def to_a
|
|
414
|
+
end
|
|
415
|
+
|
|
416
|
+
# The {#to_s} method returns a string representation of the {Geom::Vector2d}.
|
|
417
|
+
#
|
|
418
|
+
# @example
|
|
419
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
420
|
+
# string = vector.to_s
|
|
421
|
+
#
|
|
422
|
+
# @return [String] the string representation of the {Geom::Vector2d}
|
|
423
|
+
#
|
|
424
|
+
# @version LayOut 2018
|
|
425
|
+
def to_s
|
|
426
|
+
end
|
|
427
|
+
|
|
428
|
+
# The {#transform} method applies a transformation to a vector, returning a new
|
|
429
|
+
# vector. The original vector is unchanged by this method.
|
|
430
|
+
#
|
|
431
|
+
# @example
|
|
432
|
+
# vector = Geom::Vector2d.new(3, 2)
|
|
433
|
+
# point = Geom::Point2d.new(0, 1)
|
|
434
|
+
# transformation = Geom::Transformation2d.scaling(point, 2)
|
|
435
|
+
# # The result is a Vector2d(6, 4)
|
|
436
|
+
# new_vector = vector.transform(transformation)
|
|
437
|
+
#
|
|
438
|
+
# @param [Geom::Transformation2d] transform
|
|
439
|
+
# A transformation object to apply to the vector.
|
|
440
|
+
#
|
|
441
|
+
# @return [Geom::Vector2d] the newly transformed vector
|
|
442
|
+
#
|
|
443
|
+
# @version LayOut 2019
|
|
444
|
+
def transform(transform)
|
|
445
|
+
end
|
|
446
|
+
|
|
447
|
+
# The {#transform!} method applies a transformation to a vector. The vector
|
|
448
|
+
# itself is modified.
|
|
449
|
+
#
|
|
450
|
+
# @example
|
|
451
|
+
# vector = Geom::Vector2d.new(4, 5)
|
|
452
|
+
# point = Geom::Point2d.new(8, 9)
|
|
453
|
+
# transformation = Geom::Transformation2d.scaling(point, 3)
|
|
454
|
+
# # The result is a Vector2d(12, 15)
|
|
455
|
+
# vector.transform!(transformation)
|
|
456
|
+
#
|
|
457
|
+
# @param [Geom::Transformation2d] transform
|
|
458
|
+
# A Transformation object to apply to the vector.
|
|
459
|
+
#
|
|
460
|
+
# @return [Geom::Vector2d] the transformed vector
|
|
461
|
+
#
|
|
462
|
+
# @version LayOut 2019
|
|
463
|
+
def transform!(transform)
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
# The {#unit_vector?} method returns whether the {Geom::Vector2d} is a unit
|
|
467
|
+
# vector. This is equivalent to vector.length == 1.0
|
|
468
|
+
#
|
|
469
|
+
# @example
|
|
470
|
+
# vector = Geom::Vector2d.new(1, 0)
|
|
471
|
+
# # Returns true
|
|
472
|
+
# status = vector.unit_vector?
|
|
473
|
+
#
|
|
474
|
+
# @return [Boolean]
|
|
475
|
+
#
|
|
476
|
+
# @version LayOut 2018
|
|
477
|
+
def unit_vector?
|
|
478
|
+
end
|
|
479
|
+
|
|
480
|
+
# The {#valid?} method verifies if a {Geom::Vector2d} is valid. A
|
|
481
|
+
# {Geom::Vector2d} is valid if its length is not zero.
|
|
482
|
+
#
|
|
483
|
+
# @example
|
|
484
|
+
# vector = Geom::Vector2d.new(0, 4)
|
|
485
|
+
# status = vector.valid?
|
|
486
|
+
#
|
|
487
|
+
# @return [Boolean]
|
|
488
|
+
#
|
|
489
|
+
# @version LayOut 2018
|
|
490
|
+
def valid?
|
|
491
|
+
end
|
|
492
|
+
|
|
493
|
+
# The {#x} method retrieves the x value of the {Geom::Vector2d}.
|
|
494
|
+
#
|
|
495
|
+
# @example
|
|
496
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
497
|
+
# x = vector.x
|
|
498
|
+
#
|
|
499
|
+
# @return [Float]
|
|
500
|
+
#
|
|
501
|
+
# @version LayOut 2018
|
|
502
|
+
def x
|
|
503
|
+
end
|
|
504
|
+
|
|
505
|
+
# The {#x=} method sets the x coordinate of the {Geom::Vector2d}.
|
|
506
|
+
#
|
|
507
|
+
# @example
|
|
508
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
509
|
+
# vector.x = 7
|
|
510
|
+
#
|
|
511
|
+
# @param [Float] x
|
|
512
|
+
# The desired x value of the {Geom::Vector2d}
|
|
513
|
+
#
|
|
514
|
+
# @return [Float] The new x value of the {Geom::Vector2d}
|
|
515
|
+
#
|
|
516
|
+
# @version LayOut 2018
|
|
517
|
+
def x=(x)
|
|
518
|
+
end
|
|
519
|
+
|
|
520
|
+
# The {#y} method retrieves the y value of the {Geom::Vector2d}.
|
|
521
|
+
#
|
|
522
|
+
# @example
|
|
523
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
524
|
+
# y = vector.y
|
|
525
|
+
#
|
|
526
|
+
# @return [Float]
|
|
527
|
+
#
|
|
528
|
+
# @version LayOut 2018
|
|
529
|
+
def y
|
|
530
|
+
end
|
|
531
|
+
|
|
532
|
+
# The {#y=} method sets the y coordinate of the {Geom::Vector2d}.
|
|
533
|
+
#
|
|
534
|
+
# @example
|
|
535
|
+
# vector = Geom::Vector2d.new(1, 2)
|
|
536
|
+
# vector.y = 7
|
|
537
|
+
#
|
|
538
|
+
# @param [Float] y
|
|
539
|
+
# The desired y value of the {Geom::Vector2d}
|
|
540
|
+
#
|
|
541
|
+
# @return [Float] The new y value of the {Geom::Vector2d}
|
|
542
|
+
#
|
|
543
|
+
# @version LayOut 2018
|
|
544
|
+
def y=(y)
|
|
545
|
+
end
|
|
546
|
+
|
|
547
|
+
end
|