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.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +157 -151
  3. data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +182 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +111 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +423 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +693 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +535 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +500 -476
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +267 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +133 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +547 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +678 -693
  16. data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
  17. data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +751 -747
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Dictionary.rb +234 -0
  23. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +683 -517
  24. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  26. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +464 -353
  27. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  28. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  29. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  30. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  31. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  33. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  34. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  35. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +614 -567
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  37. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  38. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +282 -183
  39. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +458 -387
  40. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  41. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +346 -344
  42. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  43. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
  44. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  45. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1565 -1519
  46. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  49. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  50. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  51. data/lib/sketchup-api-stubs/stubs/Length.rb +286 -278
  52. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +196 -144
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +145 -150
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +296 -302
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +473 -478
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +673 -659
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +600 -593
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +252 -257
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +443 -449
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +167 -165
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +403 -406
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1282 -1239
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Environment.rb +406 -0
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Environments.rb +185 -0
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/EnvironmentsObserver.rb +113 -0
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +122 -125
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +1006 -937
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +740 -750
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +289 -282
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +64 -62
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +405 -468
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +432 -406
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +307 -306
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +332 -326
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +380 -422
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +409 -427
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +241 -249
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +55 -48
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/LoadHandler.rb +70 -0
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +1115 -414
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +330 -317
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1714 -1652
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +372 -357
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +133 -130
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +463 -490
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +104 -116
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +939 -797
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +388 -361
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +501 -478
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +385 -361
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +451 -458
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +211 -212
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +259 -255
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Snap.rb +125 -0
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +88 -69
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +263 -217
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +283 -262
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +199 -217
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +924 -834
  143. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  144. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  145. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  146. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +143 -142
  147. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1566 -1311
  148. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +71 -45
  149. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1429 -1377
  150. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  151. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  152. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +399 -389
  153. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +580 -494
  154. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +280 -269
  155. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +258 -241
  156. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +636 -635
  157. data/lib/sketchup-api-stubs/stubs/UI.rb +791 -683
  158. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  159. data/lib/sketchup-api-stubs.rb +1 -1
  160. metadata +10 -24
