sketchup-api-stubs 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +5 -5
  2. data/.yardopts +9 -9
  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 -400
  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 -522
  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 -573
  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 -514
  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 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -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 +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 -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 +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 -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/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 -562
  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 -1119
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +125 -125
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +544 -544
  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 -280
  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 -1601
  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 -284
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +770 -770
  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 -364
  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 -1301
  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 -311
  140. data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
  141. data/lib/sketchup-api-stubs/stubs/geom.rb +348 -348
  142. data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
  143. data/lib/sketchup-api-stubs/stubs/length.rb +278 -278
  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 -667
  149. metadata +3 -4
@@ -1,216 +1,204 @@
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
-
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 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