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