@@ -1,344 +1,346 @@
1
- # Copyright:: Copyright 2023 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # A path entity represents a continuous, multi-segment polyline or bezier
5
- # curve.
6
- #
7
- # @version LayOut 2018
8
- class Layout::Path < Layout::Entity
9
-
10
- # Constants
11
-
12
- POINT_TYPE_ARC_CENTER = nil # Stub value.
13
- POINT_TYPE_BEZIER_CONTROL = nil # Stub value.
14
- POINT_TYPE_BEZIER_TO = nil # Stub value.
15
- POINT_TYPE_CLOSE = nil # Stub value.
16
- POINT_TYPE_LINE_TO = nil # Stub value.
17
- POINT_TYPE_MOVE_TO = nil # Stub value.
18
-
19
- PATH_WINDING_CLOCKWISE = nil # Stub value.
20
- PATH_WINDING_COUNTER_CLOCKWISE = nil # Stub value.
21
- PATH_WINDING_NONE = nil # Stub value.
22
-
23
- # Class Methods
24
-
25
- # The {.new_arc} method creates a new arc-shaped {Layout::Path}.
26
- #
27
- # @example
28
- # center = Geom::Point2d.new(5, 5)
29
- # radius = 2.0
30
- # start_angle = 180.0
31
- # end_angle = 360.0
32
- # arc = Layout::Path.new_arc(center, radius, start_angle, end_angle)
33
- #
34
- # @param [Geom::Point2d] center_point
35
- #
36
- # @param [Float] radius
37
- #
38
- # @param [Float] start_angle
39
- #
40
- # @param [Float] end_angle
41
- #
42
- # @raise [ArgumentError] if radius is less than or equal to zero
43
- #
44
- # @raise [ArgumentError] if start angle is equal to end angle
45
- #
46
- # @return [Layout::Path] an arc path
47
- #
48
- # @version LayOut 2018
49
- def self.new_arc(center_point, radius, start_angle, end_angle)
50
- end
51
-
52
- # Instance Methods
53
-
54
- # The {#append_point} method appends a {Geom::Point2d} to the end of the
55
- # {Layout::Path}.
56
- #
57
- # @example
58
- # point = Geom::Point2d.new(2, 5)
59
- # path.append_point(point)
60
- #
61
- # @overload append_point(point)
62
- #
63
- # @param [Geom::Point2d] point
64
- # @return [Layout::Path]
65
- #
66
- # @overload append_point(control_point1, control_point2, point)
67
- #
68
- # @param [Geom::Point2d] control_point1 The first bezier control point
69
- # @param [Geom::Point2d] control_point2 The second bezier control point
70
- # @param [Geom::Point2d] point The point to append
71
- # @return [Layout::Path]
72
- #
73
- # @raise [LockedLayerError] if the {Layout::Path} is on a locked {Layout::Layer}
74
- #
75
- # @raise [LockedEntityError] if the {Layout::Path} is locked
76
- #
77
- # @version LayOut 2018
78
- def append_point(*args)
79
- end
80
-
81
- # The {#arc} method returns the parameters of an arc from the {Layout::Path},
82
- # or +nil+ if path is not an arc.
83
- #
84
- # @example
85
- # start_angle, radius, start, end = path.arc
86
- #
87
- # @return [Array(Geom::Point2d, Float, Float, Float), nil] The center point,
88
- # radius, start angle, and end angle
89
- #
90
- # @version LayOut 2018
91
- def arc
92
- end
93
-
94
- # The {#circle} method returns the parameters of a circle from the
95
- # {Layout::Path}, or +nil+ if path is not a circle.
96
- #
97
- # @example
98
- # center_point, radius = path.circle
99
- #
100
- # @return [Array(Geom::Point2d, Float), nil] The center point and the radius
101
- #
102
- # @version LayOut 2018
103
- def circle
104
- end
105
-
106
- # The {#close} method closes the {Layout::Path}.
107
- #
108
- # @example
109
- # path.close
110
- #
111
- # @raise [LockedLayerError] if the {Layout::Path} is on a locked
112
- # {Layout::Layer}
113
- #
114
- # @raise [ArgumentError] if the {Layout::Path} can not be closed becauase it
115
- # contains less than three points.
116
- #
117
- # @raise [LockedEntityError] if the {Layout::Path} is locked
118
- #
119
- # @version LayOut 2018
120
- def close
121
- end
122
-
123
- # The {#closed?} method returns whether the {Layout::Path} is closed.
124
- #
125
- # @example
126
- # is_closed = path.closed?
127
- #
128
- # @return [Boolean]
129
- #
130
- # @version LayOut 2018
131
- def closed?
132
- end
133
-
134
- # The {#end_arrow} method creates a new {Layout::Path} from an end arrow.
135
- #
136
- # @example
137
- # path = Layout::Path.end_arrow(path_with_end_arrow)
138
- #
139
- # @return [Layout::Path, nil] The end arrow
140
- #
141
- # @version LayOut 2018
142
- def end_arrow
143
- end
144
-
145
- # The {#end_point} method returns the end point of the {Layout::Path}.
146
- #
147
- # @example
148
- # start_point = Geom::Point2d.new(1, 1)
149
- # end_point = Geom::Point2d.new(2, 2)
150
- # path = Layout::Path.new(start_point, end_point)
151
- # # should be equal to end_point
152
- # endp = path.end_point
153
- #
154
- # @return [Geom::Point2d]
155
- #
156
- # @version LayOut 2018
157
- def end_point
158
- end
159
-
160
- # The {#initialize} method creates a new {Layout::Path} between a start point
161
- # and an end point, or from a provided {Layout::Rectangle} or
162
- # {Layout::Ellipse}.
163
- #
164
- # @example
165
- # start = Geom::Point2d.new(1, 1)
166
- # end = Geom::Point2d.new(2, 2)
167
- # new_path = Layout::Path.new(start, end)
168
- #
169
- # @example
170
- # start = Geom::Point2d.new(1, 1)
171
- # control_1 = Geom::Point2d.new(1.5, 1)
172
- # control_2 = Geom::Point2d.new(1, 1.5)
173
- # end = Geom::Point2d.new(2, 2)
174
- # new_path = Layout::Path.new(start, control_1, control_2, end)
175
- #
176
- # @overload initialize(start_point, end_point)
177
- #
178
- # @param [Geom::Point2d] start_point
179
- # @param [Geom::Point2d] end_point
180
- # @return [Layout::Path] a straight path
181
- #
182
- # @raise [ArgumentError] if the length between start point and end point is
183
- # zero
184
- #
185
- # @overload initialize(start_point, control_point_1, control_point_2, end_point)
186
- #
187
- # @param [Geom::Point2d] start_point
188
- # @param [Geom::Point2d] control_point_1 The first bezier control point
189
- # @param [Geom::Point2d] control_point_2 The second bezier control point
190
- # @param [Geom::Point2d] end_point
191
- # @return [Layout::Path] a bezier path
192
- #
193
- # @raise [ArgumentError] if the length between start point and end point is
194
- # zero
195
- #
196
- # @overload initialize(rectangle)
197
- #
198
- # @param [Layout::Rectangle] rectangle
199
- # @return [Layout::Path] a path created from the {Layout::Rectangle}
200
- #
201
- # @raise [TypeError] if rectangle is not a {Layout::Rectangle}
202
- #
203
- # @overload initialize(ellipse)
204
- #
205
- # @param [Layout::Ellipse] ellipse
206
- # @return [Layout::Path] a path created from the {Layout::Ellipse}
207
- #
208
- # @raise [TypeError] if ellipse is not an {Layout::Ellipse}
209
- #
210
- # @version LayOut 2018
211
- def initialize(*args)
212
- end
213
-
214
- # The {#parametric_length} method returns the parametric length for the
215
- # {Layout::Path}. The parametric length is the length with respect to the curve
216
- # of the {Layout::Path}.
217
- #
218
- # @example
219
- # length = path.parametric_length
220
- #
221
- # @return [Float]
222
- #
223
- # @version LayOut 2018
224
- def parametric_length
225
- end
226
-
227
- # The {#point_at} method returns the {Geom::Point2d} at a given parametric
228
- # value.
229
- #
230
- # @example
231
- # length = path.parametric_length
232
- # # Get the point halfway along the path
233
- # halfway_point = path.point_at(length/2)
234
- #
235
- # @param [Float] parametric_value
236
- #
237
- # @raise [ArgumentError] if the parametric value is less than zero or greater
238
- # than the {Layout::Path}'s parametric length
239
- #
240
- # @return [Geom::Point2d]
241
- #
242
- # @version LayOut 2018
243
- def point_at(parametric_value)
244
- end
245
-
246
- # The {#point_types} method returns an array of point types corresponding to
247
- # the {Geom::Point2d}s in the {Layout::Path}.
248
- #
249
- # A point type can be one of the following values:
250
- # [+POINT_TYPE_MOVE_TO+]
251
- # [+POINT_TYPE_LINE_TO+]
252
- # [+POINT_TYPE_BEZIER_TO+]
253
- # [+POINT_TYPE_ARC_CENTER+]
254
- # [+POINT_TYPE_BEZIER_CONTROL+]
255
- # [+POINT_TYPE_CLOSE+]
256
- #
257
- # @example
258
- # types = path.point_types
259
- #
260
- # @return [Array<Integer>] An array of integers that correspond with point types.
261
- #
262
- # @version LayOut 2018
263
- def point_types
264
- end
265
-
266
- # The {#points} method returns an array of {Geom::Point2d}s in the
267
- # {Layout::Path}.
268
- #
269
- # @example
270
- # start_point = Geom::Point2d.new(1, 1)
271
- # end_point = Geom::Point2d.new(2, 2)
272
- # new_path = Layout::Path.new(start_point, end_point)
273
- # # Should be an array with points [1, 1] and [2, 2]
274
- # points = new_path.points
275
- #
276
- # @return [Array<Geom::Point2d>]
277
- #
278
- # @version LayOut 2018
279
- def points
280
- end
281
-
282
- # The {#start_arrow} method creates a new {Layout::Path} from a start
283
- # arrow.
284
- #
285
- # @example
286
- # start_arrow = path.start_arrow
287
- #
288
- # @return [Layout::Path, nil] The start arrow
289
- #
290
- # @version LayOut 2018
291
- def start_arrow
292
- end
293
-
294
- # The {#start_point} method returns the start point of the {Layout::Path}.
295
- #
296
- # @example
297
- # start_point = Geom::Point2d.new(1, 1)
298
- # end_point = Geom::Point2d.new(2, 2)
299
- # path = Layout::Path.new(start_point, end_point)
300
- # # should be equal to start_point
301
- # start = path.start_point
302
- #
303
- # @return [Geom::Point2d]
304
- #
305
- # @version LayOut 2018
306
- def start_point
307
- end
308
-
309
- # The {#tangent_at} method returns the tangent {Geom::Vector2d} at the given
310
- # parametric value.
311
- #
312
- # @example
313
- # length = path.parametric_length
314
- # # Get the tangent halfway along the path
315
- # halfway_tangent = path.tangent_at(length/2)
316
- #
317
- # @param [Float] parametric_value
318
- #
319
- # @raise [ArgumentError] if the parametric value is less than zero or greater
320
- # than the {Layout::Path}'s parametric length
321
- #
322
- # @return [Geom::Vector2d]
323
- #
324
- # @version LayOut 2018
325
- def tangent_at(parametric_value)
326
- end
327
-
328
- # The {#winding} method returns the winding type of the {Layout::Path}.
329
- #
330
- # A point type can be one of the following values:
331
- # [+PATH_WINDING_NONE+]
332
- # [+PATH_WINDING_CLOCKWISE+]
333
- # [+PATH_WINDING_COUNTER_CLOCKWISE+]
334
- #
335
- # @example
336
- # winding = path.winding
337
- #
338
- # @return [Integer]
339
- #
340
- # @version LayOut 2019
341
- def winding
342
- end
343
-
344
- end
1
+ # Copyright:: Copyright 2026 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # A path entity represents a continuous, multi-segment polyline or bezier
5
+ # curve.
6
+ #
7
+ # @version LayOut 2018
8
+ class Layout::Path < Layout::Entity
9
+
10
+ # Constants
11
+
12
+ POINT_TYPE_ARC_CENTER = nil # Stub value.
13
+ POINT_TYPE_BEZIER_CONTROL = nil # Stub value.
14
+ POINT_TYPE_BEZIER_TO = nil # Stub value.
15
+ POINT_TYPE_CLOSE = nil # Stub value.
16
+ POINT_TYPE_LINE_TO = nil # Stub value.
17
+ POINT_TYPE_MOVE_TO = nil # Stub value.
18
+
19
+ PATH_WINDING_CLOCKWISE = nil # Stub value.
20
+ PATH_WINDING_COUNTER_CLOCKWISE = nil # Stub value.
21
+ PATH_WINDING_NONE = nil # Stub value.
22
+
23
+ # Class Methods
24
+
25
+ # The {.new_arc} method creates a new arc-shaped {Layout::Path}.
26
+ #
27
+ # @example
28
+ # center = Geom::Point2d.new(5, 5)
29
+ # radius = 2.0
30
+ # start_angle = 3.14159
31
+ # end_angle = 6.28319
32
+ # arc = Layout::Path.new_arc(center, radius, start_angle, end_angle)
33
+ #
34
+ # @param [Geom::Point2d] center_point
35
+ #
36
+ # @param [Float] radius
37
+ #
38
+ # @param [Float] start_angle
39
+ # in radians
40
+ #
41
+ # @param [Float] end_angle
42
+ # in radians
43
+ #
44
+ # @raise [ArgumentError] if radius is less than or equal to zero
45
+ #
46
+ # @raise [ArgumentError] if start angle is equal to end angle
47
+ #
48
+ # @return [Layout::Path] an arc path
49
+ #
50
+ # @version LayOut 2018
51
+ def self.new_arc(center_point, radius, start_angle, end_angle)
52
+ end
53
+
54
+ # Instance Methods
55
+
56
+ # The {#append_point} method appends a {Geom::Point2d} to the end of the
57
+ # {Layout::Path}.
58
+ #
59
+ # @example
60
+ # point = Geom::Point2d.new(2, 5)
61
+ # path.append_point(point)
62
+ #
63
+ # @overload append_point(point)
64
+ #
65
+ # @param [Geom::Point2d] point
66
+ # @return [Layout::Path]
67
+ #
68
+ # @overload append_point(control_point1, control_point2, point)
69
+ #
70
+ # @param [Geom::Point2d] control_point1 The first bezier control point
71
+ # @param [Geom::Point2d] control_point2 The second bezier control point
72
+ # @param [Geom::Point2d] point The point to append
73
+ # @return [Layout::Path]
74
+ #
75
+ # @raise [LockedLayerError] if the {Layout::Path} is on a locked {Layout::Layer}
76
+ #
77
+ # @raise [LockedEntityError] if the {Layout::Path} is locked
78
+ #
79
+ # @version LayOut 2018
80
+ def append_point(*args)
81
+ end
82
+
83
+ # The {#arc} method returns the parameters of an arc from the {Layout::Path},
84
+ # or +nil+ if path is not an arc.
85
+ #
86
+ # @example
87
+ # start_angle, radius, start, end = path.arc
88
+ #
89
+ # @return [Array(Geom::Point2d, Float, Float, Float), nil] The center point,
90
+ # radius, start angle, and end angle
91
+ #
92
+ # @version LayOut 2018
93
+ def arc
94
+ end
95
+
96
+ # The {#circle} method returns the parameters of a circle from the
97
+ # {Layout::Path}, or +nil+ if path is not a circle.
98
+ #
99
+ # @example
100
+ # center_point, radius = path.circle
101
+ #
102
+ # @return [Array(Geom::Point2d, Float), nil] The center point and the radius
103
+ #
104
+ # @version LayOut 2018
105
+ def circle
106
+ end
107
+
108
+ # The {#close} method closes the {Layout::Path}.
109
+ #
110
+ # @example
111
+ # path.close
112
+ #
113
+ # @raise [LockedLayerError] if the {Layout::Path} is on a locked
114
+ # {Layout::Layer}
115
+ #
116
+ # @raise [ArgumentError] if the {Layout::Path} can not be closed becauase it
117
+ # contains less than three points.
118
+ #
119
+ # @raise [LockedEntityError] if the {Layout::Path} is locked
120
+ #
121
+ # @version LayOut 2018
122
+ def close
123
+ end
124
+
125
+ # The {#closed?} method returns whether the {Layout::Path} is closed.
126
+ #
127
+ # @example
128
+ # is_closed = path.closed?
129
+ #
130
+ # @return [Boolean]
131
+ #
132
+ # @version LayOut 2018
133
+ def closed?
134
+ end
135
+
136
+ # The {#end_arrow} method creates a new {Layout::Path} from an end arrow.
137
+ #
138
+ # @example
139
+ # path = Layout::Path.end_arrow(path_with_end_arrow)
140
+ #
141
+ # @return [Layout::Path, nil] The end arrow
142
+ #
143
+ # @version LayOut 2018
144
+ def end_arrow
145
+ end
146
+
147
+ # The {#end_point} method returns the end point of the {Layout::Path}.
148
+ #
149
+ # @example
150
+ # start_point = Geom::Point2d.new(1, 1)
151
+ # end_point = Geom::Point2d.new(2, 2)
152
+ # path = Layout::Path.new(start_point, end_point)
153
+ # # should be equal to end_point
154
+ # endp = path.end_point
155
+ #
156
+ # @return [Geom::Point2d]
157
+ #
158
+ # @version LayOut 2018
159
+ def end_point
160
+ end
161
+
162
+ # The {#initialize} method creates a new {Layout::Path} between a start point
163
+ # and an end point, or from a provided {Layout::Rectangle} or
164
+ # {Layout::Ellipse}.
165
+ #
166
+ # @example
167
+ # start = Geom::Point2d.new(1, 1)
168
+ # end = Geom::Point2d.new(2, 2)
169
+ # new_path = Layout::Path.new(start, end)
170
+ #
171
+ # @example
172
+ # start = Geom::Point2d.new(1, 1)
173
+ # control_1 = Geom::Point2d.new(1.5, 1)
174
+ # control_2 = Geom::Point2d.new(1, 1.5)
175
+ # end = Geom::Point2d.new(2, 2)
176
+ # new_path = Layout::Path.new(start, control_1, control_2, end)
177
+ #
178
+ # @overload initialize(start_point, end_point)
179
+ #
180
+ # @param [Geom::Point2d] start_point
181
+ # @param [Geom::Point2d] end_point
182
+ # @return [Layout::Path] a straight path
183
+ #
184
+ # @raise [ArgumentError] if the length between start point and end point is
185
+ # zero
186
+ #
187
+ # @overload initialize(start_point, control_point_1, control_point_2, end_point)
188
+ #
189
+ # @param [Geom::Point2d] start_point
190
+ # @param [Geom::Point2d] control_point_1 The first bezier control point
191
+ # @param [Geom::Point2d] control_point_2 The second bezier control point
192
+ # @param [Geom::Point2d] end_point
193
+ # @return [Layout::Path] a bezier path
194
+ #
195
+ # @raise [ArgumentError] if the length between start point and end point is
196
+ # zero
197
+ #
198
+ # @overload initialize(rectangle)
199
+ #
200
+ # @param [Layout::Rectangle] rectangle
201
+ # @return [Layout::Path] a path created from the {Layout::Rectangle}
202
+ #
203
+ # @raise [TypeError] if rectangle is not a {Layout::Rectangle}
204
+ #
205
+ # @overload initialize(ellipse)
206
+ #
207
+ # @param [Layout::Ellipse] ellipse
208
+ # @return [Layout::Path] a path created from the {Layout::Ellipse}
209
+ #
210
+ # @raise [TypeError] if ellipse is not an {Layout::Ellipse}
211
+ #
212
+ # @version LayOut 2018
213
+ def initialize(*args)
214
+ end
215
+
216
+ # The {#parametric_length} method returns the parametric length for the
217
+ # {Layout::Path}. The parametric length is the length with respect to the curve
218
+ # of the {Layout::Path}.
219
+ #
220
+ # @example
221
+ # length = path.parametric_length
222
+ #
223
+ # @return [Float]
224
+ #
225
+ # @version LayOut 2018
226
+ def parametric_length
227
+ end
228
+
229
+ # The {#point_at} method returns the {Geom::Point2d} at a given parametric
230
+ # value.
231
+ #
232
+ # @example
233
+ # length = path.parametric_length
234
+ # # Get the point halfway along the path
235
+ # halfway_point = path.point_at(length/2)
236
+ #
237
+ # @param [Float] parametric_value
238
+ #
239
+ # @raise [ArgumentError] if the parametric value is less than zero or greater
240
+ # than the {Layout::Path}'s parametric length
241
+ #
242
+ # @return [Geom::Point2d]
243
+ #
244
+ # @version LayOut 2018
245
+ def point_at(parametric_value)
246
+ end
247
+
248
+ # The {#point_types} method returns an array of point types corresponding to
249
+ # the {Geom::Point2d}s in the {Layout::Path}.
250
+ #
251
+ # A point type can be one of the following values:
252
+ # [+POINT_TYPE_MOVE_TO+]
253
+ # [+POINT_TYPE_LINE_TO+]
254
+ # [+POINT_TYPE_BEZIER_TO+]
255
+ # [+POINT_TYPE_ARC_CENTER+]
256
+ # [+POINT_TYPE_BEZIER_CONTROL+]
257
+ # [+POINT_TYPE_CLOSE+]
258
+ #
259
+ # @example
260
+ # types = path.point_types
261
+ #
262
+ # @return [Array<Integer>] An array of integers that correspond with point types.
263
+ #
264
+ # @version LayOut 2018
265
+ def point_types
266
+ end
267
+
268
+ # The {#points} method returns an array of {Geom::Point2d}s in the
269
+ # {Layout::Path}.
270
+ #
271
+ # @example
272
+ # start_point = Geom::Point2d.new(1, 1)
273
+ # end_point = Geom::Point2d.new(2, 2)
274
+ # new_path = Layout::Path.new(start_point, end_point)
275
+ # # Should be an array with points [1, 1] and [2, 2]
276
+ # points = new_path.points
277
+ #
278
+ # @return [Array<Geom::Point2d>]
279
+ #
280
+ # @version LayOut 2018
281
+ def points
282
+ end
283
+
284
+ # The {#start_arrow} method creates a new {Layout::Path} from a start
285
+ # arrow.
286
+ #
287
+ # @example
288
+ # start_arrow = path.start_arrow
289
+ #
290
+ # @return [Layout::Path, nil] The start arrow
291
+ #
292
+ # @version LayOut 2018
293
+ def start_arrow
294
+ end
295
+
296
+ # The {#start_point} method returns the start point of the {Layout::Path}.
297
+ #
298
+ # @example
299
+ # start_point = Geom::Point2d.new(1, 1)
300
+ # end_point = Geom::Point2d.new(2, 2)
301
+ # path = Layout::Path.new(start_point, end_point)
302
+ # # should be equal to start_point
303
+ # start = path.start_point
304
+ #
305
+ # @return [Geom::Point2d]
306
+ #
307
+ # @version LayOut 2018
308
+ def start_point
309
+ end
310
+
311
+ # The {#tangent_at} method returns the tangent {Geom::Vector2d} at the given
312
+ # parametric value.
313
+ #
314
+ # @example
315
+ # length = path.parametric_length
316
+ # # Get the tangent halfway along the path
317
+ # halfway_tangent = path.tangent_at(length/2)
318
+ #
319
+ # @param [Float] parametric_value
320
+ #
321
+ # @raise [ArgumentError] if the parametric value is less than zero or greater
322
+ # than the {Layout::Path}'s parametric length
323
+ #
324
+ # @return [Geom::Vector2d]
325
+ #
326
+ # @version LayOut 2018
327
+ def tangent_at(parametric_value)
328
+ end
329
+
330
+ # The {#winding} method returns the winding type of the {Layout::Path}.
331
+ #
332
+ # A point type can be one of the following values:
333
+ # [+PATH_WINDING_NONE+]
334
+ # [+PATH_WINDING_CLOCKWISE+]
335
+ # [+PATH_WINDING_COUNTER_CLOCKWISE+]
336
+ #
337
+ # @example
338
+ # winding = path.winding
339
+ #
340
+ # @return [Integer]
341
+ #
342
+ # @version LayOut 2019
343
+ def winding
344
+ end
345
+
346
+ end