sketchup-api-stubs 0.7.4 → 0.7.5

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 (150) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs.rb +1 -1
  3. data/lib/sketchup-api-stubs/sketchup.rb +147 -145
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -318
  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 +498 -492
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -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 +691 -691
  16. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  17. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +573 -573
  18. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +411 -411
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +179 -174
  20. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  21. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +515 -514
  22. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  23. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  25. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -349
  26. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  27. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  28. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  29. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -371
  30. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  31. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -220
  33. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  34. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  36. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  37. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  38. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -204
  39. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  40. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  41. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +694 -694
  42. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  43. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  44. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  47. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
  48. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +157 -157
  49. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  50. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +577 -562
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +604 -593
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +362 -329
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1126 -1119
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +751 -750
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +699 -697
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +285 -285
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +417 -409
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +405 -393
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +327 -285
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -456
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +257 -257
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +835 -829
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +71 -61
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1307 -1301
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
  135. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +317 -310
  136. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +387 -356
  137. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +255 -229
  138. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  139. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -633
  140. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
  141. data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
  142. data/lib/sketchup-api-stubs/stubs/geom.rb +351 -348
  143. data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
  144. data/lib/sketchup-api-stubs/stubs/length.rb +278 -278
  145. data/lib/sketchup-api-stubs/stubs/numeric.rb +249 -249
  146. data/lib/sketchup-api-stubs/stubs/sketchup.rb +1342 -1310
  147. data/lib/sketchup-api-stubs/stubs/sketchupextension.rb +353 -353
  148. data/lib/sketchup-api-stubs/stubs/string.rb +24 -24
  149. data/lib/sketchup-api-stubs/stubs/ui.rb +668 -667
  150. metadata +4 -2
