sketchup-api-stubs 0.6.1 → 0.7.4

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 (149) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -0
  3. data/lib/sketchup-api-stubs.rb +1 -1
  4. data/lib/sketchup-api-stubs/sketchup.rb +145 -145
  5. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +318 -318
  6. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  7. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  8. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -401
  10. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  11. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +492 -492
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -478
  13. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  14. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -523
  16. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +691 -691
  17. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +573 -569
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +411 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +174 -186
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +514 -455
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +143 -155
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -359
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -349
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -123
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -86
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +371 -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 +220 -232
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -563
  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 +204 -216
  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 +694 -547
  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/Sketchup/Animation.rb +140 -140
  49. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +157 -157
  50. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -281
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +328 -328
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +577 -577
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +281 -281
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +562 -554
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +194 -194
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +329 -329
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +72 -72
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +102 -102
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +312 -312
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +38 -38
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +390 -390
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +508 -508
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1119 -1097
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +125 -125
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +544 -537
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +59 -59
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -125
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +750 -750
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +697 -697
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +285 -285
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +409 -409
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +226 -226
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +190 -190
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +393 -393
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +82 -82
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +303 -303
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +285 -262
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +244 -231
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +136 -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 -123
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +416 -416
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +311 -311
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +141 -141
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +95 -95
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1638 -1483
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +356 -356
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +132 -132
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -282
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +770 -650
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +353 -353
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +76 -76
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +456 -456
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -356
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +44 -44
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +454 -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 +57 -57
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +211 -211
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +225 -225
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +829 -829
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +154 -154
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +61 -61
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1301 -995
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +43 -43
  134. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +310 -310
  135. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +356 -356
  136. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +229 -229
  137. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  138. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -633
  139. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -303
  140. data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
  141. data/lib/sketchup-api-stubs/stubs/geom.rb +348 -233
  142. data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
  143. data/lib/sketchup-api-stubs/stubs/length.rb +278 -262
  144. data/lib/sketchup-api-stubs/stubs/numeric.rb +249 -249
  145. data/lib/sketchup-api-stubs/stubs/sketchup.rb +1310 -1310
  146. data/lib/sketchup-api-stubs/stubs/sketchupextension.rb +353 -353
  147. data/lib/sketchup-api-stubs/stubs/string.rb +24 -24
  148. data/lib/sketchup-api-stubs/stubs/ui.rb +667 -660
  149. metadata +2 -16
