sketchup-api-stubs 0.7.4 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs.rb +1 -1
  3. data/lib/sketchup-api-stubs/sketchup.rb +147 -145
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -318
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +498 -492
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -478
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +691 -691
  16. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  17. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +573 -573
  18. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +411 -411
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +179 -174
  20. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  21. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +515 -514
  22. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  23. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  25. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -349
  26. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  27. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  28. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  29. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -371
  30. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  31. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -220
  33. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  34. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  36. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  37. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  38. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -204
  39. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  40. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  41. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +694 -694
  42. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  43. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  44. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  47. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
  48. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +157 -157
  49. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  50. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +577 -562
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +604 -593
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +362 -329
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1126 -1119
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +751 -750
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +699 -697
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +285 -285
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +417 -409
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +405 -393
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +327 -285
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -456
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +257 -257
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +835 -829
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +71 -61
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1307 -1301
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
  135. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +317 -310
  136. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +387 -356
  137. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +255 -229
  138. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  139. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -633
  140. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
  141. data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
  142. data/lib/sketchup-api-stubs/stubs/geom.rb +351 -348
  143. data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
  144. data/lib/sketchup-api-stubs/stubs/length.rb +278 -278
  145. data/lib/sketchup-api-stubs/stubs/numeric.rb +249 -249
  146. data/lib/sketchup-api-stubs/stubs/sketchup.rb +1342 -1310
  147. data/lib/sketchup-api-stubs/stubs/sketchupextension.rb +353 -353
  148. data/lib/sketchup-api-stubs/stubs/string.rb +24 -24
  149. data/lib/sketchup-api-stubs/stubs/ui.rb +668 -667
  150. metadata +4 -2
@@ -1,204 +1,209 @@
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
+ # 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
+ # @note Don't remove content from this collection while iterating over it with
69
+ # {#each}. This would change the size of the collection and cause elements to
70
+ # be skipped as the indices change. Instead copy the current collection to an
71
+ # array using +to_a+ and then use +each+ on the array, when removing content.
72
+ #
73
+ # @version LayOut 2018
74
+ #
75
+ # @yieldparam [Layout::Page] page
76
+ def each
77
+ end
78
+
79
+ # The {#index} method returns the index of the {Layout::Page}, or +nil+ if
80
+ # it doesn't exist in the {Layout::Document}.
81
+ #
82
+ # @example
83
+ # doc = Layout::Document.open("C:/path/to/document.layout")
84
+ # pages = doc.pages
85
+ # page_index = pages.index(pages.first) # Returns 0
86
+ #
87
+ # @param [Layout::Page] page
88
+ #
89
+ # @return [Integer, nil]
90
+ #
91
+ # @version LayOut 2018
92
+ def index(page)
93
+ end
94
+
95
+ # The {#initial} method returns the initial {Layout::Page} that will be
96
+ # displayed the next time the {Layout::Document} is opened. This value will
97
+ # change whenever the {Layout::Page} is changed in the {Layout::Document} in
98
+ # LayOut.
99
+ #
100
+ # @example
101
+ # doc = Layout::Document.open("C:/path/to/document.layout")
102
+ # pages = doc.pages
103
+ # page = pages.initial
104
+ #
105
+ # @return [Layout::Page]
106
+ #
107
+ # @version LayOut 2018
108
+ def initial
109
+ end
110
+
111
+ # The {#initial=} method sets the initial {Layout::Page} that will be
112
+ # displayed the next time the {Layout::Document} is opened. This value will
113
+ # change whenever the {Layout::Page} is changed in the {Layout::Document} in
114
+ # LayOut.
115
+ #
116
+ # @example
117
+ # doc = Layout::Document.open("C:/path/to/document.layout")
118
+ # pages = doc.pages
119
+ # pages.initial = doc.pages[0]
120
+ #
121
+ # @overload initial=(page)
122
+ #
123
+ # @param [Layout::Page] page The {Layout::Page} to set as the initial one
124
+ #
125
+ # @raise [ArgumentError] if page does not belong to the {Layout::Document}
126
+ #
127
+ # @overload initial=(index)
128
+ #
129
+ # @param [Integer] index The index of the {Layout::Page} to set as the
130
+ # initial one
131
+ #
132
+ # @raise [IndexError] if index is out of range
133
+ #
134
+ # @version LayOut 2018
135
+ def initial=(page)
136
+ end
137
+
138
+ # The {#length} method returns the number of {Layout::Page}s.
139
+ #
140
+ # @example
141
+ # doc = Layout::Document.open("C:/path/to/document.layout")
142
+ # pages = doc.pages
143
+ # num_pages = pages.length
144
+ #
145
+ # @return [Integer]
146
+ #
147
+ # @version LayOut 2018
148
+ def length
149
+ end
150
+ alias_method :size, :length
151
+
152
+ # The {#remove} method deletes the given {Layout::Page} from the
153
+ # {Layout::Document}.
154
+ #
155
+ # @example
156
+ # doc = Layout::Document.open("C:/path/to/document.layout")
157
+ # pages = doc.pages
158
+ # pages.remove(pages[0])
159
+ #
160
+ # @overload remove(page)
161
+ #
162
+ # @param [Layout::Page] page The {Layout::Page} to be removed
163
+ #
164
+ # @raise [ArgumentError] if the {Layout::Page} is not in the
165
+ # {Layout::Document}
166
+ # @raise [ArgumentError] if the {Layout::Page} is the only one in the
167
+ # {Layout::Document}
168
+ #
169
+ # @overload remove(index)
170
+ #
171
+ # @param [Integer] index The index of the {Layout::Page} to be removed
172
+ #
173
+ # @raise [ArgumentError] if the {Layout::Page} is the only one in the
174
+ # {Layout::Document}
175
+ # @raise [IndexError] if index is out of range
176
+ #
177
+ # @version LayOut 2018
178
+ def remove(page)
179
+ end
180
+
181
+ # The {#reorder} method moves a {Layout::Page} to a different index within
182
+ # the {Layout::Document}'s list of pages. This will move the {Layout::Page}
183
+ # such that its new index becomes new_index.
184
+ #
185
+ # @example
186
+ # doc = Layout::Document.open("C:/path/to/document.layout")
187
+ # pages = doc.pages
188
+ # pages.reorder(pages[1], 3)
189
+ #
190
+ # @overload reorder(page, new_index)
191
+ #
192
+ # @param [Layout::Page] page The {Layout::Page} to be reordered
193
+ # @param [Integer] new_index The index to put the {Layout::Page} at
194
+ #
195
+ # @raise [ArgumentError] if the {Layout::Page} is not in the {Layout::Document}
196
+ # @raise [IndexError] if new_index is out of range
197
+ #
198
+ # @overload reorder(index, new_index)
199
+ #
200
+ # @param [Integer] index The index of the {Layout::Page} to be reordered
201
+ # @param [Integer] new_index The index to put the {Layout::Page} at
202
+ #
203
+ # @raise [IndexError] if index or new_index is out of range
204
+ #
205
+ # @version LayOut 2018
206
+ def reorder(page, new_index)
207
+ end
208
+
209
+ end
@@ -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 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