@@ -1,102 +1,102 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The OrientedBounds2d class is a bounding box represented by four
5
- # {Geom::Point2d} objects, upper left, upper right, lower left and lower right
6
- # positions.
7
- #
8
- # @version LayOut 2018
9
- class Geom::OrientedBounds2d
10
-
11
- # Instance Methods
12
-
13
- # The {#==} method checks to see if the two {Geom::OrientedBounds2d}s are
14
- # equal. This checks whether the point values are the same.
15
- #
16
- # @example
17
- # entity.bounds == entity.untransformed_bounds
18
- #
19
- # @param [Geom::OrientedBounds2d] other
20
- #
21
- # @return [Boolean]
22
- #
23
- # @version LayOut 2018
24
- def ==(other)
25
- end
26
-
27
- # The {#lower_left} method returns the {Geom::Point2d} of the lower left
28
- # corner of the {Geom::OrientedBounds2d}.
29
- #
30
- # @example
31
- # doc = Layout::Document.open("C:/path/to/document.layout")
32
- # entity = doc.shared_enities.first
33
- # bounds = entity.drawing_bounds
34
- # l_l = bounds.lower_left
35
- #
36
- # @return [Geom::Point2d]
37
- #
38
- # @version LayOut 2018
39
- def lower_left
40
- end
41
-
42
- # The {#lower_right} method returns the {Geom::Point2d} of the lower right
43
- # corner of the {Geom::OrientedBounds2d}.
44
- #
45
- # @example
46
- # doc = Layout::Document.open("C:/path/to/document.layout")
47
- # entity = doc.shared_enities.first
48
- # bounds = entity.drawing_bounds
49
- # l_r = bounds.lower_right
50
- #
51
- # @return [Geom::Point2d]
52
- #
53
- # @version LayOut 2018
54
- def lower_right
55
- end
56
-
57
- # The {#to_a} method returns an array which contains the {Geom::Point2d} that
58
- # define the {Geom::OrientedBounds2d}.
59
- #
60
- # @example
61
- # doc = Layout::Document.open("C:/path/to/document.layout")
62
- # entity = doc.shared_enities.first
63
- # bounds = entity.drawing_bounds
64
- # bounds.to_a.each { |point| p point.to_s }
65
- #
66
- # @return [Array(Geom::Point2d, Geom::Point2d, Geom::Point2d, Geom::Point2d)]
67
- #
68
- # @version LayOut 2018
69
- def to_a
70
- end
71
-
72
- # The {#upper_left} method returns the {Geom::Point2d} of the upper left corner
73
- # of the {Geom::OrientedBounds2d}.
74
- #
75
- # @example
76
- # doc = Layout::Document.open("C:/path/to/document.layout")
77
- # entity = doc.shared_enities.first
78
- # bounds = entity.drawing_bounds
79
- # u_l = bounds.upper_left
80
- #
81
- # @return [Geom::Point2d]
82
- #
83
- # @version LayOut 2018
84
- def upper_left
85
- end
86
-
87
- # The {#upper_right} method returns the {Geom::Point2d} of the upper right
88
- # corner of the {Geom::OrientedBounds2d}.
89
- #
90
- # @example
91
- # doc = Layout::Document.open("C:/path/to/document.layout")
92
- # entity = doc.shared_enities.first
93
- # bounds = entity.drawing_bounds
94
- # u_r = bounds.upper_right
95
- #
96
- # @return [Geom::Point2d]
97
- #
98
- # @version LayOut 2018
99
- def upper_right
100
- end
101
-
102
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The OrientedBounds2d class is a bounding box represented by four
5
+ # {Geom::Point2d} objects, upper left, upper right, lower left and lower right
6
+ # positions.
7
+ #
8
+ # @version LayOut 2018
9
+ class Geom::OrientedBounds2d
10
+
11
+ # Instance Methods
12
+
13
+ # The {#==} method checks to see if the two {Geom::OrientedBounds2d}s are
14
+ # equal. This checks whether the point values are the same.
15
+ #
16
+ # @example
17
+ # entity.bounds == entity.untransformed_bounds
18
+ #
19
+ # @param [Geom::OrientedBounds2d] other
20
+ #
21
+ # @return [Boolean]
22
+ #
23
+ # @version LayOut 2018
24
+ def ==(other)
25
+ end
26
+
27
+ # The {#lower_left} method returns the {Geom::Point2d} of the lower left
28
+ # corner of the {Geom::OrientedBounds2d}.
29
+ #
30
+ # @example
31
+ # doc = Layout::Document.open("C:/path/to/document.layout")
32
+ # entity = doc.shared_enities.first
33
+ # bounds = entity.drawing_bounds
34
+ # l_l = bounds.lower_left
35
+ #
36
+ # @return [Geom::Point2d]
37
+ #
38
+ # @version LayOut 2018
39
+ def lower_left
40
+ end
41
+
42
+ # The {#lower_right} method returns the {Geom::Point2d} of the lower right
43
+ # corner of the {Geom::OrientedBounds2d}.
44
+ #
45
+ # @example
46
+ # doc = Layout::Document.open("C:/path/to/document.layout")
47
+ # entity = doc.shared_enities.first
48
+ # bounds = entity.drawing_bounds
49
+ # l_r = bounds.lower_right
50
+ #
51
+ # @return [Geom::Point2d]
52
+ #
53
+ # @version LayOut 2018
54
+ def lower_right
55
+ end
56
+
57
+ # The {#to_a} method returns an array which contains the {Geom::Point2d} that
58
+ # define the {Geom::OrientedBounds2d}.
59
+ #
60
+ # @example
61
+ # doc = Layout::Document.open("C:/path/to/document.layout")
62
+ # entity = doc.shared_enities.first
63
+ # bounds = entity.drawing_bounds
64
+ # bounds.to_a.each { |point| p point.to_s }
65
+ #
66
+ # @return [Array(Geom::Point2d, Geom::Point2d, Geom::Point2d, Geom::Point2d)]
67
+ #
68
+ # @version LayOut 2018
69
+ def to_a
70
+ end
71
+
72
+ # The {#upper_left} method returns the {Geom::Point2d} of the upper left corner
73
+ # of the {Geom::OrientedBounds2d}.
74
+ #
75
+ # @example
76
+ # doc = Layout::Document.open("C:/path/to/document.layout")
77
+ # entity = doc.shared_enities.first
78
+ # bounds = entity.drawing_bounds
79
+ # u_l = bounds.upper_left
80
+ #
81
+ # @return [Geom::Point2d]
82
+ #
83
+ # @version LayOut 2018
84
+ def upper_left
85
+ end
86
+
87
+ # The {#upper_right} method returns the {Geom::Point2d} of the upper right
88
+ # corner of the {Geom::OrientedBounds2d}.
89
+ #
90
+ # @example
91
+ # doc = Layout::Document.open("C:/path/to/document.layout")
92
+ # entity = doc.shared_enities.first
93
+ # bounds = entity.drawing_bounds
94
+ # u_r = bounds.upper_right
95
+ #
96
+ # @return [Geom::Point2d]
97
+ #
98
+ # @version LayOut 2018
99
+ def upper_right
100
+ end
101
+
102
+ end
@@ -1,400 +1,400 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The {Geom::Point2d} class allows you to work with a point in 2D space.
5
- # {Geom::Point2d} is a series of values representing x and y coordinates.
6
- #
7
- # The values are specified as +[x, y]+. For example [1, 1].
8
- # To create a point call +Geom::Point2d.new+, where the creation method
9
- # can take a variety of arguments:
10
- #
11
- # @example
12
- # # No arguments, creates a point at the origin [0, 0]
13
- # pt1 = Geom::Point2d.new
14
- #
15
- # # Creates a point at x of 1, y of 2.
16
- # pt2 = Geom::Point2d.new(1, 2)
17
- #
18
- # # You can also create a point directly by simply assigning the x, and y
19
- # # values to a variable as an array:
20
- # pt3 = [1, 2]
21
- #
22
- # @version LayOut 2018
23
- class Geom::Point2d
24
-
25
- # Instance Methods
26
-
27
- # The {#+} operator is a simple way to add to the current x and y values of the
28
- # {Geom::Point2d}, or to set the values of the {Geom::Point2d} by adding a
29
- # {Geom::Vector2d} to the {Geom::Point2d}.
30
- #
31
- # @example
32
- # pt = [1, 1]
33
- # # the result is a Point2d(2, 3)
34
- # pt2 = pt + [1, 2]
35
- #
36
- # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
37
- #
38
- # @return [Geom::Point2d]
39
- #
40
- # @version LayOut 2018
41
- def +(vector)
42
- end
43
-
44
- # The {#-} operator is a simple way to subtract from the current x and y values
45
- # of the {Geom::Point2d}.
46
- #
47
- # @example
48
- # vec = Geom::Vector2d.new(1, 2)
49
- # # result is a Point2d(3, 0)
50
- # pt = [4, 2] - vec
51
- # # result is a Vector2d(1, 2)
52
- # vec2 = [4, 2] - pt
53
- #
54
- # @overload -(vector)
55
- #
56
- # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
57
- # @return [Geom::Point2d]
58
- #
59
- # @overload -(point)
60
- #
61
- # @param [Geom::Point2d] point2d
62
- # @return [Geom::Vector2d] a vector indicating the difference between the two
63
- # points
64
- #
65
- # @version LayOut 2018
66
- def -(arg)
67
- end
68
-
69
- # The {#==} method compares two points for equality. This uses the standard
70
- # SketchUp tolerance to determine if two points are the same.
71
- #
72
- # @example
73
- # point1 = Geom::Point2d.new(1, 1)
74
- # point2 = Geom::Point2d.new(0, 1)
75
- # status = point1 == point2
76
- #
77
- # @param [Geom::Point2d, Array(Numeric, Numeric)] point
78
- #
79
- # @return [Boolean]
80
- #
81
- # @version LayOut 2018
82
- def ==(point)
83
- end
84
-
85
- # The {#[]} method returns the value of the {Geom::Point2d} at the specified
86
- # index.
87
- #
88
- # @example
89
- # point = Geom::Point2d.new(1, 2)
90
- #
91
- # # returns the y value of 2
92
- # yvalue = point[1]
93
- #
94
- # @param [Integer] index
95
- # The index for a specific x or y value in the
96
- # {Geom::Point2d}
97
- #
98
- # @return [Length] The new x or y value if successful
99
- #
100
- # @version LayOut 2018
101
- def [](index)
102
- end
103
-
104
- # The {#[]=} method sets the x or y value of the {Geom::Point2d} based on the
105
- # specific index of the value.
106
- #
107
- # @example
108
- # point = Geom::Point2d.new(1,2)
109
- # point[1] = 4
110
- #
111
- # @param [Integer] index
112
- # The index for a specific x or y value in the
113
- # {Geom::Point2d} to set
114
- #
115
- # @param [Numeric] value
116
- # The value to set for x or y
117
- #
118
- # @return [Numeric] The new x or y value if successful
119
- #
120
- # @version LayOut 2018
121
- def []=(index, value)
122
- end
123
-
124
- # The {#clone} method creates another point identical to the {Geom::Point2d}
125
- # being cloned.
126
- #
127
- # @example
128
- # point = Geom::Point2d.new(1, 2)
129
- # newpoint = point.clone
130
- #
131
- # @return [Geom::Point2d] the cloned {Geom::Point2d} object
132
- #
133
- # @version LayOut 2018
134
- def clone
135
- end
136
-
137
- # The {#distance} method computes the distance from the {Geom::Point2d} to
138
- # another {Geom::Point2d}.
139
- #
140
- # @example
141
- # point1 = Geom::Point2d.new(1, 1)
142
- # point2 = Geom::Point2d.new(1, 4)
143
- # # result is a value of 3
144
- # distance = point1.distance(point2)
145
- #
146
- # @param [Geom::Point2d, Array(Numeric, Numeric)] point
147
- #
148
- # @return [Numeric] the distance between the points in the current units
149
- #
150
- # @version LayOut 2018
151
- def distance(point)
152
- end
153
-
154
- # The {.new} method creates a new {Geom::Point2d}.
155
- #
156
- # @example
157
- # # No arguments, creates a point at the origin [0, 0]
158
- # pt1 = Geom::Point2d.new
159
- #
160
- # # Creates a point at x of 1 and y of 2.
161
- # pt2 = Geom::Point2d.new(1, 2)
162
- #
163
- # # You can also create a point directly by simply assigning the x and y
164
- # # values to a variable as an array:
165
- # pt3 = [1, 2]
166
- #
167
- # @overload initialize
168
- #
169
- # @return [Geom::Point2d]
170
- #
171
- # @overload initialize(x, y)
172
- #
173
- # @param [Numeric] x The location along the x axis
174
- # @param [Numeric] y The location along the y axis
175
- # @return [Geom::Point2d]
176
- #
177
- # @overload initialize(point)
178
- #
179
- # @param [Geom::Point2d, Array(Numeric, Numeric)] point
180
- # @return [Geom::Point2d]
181
- #
182
- # @version LayOut 2018
183
- def initialize(*args)
184
- end
185
-
186
- # The {#inspect} method formats the {Geom::Point2d} as a string.
187
- #
188
- # @example
189
- # point = Geom::Point2d.new(1, 2)
190
- # string = point.inspect
191
- #
192
- # @return [String]
193
- #
194
- # @version LayOut 2018
195
- def inspect
196
- end
197
-
198
- # The {#offset} method offsets the {Geom::Point2d} by a {Geom::Vector2d} and
199
- # returns a new {Geom::Point2d}. If distance is provided, it must be non-zero.
200
- #
201
- # @example
202
- # point = Geom::Point2d.new
203
- # vector = Geom::Vector2d.new(0, 2)
204
- # # result is a Point2d(0, 1)
205
- # point2 = point1.offset(vector, 1)
206
- #
207
- # @overload offset(vector)
208
- #
209
- # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
210
- # @return [Geom::Point2d]
211
- #
212
- # @overload offset(vector, distance)
213
- #
214
- # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
215
- # @param [Numeric] distance The how far along the vector to offset
216
- # @return [Geom::Point2d]
217
- #
218
- # @version LayOut 2018
219
- def offset(*args)
220
- end
221
-
222
- # The {#offset!} method offsets the {Geom::Point2d} by a {Geom::Vector2d}.
223
- # The {Geom::Point2d} itself is modified. The length of the vector must not be
224
- # zero.
225
- #
226
- # @example
227
- # point = Geom::Point2d.new
228
- # vector = Geom::Vector2d.new(0, 2)
229
- # # result is a Point2d(0, 1)
230
- # point1.offset!(vector, 1)
231
- #
232
- # @overload offset!(vector)
233
- #
234
- # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
235
- # @return [Geom::Point2d]
236
- #
237
- # @overload offset!(vector, distance)
238
- #
239
- # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
240
- # @param [Numeric] distance The distance along the vector to offset
241
- # @return [Geom::Point2d]
242
- #
243
- # @version LayOut 2018
244
- def offset!(*args)
245
- end
246
-
247
- # The {#set!} method sets the values of the {Geom::Point2d}.
248
- #
249
- # @example
250
- # point = Geom::Point2d.new(1, 2)
251
- # point = point.set!([4, 5])
252
- #
253
- # @overload set!(point)
254
- #
255
- # @param [Geom::Point2d, Array(Numeric, Numeric)] point
256
- # @return [Geom::Point2d]
257
- #
258
- # @overload set!(x, y)
259
- #
260
- # @param [Numeric] x
261
- # @param [Numeric] y
262
- # @return [Geom::Point2d]
263
- #
264
- # @version LayOut 2018
265
- def set!(*args)
266
- end
267
-
268
- # The {#to_a} method converts the {Geom::Point2d} to an array of 2 numbers.
269
- #
270
- # @example
271
- # point = Geom::Point2d.new(1, 2)
272
- # array = point.to_a
273
- #
274
- # @return [Array(Numeric, Numeric)] an array of two numbers representing x, y
275
- # of the {Geom::Point2d}
276
- #
277
- # @version LayOut 2018
278
- def to_a
279
- end
280
-
281
- # The {#to_s} method returns a string representation of the {Geom::Point2d}.
282
- #
283
- # @example
284
- # point = Geom::Point2d.new(1, 2)
285
- # str = point.to_s
286
- #
287
- # @return [String]
288
- #
289
- # @version LayOut 2018
290
- def to_s
291
- end
292
-
293
- # The {#transform} method applies a transformation to a point, returning a new
294
- # point. The original point is unchanged by this method.
295
- #
296
- # @example
297
- # point = Geom::Point2d.new(4, 5)
298
- # transformation = Geom::Transformation2d.new([1, 0, 0, 1, 2, 3])
299
- # # pt will be (6, 8)
300
- # pt = point.transform(transformation)
301
- #
302
- # @param [Geom::Transformation2d] transform
303
- # A Transformation object to apply to the point.
304
- #
305
- # @return [Geom::Point2d] the transformed point
306
- #
307
- # @version LayOut 2019
308
- def transform(transform)
309
- end
310
-
311
- # The {#transform!} method applies a transformation to a point. The point
312
- # itself is modified.
313
- #
314
- # @example
315
- # point = Geom::Point2d.new(4, 5)
316
- # transformation = Geom::Transformation2d.new([1, 0, 0, 1, 2, 3])
317
- # # point will be (6, 8)
318
- # point.transform!(transformation)
319
- #
320
- # @param [Geom::Transformation2d] transform
321
- # A Transformation object to apply to the point.
322
- #
323
- # @return [Geom::Point2d] the transformed point
324
- #
325
- # @version LayOut 2019
326
- def transform!(transform)
327
- end
328
-
329
- # The {#vector_to} method returns the vector between points.
330
- #
331
- # @example
332
- # pt1 = Geom::Point2d.new(1, 1)
333
- # pt2 = Geom::Point2d.new(3, 1)
334
- #
335
- # # result is a Vector2d(2, 0)
336
- # vec = pt1.vector_to(pt2) # is equivalent to (pt2 - pt1)
337
- #
338
- # @param [Geom::Point2d] point
339
- #
340
- # @return [Geom::Vector2d]
341
- #
342
- # @version LayOut 2018
343
- def vector_to(point)
344
- end
345
-
346
- # The {#x} method returns the x value of the {Geom::Point2d}.
347
- #
348
- # @example
349
- # point = Geom::Point2d.new(1, 2)
350
- # x = point.x
351
- #
352
- # @return [Length] the x value of the {Geom::Point2d}
353
- #
354
- # @version LayOut 2018
355
- def x
356
- end
357
-
358
- # The {#x=} method sets the x value of the {Geom::Point2d}.
359
- #
360
- # @example
361
- # point = Geom::Point2d.new(1, 2)
362
- # point.x = 7
363
- #
364
- # @param [Numeric] x
365
- # The desired x value of the {Geom::Point2d}
366
- #
367
- # @return [Numeric] The new x value of the {Geom::Point2d}
368
- #
369
- # @version LayOut 2018
370
- def x=(x)
371
- end
372
-
373
- # The {#y} method returns the y value of the {Geom::Point2d}.
374
- #
375
- # @example
376
- # point = Geom::Point2d.new(1, 2)
377
- # y = point.y
378
- #
379
- # @return [Length] The y value of the {Geom::Point2d}
380
- #
381
- # @version LayOut 2018
382
- def y
383
- end
384
-
385
- # The {#y=} method sets the y value of the {Geom::Point2d}.
386
- #
387
- # @example
388
- # point = Geom::Point2d.new(1, 2)
389
- # point.y = 7
390
- #
391
- # @param [Numeric] y
392
- # The desired y value of the {Geom::Point2d}
393
- #
394
- # @return [Numeric] The new y value of the {Geom::Point2d}
395
- #
396
- # @version LayOut 2018
397
- def y=(y)
398
- end
399
-
400
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The {Geom::Point2d} class allows you to work with a point in 2D space.
5
+ # {Geom::Point2d} is a series of values representing x and y coordinates.
6
+ #
7
+ # The values are specified as +[x, y]+. For example [1, 1].
8
+ # To create a point call +Geom::Point2d.new+, where the creation method
9
+ # can take a variety of arguments:
10
+ #
11
+ # @example
12
+ # # No arguments, creates a point at the origin [0, 0]
13
+ # pt1 = Geom::Point2d.new
14
+ #
15
+ # # Creates a point at x of 1, y of 2.
16
+ # pt2 = Geom::Point2d.new(1, 2)
17
+ #
18
+ # # You can also create a point directly by simply assigning the x, and y
19
+ # # values to a variable as an array:
20
+ # pt3 = [1, 2]
21
+ #
22
+ # @version LayOut 2018
23
+ class Geom::Point2d
24
+
25
+ # Instance Methods
26
+
27
+ # The {#+} operator is a simple way to add to the current x and y values of the
28
+ # {Geom::Point2d}, or to set the values of the {Geom::Point2d} by adding a
29
+ # {Geom::Vector2d} to the {Geom::Point2d}.
30
+ #
31
+ # @example
32
+ # pt = [1, 1]
33
+ # # the result is a Point2d(2, 3)
34
+ # pt2 = pt + [1, 2]
35
+ #
36
+ # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
37
+ #
38
+ # @return [Geom::Point2d]
39
+ #
40
+ # @version LayOut 2018
41
+ def +(vector)
42
+ end
43
+
44
+ # The {#-} operator is a simple way to subtract from the current x and y values
45
+ # of the {Geom::Point2d}.
46
+ #
47
+ # @example
48
+ # vec = Geom::Vector2d.new(1, 2)
49
+ # # result is a Point2d(3, 0)
50
+ # pt = [4, 2] - vec
51
+ # # result is a Vector2d(1, 2)
52
+ # vec2 = [4, 2] - pt
53
+ #
54
+ # @overload -(vector)
55
+ #
56
+ # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
57
+ # @return [Geom::Point2d]
58
+ #
59
+ # @overload -(point)
60
+ #
61
+ # @param [Geom::Point2d] point2d
62
+ # @return [Geom::Vector2d] a vector indicating the difference between the two
63
+ # points
64
+ #
65
+ # @version LayOut 2018
66
+ def -(arg)
67
+ end
68
+
69
+ # The {#==} method compares two points for equality. This uses the standard
70
+ # SketchUp tolerance to determine if two points are the same.
71
+ #
72
+ # @example
73
+ # point1 = Geom::Point2d.new(1, 1)
74
+ # point2 = Geom::Point2d.new(0, 1)
75
+ # status = point1 == point2
76
+ #
77
+ # @param [Geom::Point2d, Array(Numeric, Numeric)] point
78
+ #
79
+ # @return [Boolean]
80
+ #
81
+ # @version LayOut 2018
82
+ def ==(point)
83
+ end
84
+
85
+ # The {#[]} method returns the value of the {Geom::Point2d} at the specified
86
+ # index.
87
+ #
88
+ # @example
89
+ # point = Geom::Point2d.new(1, 2)
90
+ #
91
+ # # returns the y value of 2
92
+ # yvalue = point[1]
93
+ #
94
+ # @param [Integer] index
95
+ # The index for a specific x or y value in the
96
+ # {Geom::Point2d}
97
+ #
98
+ # @return [Length] The new x or y value if successful
99
+ #
100
+ # @version LayOut 2018
101
+ def [](index)
102
+ end
103
+
104
+ # The {#[]=} method sets the x or y value of the {Geom::Point2d} based on the
105
+ # specific index of the value.
106
+ #
107
+ # @example
108
+ # point = Geom::Point2d.new(1,2)
109
+ # point[1] = 4
110
+ #
111
+ # @param [Integer] index
112
+ # The index for a specific x or y value in the
113
+ # {Geom::Point2d} to set
114
+ #
115
+ # @param [Numeric] value
116
+ # The value to set for x or y
117
+ #
118
+ # @return [Numeric] The new x or y value if successful
119
+ #
120
+ # @version LayOut 2018
121
+ def []=(index, value)
122
+ end
123
+
124
+ # The {#clone} method creates another point identical to the {Geom::Point2d}
125
+ # being cloned.
126
+ #
127
+ # @example
128
+ # point = Geom::Point2d.new(1, 2)
129
+ # newpoint = point.clone
130
+ #
131
+ # @return [Geom::Point2d] the cloned {Geom::Point2d} object
132
+ #
133
+ # @version LayOut 2018
134
+ def clone
135
+ end
136
+
137
+ # The {#distance} method computes the distance from the {Geom::Point2d} to
138
+ # another {Geom::Point2d}.
139
+ #
140
+ # @example
141
+ # point1 = Geom::Point2d.new(1, 1)
142
+ # point2 = Geom::Point2d.new(1, 4)
143
+ # # result is a value of 3
144
+ # distance = point1.distance(point2)
145
+ #
146
+ # @param [Geom::Point2d, Array(Numeric, Numeric)] point
147
+ #
148
+ # @return [Numeric] the distance between the points in the current units
149
+ #
150
+ # @version LayOut 2018
151
+ def distance(point)
152
+ end
153
+
154
+ # The {.new} method creates a new {Geom::Point2d}.
155
+ #
156
+ # @example
157
+ # # No arguments, creates a point at the origin [0, 0]
158
+ # pt1 = Geom::Point2d.new
159
+ #
160
+ # # Creates a point at x of 1 and y of 2.
161
+ # pt2 = Geom::Point2d.new(1, 2)
162
+ #
163
+ # # You can also create a point directly by simply assigning the x and y
164
+ # # values to a variable as an array:
165
+ # pt3 = [1, 2]
166
+ #
167
+ # @overload initialize
168
+ #
169
+ # @return [Geom::Point2d]
170
+ #
171
+ # @overload initialize(x, y)
172
+ #
173
+ # @param [Numeric] x The location along the x axis
174
+ # @param [Numeric] y The location along the y axis
175
+ # @return [Geom::Point2d]
176
+ #
177
+ # @overload initialize(point)
178
+ #
179
+ # @param [Geom::Point2d, Array(Numeric, Numeric)] point
180
+ # @return [Geom::Point2d]
181
+ #
182
+ # @version LayOut 2018
183
+ def initialize(*args)
184
+ end
185
+
186
+ # The {#inspect} method formats the {Geom::Point2d} as a string.
187
+ #
188
+ # @example
189
+ # point = Geom::Point2d.new(1, 2)
190
+ # string = point.inspect
191
+ #
192
+ # @return [String]
193
+ #
194
+ # @version LayOut 2018
195
+ def inspect
196
+ end
197
+
198
+ # The {#offset} method offsets the {Geom::Point2d} by a {Geom::Vector2d} and
199
+ # returns a new {Geom::Point2d}. If distance is provided, it must be non-zero.
200
+ #
201
+ # @example
202
+ # point = Geom::Point2d.new
203
+ # vector = Geom::Vector2d.new(0, 2)
204
+ # # result is a Point2d(0, 1)
205
+ # point2 = point1.offset(vector, 1)
206
+ #
207
+ # @overload offset(vector)
208
+ #
209
+ # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
210
+ # @return [Geom::Point2d]
211
+ #
212
+ # @overload offset(vector, distance)
213
+ #
214
+ # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
215
+ # @param [Numeric] distance The how far along the vector to offset
216
+ # @return [Geom::Point2d]
217
+ #
218
+ # @version LayOut 2018
219
+ def offset(*args)
220
+ end
221
+
222
+ # The {#offset!} method offsets the {Geom::Point2d} by a {Geom::Vector2d}.
223
+ # The {Geom::Point2d} itself is modified. The length of the vector must not be
224
+ # zero.
225
+ #
226
+ # @example
227
+ # point = Geom::Point2d.new
228
+ # vector = Geom::Vector2d.new(0, 2)
229
+ # # result is a Point2d(0, 1)
230
+ # point1.offset!(vector, 1)
231
+ #
232
+ # @overload offset!(vector)
233
+ #
234
+ # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
235
+ # @return [Geom::Point2d]
236
+ #
237
+ # @overload offset!(vector, distance)
238
+ #
239
+ # @param [Geom::Vector2d, Array(Numeric, Numeric)] vector
240
+ # @param [Numeric] distance The distance along the vector to offset
241
+ # @return [Geom::Point2d]
242
+ #
243
+ # @version LayOut 2018
244
+ def offset!(*args)
245
+ end
246
+
247
+ # The {#set!} method sets the values of the {Geom::Point2d}.
248
+ #
249
+ # @example
250
+ # point = Geom::Point2d.new(1, 2)
251
+ # point = point.set!([4, 5])
252
+ #
253
+ # @overload set!(point)
254
+ #
255
+ # @param [Geom::Point2d, Array(Numeric, Numeric)] point
256
+ # @return [Geom::Point2d]
257
+ #
258
+ # @overload set!(x, y)
259
+ #
260
+ # @param [Numeric] x
261
+ # @param [Numeric] y
262
+ # @return [Geom::Point2d]
263
+ #
264
+ # @version LayOut 2018
265
+ def set!(*args)
266
+ end
267
+
268
+ # The {#to_a} method converts the {Geom::Point2d} to an array of 2 numbers.
269
+ #
270
+ # @example
271
+ # point = Geom::Point2d.new(1, 2)
272
+ # array = point.to_a
273
+ #
274
+ # @return [Array(Numeric, Numeric)] an array of two numbers representing x, y
275
+ # of the {Geom::Point2d}
276
+ #
277
+ # @version LayOut 2018
278
+ def to_a
279
+ end
280
+
281
+ # The {#to_s} method returns a string representation of the {Geom::Point2d}.
282
+ #
283
+ # @example
284
+ # point = Geom::Point2d.new(1, 2)
285
+ # str = point.to_s
286
+ #
287
+ # @return [String]
288
+ #
289
+ # @version LayOut 2018
290
+ def to_s
291
+ end
292
+
293
+ # The {#transform} method applies a transformation to a point, returning a new
294
+ # point. The original point is unchanged by this method.
295
+ #
296
+ # @example
297
+ # point = Geom::Point2d.new(4, 5)
298
+ # transformation = Geom::Transformation2d.new([1, 0, 0, 1, 2, 3])
299
+ # # pt will be (6, 8)
300
+ # pt = point.transform(transformation)
301
+ #
302
+ # @param [Geom::Transformation2d] transform
303
+ # A Transformation object to apply to the point.
304
+ #
305
+ # @return [Geom::Point2d] the transformed point
306
+ #
307
+ # @version LayOut 2019
308
+ def transform(transform)
309
+ end
310
+
311
+ # The {#transform!} method applies a transformation to a point. The point
312
+ # itself is modified.
313
+ #
314
+ # @example
315
+ # point = Geom::Point2d.new(4, 5)
316
+ # transformation = Geom::Transformation2d.new([1, 0, 0, 1, 2, 3])
317
+ # # point will be (6, 8)
318
+ # point.transform!(transformation)
319
+ #
320
+ # @param [Geom::Transformation2d] transform
321
+ # A Transformation object to apply to the point.
322
+ #
323
+ # @return [Geom::Point2d] the transformed point
324
+ #
325
+ # @version LayOut 2019
326
+ def transform!(transform)
327
+ end
328
+
329
+ # The {#vector_to} method returns the vector between points.
330
+ #
331
+ # @example
332
+ # pt1 = Geom::Point2d.new(1, 1)
333
+ # pt2 = Geom::Point2d.new(3, 1)
334
+ #
335
+ # # result is a Vector2d(2, 0)
336
+ # vec = pt1.vector_to(pt2) # is equivalent to (pt2 - pt1)
337
+ #
338
+ # @param [Geom::Point2d] point
339
+ #
340
+ # @return [Geom::Vector2d]
341
+ #
342
+ # @version LayOut 2018
343
+ def vector_to(point)
344
+ end
345
+
346
+ # The {#x} method returns the x value of the {Geom::Point2d}.
347
+ #
348
+ # @example
349
+ # point = Geom::Point2d.new(1, 2)
350
+ # x = point.x
351
+ #
352
+ # @return [Length] the x value of the {Geom::Point2d}
353
+ #
354
+ # @version LayOut 2018
355
+ def x
356
+ end
357
+
358
+ # The {#x=} method sets the x value of the {Geom::Point2d}.
359
+ #
360
+ # @example
361
+ # point = Geom::Point2d.new(1, 2)
362
+ # point.x = 7
363
+ #
364
+ # @param [Numeric] x
365
+ # The desired x value of the {Geom::Point2d}
366
+ #
367
+ # @return [Numeric] The new x value of the {Geom::Point2d}
368
+ #
369
+ # @version LayOut 2018
370
+ def x=(x)
371
+ end
372
+
373
+ # The {#y} method returns the y value of the {Geom::Point2d}.
374
+ #
375
+ # @example
376
+ # point = Geom::Point2d.new(1, 2)
377
+ # y = point.y
378
+ #
379
+ # @return [Length] The y value of the {Geom::Point2d}
380
+ #
381
+ # @version LayOut 2018
382
+ def y
383
+ end
384
+
385
+ # The {#y=} method sets the y value of the {Geom::Point2d}.
386
+ #
387
+ # @example
388
+ # point = Geom::Point2d.new(1, 2)
389
+ # point.y = 7
390
+ #
391
+ # @param [Numeric] y
392
+ # The desired y value of the {Geom::Point2d}
393
+ #
394
+ # @return [Numeric] The new y value of the {Geom::Point2d}
395
+ #
396
+ # @version LayOut 2018
397
+ def y=(y)
398
+ end
399
+
400
+ end