@@ -1,216 +1,204 @@
1
- # Copyright:: Copyright 2019 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The Pages class is a container class for all pages in a {Layout::Document}.
5
- #
6
- # @example
7
- # # Grab a handle to an existing LayOut document's pages.
8
- # doc = Layout::Document.open("C:/path/to/document.layout")
9
- # pages = doc.pages
10
- #
11
- # # From here, we can add pages to or remove them from the document
12
- # pages.add("New Page")
13
- # pages.remove(pages[0])
14
- #
15
- # @version LayOut 2018
16
- class Layout::Pages
17
-
18
- # Includes
19
-
20
- include Enumerable
21
-
22
- # Instance Methods
23
-
24
- # The {#[]} method returns a value from the array of {Layout::Page}s.
25
- #
26
- # @example
27
- # doc = Layout::Document.open("C:/path/to/document.layout")
28
- # pages = doc.pages
29
- # page = pages[2]
30
- #
31
- # @param [Integer] index
32
- # The index of the {Layout::Page} to return.
33
- #
34
- # @raise [IndexError] if index is out of range
35
- #
36
- # @return [Layout::Page]
37
- #
38
- # @version LayOut 2018
39
- def [](index)
40
- end
41
-
42
- # The {#add} method adds a new {Layout::Page} to the {Layout::Document}.
43
- # The newly added {Layout::Page} will be the last one in the {Layout::Document}.
44
- #
45
- # @example
46
- # doc = Layout::Document.open("C:/path/to/document.layout")
47
- # pages = doc.pages
48
- # new_page = doc.add
49
- #
50
- # @param [String] name
51
- # The name for the new page.
52
- #
53
- # @return [Layout::Page] The newly added {Layout::Page}.
54
- #
55
- # @version LayOut 2018
56
- def add(name = nil)
57
- end
58
-
59
- # The {#each} method iterates through all of the {Layout::Page}s.
60
- #
61
- # @example
62
- # doc = Layout::Document.open("C:/path/to/document.layout")
63
- # pages = doc.pages
64
- # pages.each { |page|
65
- # puts page.name
66
- # }
67
- #
68
- # @version LayOut 2018
69
- #
70
- # @yieldparam [Layout::Page] page
71
- def each
72
- end
73
-
74
- # The {#index} method returns the index of the {Layout::Page}, or +nil+ if
75
- # it doesn't exist in the {Layout::Document}.
76
- #
77
- # @example
78
- # doc = Layout::Document.open("C:/path/to/document.layout")
79
- # pages = doc.pages
80
- # page_index = pages.index(pages.first) # Returns 0
81
- #
82
- # @param [Layout::Page] page
83
- #
84
- # @return [Integer, nil]
85
- #
86
- # @version LayOut 2018
87
- def index(page)
88
- end
89
-
90
- # The {#initial} method returns the initial {Layout::Page} that will be
91
- # displayed the next time the {Layout::Document} is opened. This value will
92
- # change whenever the {Layout::Page} is changed in the {Layout::Document} in
93
- # LayOut.
94
- #
95
- # @example
96
- # doc = Layout::Document.open("C:/path/to/document.layout")
97
- # pages = doc.pages
98
- # page = pages.initial
99
- #
100
- # @return [Layout::Page]
101
- #
102
- # @version LayOut 2018
103
- def initial
104
- end
105
-
106
- # The {#initial=} method sets the initial {Layout::Page} that will be
107
- # displayed the next time the {Layout::Document} is opened. This value will
108
- # change whenever the {Layout::Page} is changed in the {Layout::Document} in
109
- # LayOut.
110
- #
111
- # @example
112
- # doc = Layout::Document.open("C:/path/to/document.layout")
113
- # pages = doc.pages
114
- # pages.initial = doc.pages[0]
115
- #
116
- # @overload initial=(page)
117
- #
118
- # @param [Layout::Page] page The {Layout::Page} to set as the initial one
119
- #
120
- # @raise [ArgumentError] if page does not belong to the {Layout::Document}
121
- #
122
- # @overload initial=(index)
123
- #
124
- # @param [Integer] index The index of the {Layout::Page} to set as the
125
- # initial one
126
- #
127
- # @raise [IndexError] if index is out of range
128
- #
129
- # @version LayOut 2018
130
- def initial=(page)
131
- end
132
-
133
- # The {#length} method returns the number of {Layout::Page}s.
134
- #
135
- # @example
136
- # doc = Layout::Document.open("C:/path/to/document.layout")
137
- # pages = doc.pages
138
- # num_pages = pages.length
139
- #
140
- # @return [Integer]
141
- #
142
- # @version LayOut 2018
143
- def length
144
- end
145
-
146
- # The {#remove} method deletes the given {Layout::Page} from the
147
- # {Layout::Document}.
148
- #
149
- # @example
150
- # doc = Layout::Document.open("C:/path/to/document.layout")
151
- # pages = doc.pages
152
- # pages.remove(pages[0])
153
- #
154
- # @overload remove(page)
155
- #
156
- # @param [Layout::Page] page The {Layout::Page} to be removed
157
- #
158
- # @raise [ArgumentError] if the {Layout::Page} is not in the
159
- # {Layout::Document}
160
- # @raise [ArgumentError] if the {Layout::Page} is the only one in the
161
- # {Layout::Document}
162
- #
163
- # @overload remove(index)
164
- #
165
- # @param [Integer] index The index of the {Layout::Page} to be removed
166
- #
167
- # @raise [ArgumentError] if the {Layout::Page} is the only one in the
168
- # {Layout::Document}
169
- # @raise [IndexError] if index is out of range
170
- #
171
- # @version LayOut 2018
172
- def remove(page)
173
- end
174
-
175
- # The {#reorder} method moves a {Layout::Page} to a different index within
176
- # the {Layout::Document}'s list of pages. This will move the {Layout::Page}
177
- # such that its new index becomes new_index.
178
- #
179
- # @example
180
- # doc = Layout::Document.open("C:/path/to/document.layout")
181
- # pages = doc.pages
182
- # pages.reorder(pages[1], 3)
183
- #
184
- # @overload reorder(page, new_index)
185
- #
186
- # @param [Layout::Page] page The {Layout::Page} to be reordered
187
- # @param [Integer] new_index The index to put the {Layout::Page} at
188
- #
189
- # @raise [ArgumentError] if the {Layout::Page} is not in the {Layout::Document}
190
- # @raise [IndexError] if new_index is out of range
191
- #
192
- # @overload reorder(index, new_index)
193
- #
194
- # @param [Integer] index The index of the {Layout::Page} to be reordered
195
- # @param [Integer] new_index The index to put the {Layout::Page} at
196
- #
197
- # @raise [IndexError] if index or new_index is out of range
198
- #
199
- # @version LayOut 2018
200
- def reorder(page, new_index)
201
- end
202
-
203
- # The {#length} method returns the number of {Layout::Page}s.
204
- #
205
- # @example
206
- # doc = Layout::Document.open("C:/path/to/document.layout")
207
- # pages = doc.pages
208
- # num_pages = pages.length
209
- #
210
- # @return [Integer]
211
- #
212
- # @version LayOut 2018
213
- def size
214
- end
215
-
216
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The Pages class is a container class for all pages in a {Layout::Document}.
5
+ #
6
+ # @example
7
+ # # Grab a handle to an existing LayOut document's pages.
8
+ # doc = Layout::Document.open("C:/path/to/document.layout")
9
+ # pages = doc.pages
10
+ #
11
+ # # From here, we can add pages to or remove them from the document
12
+ # pages.add("New Page")
13
+ # pages.remove(pages[0])
14
+ #
15
+ # @version LayOut 2018
16
+ class Layout::Pages
17
+
18
+ # Includes
19
+
20
+ include Enumerable
21
+
22
+ # Instance Methods
23
+
24
+ # The {#[]} method returns a value from the array of {Layout::Page}s.
25
+ #
26
+ # @example
27
+ # doc = Layout::Document.open("C:/path/to/document.layout")
28
+ # pages = doc.pages
29
+ # page = pages[2]
30
+ #
31
+ # @param [Integer] index
32
+ # The index of the {Layout::Page} to return.
33
+ #
34
+ # @raise [IndexError] if index is out of range
35
+ #
36
+ # @return [Layout::Page]
37
+ #
38
+ # @version LayOut 2018
39
+ def [](index)
40
+ end
41
+
42
+ # The {#add} method adds a new {Layout::Page} to the {Layout::Document}.
43
+ # The newly added {Layout::Page} will be the last one in the {Layout::Document}.
44
+ #
45
+ # @example
46
+ # doc = Layout::Document.open("C:/path/to/document.layout")
47
+ # pages = doc.pages
48
+ # new_page = doc.add
49
+ #
50
+ # @param [String] name
51
+ # The name for the new page.
52
+ #
53
+ # @return [Layout::Page] The newly added {Layout::Page}.
54
+ #
55
+ # @version LayOut 2018
56
+ def add(name = nil)
57
+ end
58
+
59
+ # The {#each} method iterates through all of the {Layout::Page}s.
60
+ #
61
+ # @example
62
+ # doc = Layout::Document.open("C:/path/to/document.layout")
63
+ # pages = doc.pages
64
+ # pages.each { |page|
65
+ # puts page.name
66
+ # }
67
+ #
68
+ # @version LayOut 2018
69
+ #
70
+ # @yieldparam [Layout::Page] page
71
+ def each
72
+ end
73
+
74
+ # The {#index} method returns the index of the {Layout::Page}, or +nil+ if
75
+ # it doesn't exist in the {Layout::Document}.
76
+ #
77
+ # @example
78
+ # doc = Layout::Document.open("C:/path/to/document.layout")
79
+ # pages = doc.pages
80
+ # page_index = pages.index(pages.first) # Returns 0
81
+ #
82
+ # @param [Layout::Page] page
83
+ #
84
+ # @return [Integer, nil]
85
+ #
86
+ # @version LayOut 2018
87
+ def index(page)
88
+ end
89
+
90
+ # The {#initial} method returns the initial {Layout::Page} that will be
91
+ # displayed the next time the {Layout::Document} is opened. This value will
92
+ # change whenever the {Layout::Page} is changed in the {Layout::Document} in
93
+ # LayOut.
94
+ #
95
+ # @example
96
+ # doc = Layout::Document.open("C:/path/to/document.layout")
97
+ # pages = doc.pages
98
+ # page = pages.initial
99
+ #
100
+ # @return [Layout::Page]
101
+ #
102
+ # @version LayOut 2018
103
+ def initial
104
+ end
105
+
106
+ # The {#initial=} method sets the initial {Layout::Page} that will be
107
+ # displayed the next time the {Layout::Document} is opened. This value will
108
+ # change whenever the {Layout::Page} is changed in the {Layout::Document} in
109
+ # LayOut.
110
+ #
111
+ # @example
112
+ # doc = Layout::Document.open("C:/path/to/document.layout")
113
+ # pages = doc.pages
114
+ # pages.initial = doc.pages[0]
115
+ #
116
+ # @overload initial=(page)
117
+ #
118
+ # @param [Layout::Page] page The {Layout::Page} to set as the initial one
119
+ #
120
+ # @raise [ArgumentError] if page does not belong to the {Layout::Document}
121
+ #
122
+ # @overload initial=(index)
123
+ #
124
+ # @param [Integer] index The index of the {Layout::Page} to set as the
125
+ # initial one
126
+ #
127
+ # @raise [IndexError] if index is out of range
128
+ #
129
+ # @version LayOut 2018
130
+ def initial=(page)
131
+ end
132
+
133
+ # The {#length} method returns the number of {Layout::Page}s.
134
+ #
135
+ # @example
136
+ # doc = Layout::Document.open("C:/path/to/document.layout")
137
+ # pages = doc.pages
138
+ # num_pages = pages.length
139
+ #
140
+ # @return [Integer]
141
+ #
142
+ # @version LayOut 2018
143
+ def length
144
+ end
145
+ alias_method :size, :length
146
+
147
+ # The {#remove} method deletes the given {Layout::Page} from the
148
+ # {Layout::Document}.
149
+ #
150
+ # @example
151
+ # doc = Layout::Document.open("C:/path/to/document.layout")
152
+ # pages = doc.pages
153
+ # pages.remove(pages[0])
154
+ #
155
+ # @overload remove(page)
156
+ #
157
+ # @param [Layout::Page] page The {Layout::Page} to be removed
158
+ #
159
+ # @raise [ArgumentError] if the {Layout::Page} is not in the
160
+ # {Layout::Document}
161
+ # @raise [ArgumentError] if the {Layout::Page} is the only one in the
162
+ # {Layout::Document}
163
+ #
164
+ # @overload remove(index)
165
+ #
166
+ # @param [Integer] index The index of the {Layout::Page} to be removed
167
+ #
168
+ # @raise [ArgumentError] if the {Layout::Page} is the only one in the
169
+ # {Layout::Document}
170
+ # @raise [IndexError] if index is out of range
171
+ #
172
+ # @version LayOut 2018
173
+ def remove(page)
174
+ end
175
+
176
+ # The {#reorder} method moves a {Layout::Page} to a different index within
177
+ # the {Layout::Document}'s list of pages. This will move the {Layout::Page}
178
+ # such that its new index becomes new_index.
179
+ #
180
+ # @example
181
+ # doc = Layout::Document.open("C:/path/to/document.layout")
182
+ # pages = doc.pages
183
+ # pages.reorder(pages[1], 3)
184
+ #
185
+ # @overload reorder(page, new_index)
186
+ #
187
+ # @param [Layout::Page] page The {Layout::Page} to be reordered
188
+ # @param [Integer] new_index The index to put the {Layout::Page} at
189
+ #
190
+ # @raise [ArgumentError] if the {Layout::Page} is not in the {Layout::Document}
191
+ # @raise [IndexError] if new_index is out of range
192
+ #
193
+ # @overload reorder(index, new_index)
194
+ #
195
+ # @param [Integer] index The index of the {Layout::Page} to be reordered
196
+ # @param [Integer] new_index The index to put the {Layout::Page} at
197
+ #
198
+ # @raise [IndexError] if index or new_index is out of range
199
+ #
200
+ # @version LayOut 2018
201
+ def reorder(page, new_index)
202
+ end
203
+
204
+ end
@@ -1,344 +1,344 @@
1
- # Copyright:: Copyright 2019 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 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