sketchup-api-stubs 0.7.4 → 0.7.8

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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +148 -145
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → Array.rb} +741 -741
  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 +523 -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 +693 -691
  16. data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -348
  17. data/lib/sketchup-api-stubs/stubs/{languagehandler.rb → LanguageHandler.rb} +93 -92
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -573
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +698 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -174
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +516 -514
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -349
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -371
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -220
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -204
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -694
  43. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  44. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  48. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  49. data/lib/sketchup-api-stubs/stubs/{length.rb → Length.rb} +278 -278
  50. data/lib/sketchup-api-stubs/stubs/{numeric.rb → Numeric.rb} +249 -249
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -157
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +619 -562
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +426 -329
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1205 -1119
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +272 -0
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -750
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -697
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +292 -285
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -409
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +407 -393
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -285
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +477 -456
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +260 -257
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +837 -829
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -61
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1317 -1301
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
  140. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1360 -1310
  141. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  142. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  143. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -310
  144. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +496 -356
  145. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -229
  146. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  147. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
  148. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -667
  149. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
  150. data/lib/sketchup-api-stubs.rb +1 -1
  151. metadata +15 -12
@@ -1,344 +1,344 @@
1
- # Copyright:: Copyright 2020 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 2022 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