sketchup-api-stubs 0.7.9 → 0.7.11
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 +157 -151
- data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
- data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
- data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +182 -172
- data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +111 -126
- data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
- data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +423 -400
- data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +693 -661
- data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +535 -509
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +500 -476
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +267 -263
- data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +133 -141
- data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +547 -522
- data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +678 -693
- data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
- data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
- data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +751 -747
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
- data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
- data/lib/sketchup-api-stubs/stubs/Layout/Dictionary.rb +234 -0
- data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +683 -517
- 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 +464 -353
- data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
- 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 +614 -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 +282 -183
- data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +458 -387
- data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
- data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +346 -344
- data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
- data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
- data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
- data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1565 -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 +286 -278
- data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
- data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +196 -144
- data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
- data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +145 -150
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +294 -281
- data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
- data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +296 -302
- data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +473 -478
- data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
- data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
- data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +673 -659
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +600 -593
- data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
- data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +252 -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 +443 -449
- 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 +167 -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 +403 -406
- data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
- data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1282 -1239
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
- data/lib/sketchup-api-stubs/stubs/Sketchup/Environment.rb +406 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Environments.rb +185 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/EnvironmentsObserver.rb +113 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +122 -125
- data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +1006 -937
- data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
- data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +740 -750
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +289 -282
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +64 -62
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
- data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +405 -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 +432 -406
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +307 -306
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +332 -326
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +380 -422
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +409 -427
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +241 -249
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +55 -48
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
- data/lib/sketchup-api-stubs/stubs/Sketchup/LoadHandler.rb +70 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
- data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +1115 -414
- data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +330 -317
- 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 +1714 -1652
- data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +372 -357
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +133 -130
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
- data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +463 -490
- data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +104 -116
- data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +939 -797
- data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +388 -361
- data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
- data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +501 -478
- data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +385 -361
- 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 +451 -458
- data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
- data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +211 -212
- data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +259 -255
- 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/Snap.rb +125 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +88 -69
- data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +263 -217
- data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +283 -262
- data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +199 -217
- data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +924 -834
- 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 -75
- data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +143 -142
- data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1566 -1311
- data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +71 -45
- data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1429 -1377
- data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
- data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
- data/lib/sketchup-api-stubs/stubs/UI/Command.rb +399 -389
- data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +580 -494
- data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +280 -269
- data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +258 -241
- data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +636 -635
- data/lib/sketchup-api-stubs/stubs/UI.rb +791 -683
- data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
- data/lib/sketchup-api-stubs.rb +1 -1
- metadata +10 -24
|
@@ -1,353 +1,464 @@
|
|
|
1
|
-
# Copyright:: Copyright
|
|
2
|
-
# License:: The MIT License (MIT)
|
|
3
|
-
|
|
4
|
-
# An entity is an object shown on a page of a LayOut document.
|
|
5
|
-
#
|
|
6
|
-
# @example
|
|
7
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
8
|
-
# # Get the shared entities in the document. If there are no shared layers,
|
|
9
|
-
# # the resulting array will be empty.
|
|
10
|
-
# entities = doc.shared_entities
|
|
11
|
-
#
|
|
12
|
-
# # Count how many of the shared entites are rectangles.
|
|
13
|
-
# rectangle_count = entities.grep(Layout::Rectangle).size
|
|
14
|
-
#
|
|
15
|
-
# @version LayOut 2018
|
|
16
|
-
class Layout::Entity
|
|
17
|
-
|
|
18
|
-
# Instance Methods
|
|
19
|
-
|
|
20
|
-
# The {#==} method checks to see if the two {Layout::Entity}s are equal. This
|
|
21
|
-
# checks whether the Ruby Objects are pointing to the same internal object.
|
|
22
|
-
#
|
|
23
|
-
# @example
|
|
24
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
25
|
-
# page_entities = doc.pages.first.entities
|
|
26
|
-
# layer_entities = doc.layers.first.layer_instance(page).entities
|
|
27
|
-
# page_entities.first == layer_entities.first
|
|
28
|
-
#
|
|
29
|
-
# @param [Layout::Entity] other
|
|
30
|
-
#
|
|
31
|
-
# @return [Boolean]
|
|
32
|
-
#
|
|
33
|
-
# @version LayOut 2018
|
|
34
|
-
def ==(other)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
# The {#
|
|
38
|
-
#
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
-
#
|
|
42
|
-
#
|
|
43
|
-
#
|
|
44
|
-
#
|
|
45
|
-
#
|
|
46
|
-
#
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
#
|
|
51
|
-
#
|
|
52
|
-
#
|
|
53
|
-
# @
|
|
54
|
-
#
|
|
55
|
-
#
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
#
|
|
60
|
-
#
|
|
61
|
-
# @
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
#
|
|
66
|
-
#
|
|
67
|
-
#
|
|
68
|
-
# @
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
#
|
|
73
|
-
#
|
|
74
|
-
#
|
|
75
|
-
#
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
#
|
|
80
|
-
#
|
|
81
|
-
#
|
|
82
|
-
#
|
|
83
|
-
#
|
|
84
|
-
#
|
|
85
|
-
#
|
|
86
|
-
#
|
|
87
|
-
#
|
|
88
|
-
#
|
|
89
|
-
#
|
|
90
|
-
#
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
#
|
|
95
|
-
#
|
|
96
|
-
#
|
|
97
|
-
#
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
#
|
|
102
|
-
#
|
|
103
|
-
#
|
|
104
|
-
#
|
|
105
|
-
#
|
|
106
|
-
#
|
|
107
|
-
#
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
#
|
|
112
|
-
#
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
#
|
|
117
|
-
#
|
|
118
|
-
#
|
|
119
|
-
# @
|
|
120
|
-
#
|
|
121
|
-
#
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
#
|
|
126
|
-
#
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
#
|
|
131
|
-
#
|
|
132
|
-
#
|
|
133
|
-
#
|
|
134
|
-
#
|
|
135
|
-
#
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
#
|
|
140
|
-
#
|
|
141
|
-
#
|
|
142
|
-
#
|
|
143
|
-
#
|
|
144
|
-
#
|
|
145
|
-
#
|
|
146
|
-
# @
|
|
147
|
-
#
|
|
148
|
-
#
|
|
149
|
-
#
|
|
150
|
-
#
|
|
151
|
-
#
|
|
152
|
-
# @param [Layout::
|
|
153
|
-
#
|
|
154
|
-
#
|
|
155
|
-
#
|
|
156
|
-
#
|
|
157
|
-
#
|
|
158
|
-
#
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
#
|
|
163
|
-
#
|
|
164
|
-
#
|
|
165
|
-
#
|
|
166
|
-
#
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
#
|
|
171
|
-
#
|
|
172
|
-
#
|
|
173
|
-
#
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
#
|
|
178
|
-
#
|
|
179
|
-
#
|
|
180
|
-
#
|
|
181
|
-
#
|
|
182
|
-
#
|
|
183
|
-
#
|
|
184
|
-
#
|
|
185
|
-
#
|
|
186
|
-
#
|
|
187
|
-
#
|
|
188
|
-
# @
|
|
189
|
-
#
|
|
190
|
-
#
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
#
|
|
195
|
-
#
|
|
196
|
-
#
|
|
197
|
-
#
|
|
198
|
-
#
|
|
199
|
-
#
|
|
200
|
-
#
|
|
201
|
-
#
|
|
202
|
-
# @
|
|
203
|
-
#
|
|
204
|
-
# @
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
#
|
|
211
|
-
#
|
|
212
|
-
#
|
|
213
|
-
#
|
|
214
|
-
#
|
|
215
|
-
#
|
|
216
|
-
# @
|
|
217
|
-
#
|
|
218
|
-
#
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
#
|
|
223
|
-
#
|
|
224
|
-
#
|
|
225
|
-
#
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
#
|
|
230
|
-
#
|
|
231
|
-
#
|
|
232
|
-
#
|
|
233
|
-
#
|
|
234
|
-
#
|
|
235
|
-
# #
|
|
236
|
-
#
|
|
237
|
-
#
|
|
238
|
-
#
|
|
239
|
-
#
|
|
240
|
-
# @
|
|
241
|
-
#
|
|
242
|
-
#
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
#
|
|
247
|
-
#
|
|
248
|
-
#
|
|
249
|
-
#
|
|
250
|
-
# @
|
|
251
|
-
#
|
|
252
|
-
#
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
#
|
|
257
|
-
#
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
#
|
|
262
|
-
#
|
|
263
|
-
#
|
|
264
|
-
#
|
|
265
|
-
#
|
|
266
|
-
#
|
|
267
|
-
#
|
|
268
|
-
#
|
|
269
|
-
#
|
|
270
|
-
#
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
#
|
|
275
|
-
#
|
|
276
|
-
#
|
|
277
|
-
# @
|
|
278
|
-
#
|
|
279
|
-
#
|
|
280
|
-
#
|
|
281
|
-
#
|
|
282
|
-
#
|
|
283
|
-
#
|
|
284
|
-
#
|
|
285
|
-
# @raise [
|
|
286
|
-
# {Layout::
|
|
287
|
-
#
|
|
288
|
-
# @raise [
|
|
289
|
-
#
|
|
290
|
-
#
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
#
|
|
295
|
-
#
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
#
|
|
300
|
-
#
|
|
301
|
-
#
|
|
302
|
-
#
|
|
303
|
-
#
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
#
|
|
308
|
-
#
|
|
309
|
-
#
|
|
310
|
-
#
|
|
311
|
-
#
|
|
312
|
-
#
|
|
313
|
-
#
|
|
314
|
-
#
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
#
|
|
319
|
-
#
|
|
320
|
-
#
|
|
321
|
-
#
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
#
|
|
326
|
-
#
|
|
327
|
-
#
|
|
328
|
-
#
|
|
329
|
-
# @
|
|
330
|
-
#
|
|
331
|
-
#
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
#
|
|
336
|
-
#
|
|
337
|
-
# @
|
|
338
|
-
#
|
|
339
|
-
#
|
|
340
|
-
#
|
|
341
|
-
#
|
|
342
|
-
# @
|
|
343
|
-
#
|
|
344
|
-
#
|
|
345
|
-
#
|
|
346
|
-
#
|
|
347
|
-
#
|
|
348
|
-
#
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
1
|
+
# Copyright:: Copyright 2026 Trimble Inc.
|
|
2
|
+
# License:: The MIT License (MIT)
|
|
3
|
+
|
|
4
|
+
# An entity is an object shown on a page of a LayOut document.
|
|
5
|
+
#
|
|
6
|
+
# @example
|
|
7
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
8
|
+
# # Get the shared entities in the document. If there are no shared layers,
|
|
9
|
+
# # the resulting array will be empty.
|
|
10
|
+
# entities = doc.shared_entities
|
|
11
|
+
#
|
|
12
|
+
# # Count how many of the shared entites are rectangles.
|
|
13
|
+
# rectangle_count = entities.grep(Layout::Rectangle).size
|
|
14
|
+
#
|
|
15
|
+
# @version LayOut 2018
|
|
16
|
+
class Layout::Entity
|
|
17
|
+
|
|
18
|
+
# Instance Methods
|
|
19
|
+
|
|
20
|
+
# The {#==} method checks to see if the two {Layout::Entity}s are equal. This
|
|
21
|
+
# checks whether the Ruby Objects are pointing to the same internal object.
|
|
22
|
+
#
|
|
23
|
+
# @example
|
|
24
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
25
|
+
# page_entities = doc.pages.first.entities
|
|
26
|
+
# layer_entities = doc.layers.first.layer_instance(page).entities
|
|
27
|
+
# page_entities.first == layer_entities.first
|
|
28
|
+
#
|
|
29
|
+
# @param [Layout::Entity] other
|
|
30
|
+
#
|
|
31
|
+
# @return [Boolean]
|
|
32
|
+
#
|
|
33
|
+
# @version LayOut 2018
|
|
34
|
+
def ==(other)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# The {#attribute_dictionary} method returns a copy of the entity's attribute dictionary with the
|
|
38
|
+
# given name.
|
|
39
|
+
#
|
|
40
|
+
# no attribute dictionary
|
|
41
|
+
#
|
|
42
|
+
# @example
|
|
43
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
44
|
+
# entity = doc.pages.first.entities.first
|
|
45
|
+
# entity.set_attribute("jane_doe_doc_maker", "made_by_doc_maker", true)
|
|
46
|
+
# attributes = entity.attribute_dictionary("jane_doe_doc_maker")
|
|
47
|
+
# # Adding to this Layout::Dictionary does not apply to the entity's attribute dictionary, use
|
|
48
|
+
# #Layout::Entity#set_attribute.
|
|
49
|
+
# attributes.merge!(doc_id: 42)
|
|
50
|
+
#
|
|
51
|
+
# @param [String] name
|
|
52
|
+
#
|
|
53
|
+
# @return [Layout::Dictionary, nil] A copy of the entity's attribute dictionary, or nil if there is
|
|
54
|
+
#
|
|
55
|
+
# @version LayOut 2026.0
|
|
56
|
+
def attribute_dictionary(name)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# The {#bounds} method returns the 2D rectangular bounds of the {Layout::Entity}.
|
|
60
|
+
#
|
|
61
|
+
# @example
|
|
62
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
63
|
+
# entities = doc.pages.first.entities
|
|
64
|
+
# bounds = entities.first.bounds
|
|
65
|
+
#
|
|
66
|
+
# @return [Geom::Bounds2d]
|
|
67
|
+
#
|
|
68
|
+
# @version LayOut 2018
|
|
69
|
+
def bounds
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# The {#delete_attribute} method is used to delete an attribute from an entity.
|
|
73
|
+
#
|
|
74
|
+
# @overload delete_attribute(dictionary_name)
|
|
75
|
+
#
|
|
76
|
+
# @param [String] dictionary_name The name of an attribute dictionary.
|
|
77
|
+
# @return [Boolean]
|
|
78
|
+
#
|
|
79
|
+
# @example
|
|
80
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
81
|
+
# entity = doc.pages.first.entities.first
|
|
82
|
+
# entity.set_attribute("jane_doe_doc_maker", "made_by_doc_maker", true)
|
|
83
|
+
# entity.delete_attribute("jane_doe_doc_maker")
|
|
84
|
+
#
|
|
85
|
+
# @overload delete_attribute(dictionary_name, key)
|
|
86
|
+
#
|
|
87
|
+
# @param [String] dictionary_name The name of an attribute dictionary.
|
|
88
|
+
# @param [String] key An attribute key.
|
|
89
|
+
# @return [Boolean]
|
|
90
|
+
#
|
|
91
|
+
# @example
|
|
92
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
93
|
+
# entity = doc.pages.first.entities.first
|
|
94
|
+
# entity.set_attribute("jane_doe_doc_maker", "made_by_doc_maker", true)
|
|
95
|
+
# entity.delete_attribute("jane_doe_doc_maker", "made_by_doc_maker")
|
|
96
|
+
#
|
|
97
|
+
# @version LayOut 2026.0
|
|
98
|
+
def delete_attribute(*args)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# The {#document} method returns the {Layout::Document} that the
|
|
102
|
+
# {Layout::Entity} belongs to, or +nil+ if it is not in a {Layout::Document}.
|
|
103
|
+
#
|
|
104
|
+
# @example
|
|
105
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
106
|
+
# entities = doc.shared_entities
|
|
107
|
+
# # entity_doc should be the same document as doc
|
|
108
|
+
# entity_doc = entities.first.document
|
|
109
|
+
#
|
|
110
|
+
# @return [Layout::Document, nil]
|
|
111
|
+
#
|
|
112
|
+
# @version LayOut 2018
|
|
113
|
+
def document
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# The {#drawing_bounds} method returns the 2D rectangular drawing bounds of the
|
|
117
|
+
# {Layout::Entity}.
|
|
118
|
+
#
|
|
119
|
+
# @example
|
|
120
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
121
|
+
# entities = doc.pages.first.entities
|
|
122
|
+
# draw_bounds = entities.first.drawing_bounds
|
|
123
|
+
#
|
|
124
|
+
# @return [Geom::OrientedBounds2d]
|
|
125
|
+
#
|
|
126
|
+
# @version LayOut 2018
|
|
127
|
+
def drawing_bounds
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# The {#get_attribute} method is used to retrieve the value of an attribute in
|
|
131
|
+
# the entity's attribute dictionary.
|
|
132
|
+
#
|
|
133
|
+
# If the third parameter, +default_value+, is not passed and there is no
|
|
134
|
+
# attribute that matches the given name, it returns +nil+.
|
|
135
|
+
#
|
|
136
|
+
# If +default_value+ is provided and there is no matching attribute it returns
|
|
137
|
+
# the given value. It does not create an attribute with that name though.
|
|
138
|
+
#
|
|
139
|
+
# @example
|
|
140
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
141
|
+
# entity = doc.pages.first.entities.first
|
|
142
|
+
# # Read an attribute value from the entity. In this case this will return the
|
|
143
|
+
# # default value provided: 42.
|
|
144
|
+
# entity.get_attribute("jane_doe_doc_maker", "doc_id", 42)
|
|
145
|
+
#
|
|
146
|
+
# @param [String] name
|
|
147
|
+
# The name of an attribute dictionary.
|
|
148
|
+
#
|
|
149
|
+
# @param [String] key
|
|
150
|
+
# An attribute key.
|
|
151
|
+
#
|
|
152
|
+
# @param [String, Boolean, Integer, Float, Hash, Layout::Dictionary, nil] default_value
|
|
153
|
+
# A default
|
|
154
|
+
# value to return if no attribute is found.
|
|
155
|
+
#
|
|
156
|
+
# @return [String, Boolean, Integer, Float, Layout::Dictionary, nil] the retrieved value.
|
|
157
|
+
#
|
|
158
|
+
# @version LayOut 2026.0
|
|
159
|
+
def get_attribute(name, key, default_value = nil)
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
# The {#group} method returns the {Layout::Group} the {Layout::Entity} belongs
|
|
163
|
+
# to, or +nil+ if it is not in a {Layout::Group}.
|
|
164
|
+
#
|
|
165
|
+
# @example
|
|
166
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
167
|
+
# pages = doc.pages
|
|
168
|
+
# entities = pages.first.entities
|
|
169
|
+
# group = entities.first.group
|
|
170
|
+
#
|
|
171
|
+
# @return [Layout::Group, nil]
|
|
172
|
+
#
|
|
173
|
+
# @version LayOut 2018
|
|
174
|
+
def group
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
# The {#layer_instance} method returns the {Layout::LayerInstance} that the
|
|
178
|
+
# {Layout::Entity} is on, or +nil+ if it is not associated with a
|
|
179
|
+
# {Layout::LayerInstance}.
|
|
180
|
+
#
|
|
181
|
+
# @example
|
|
182
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
183
|
+
# entities = doc.pages.first.entities
|
|
184
|
+
# entity_layer_instance = entities.first.layer_instance
|
|
185
|
+
#
|
|
186
|
+
# @note {Layout::Group}s are never associated with a {Layout::LayerInstance}.
|
|
187
|
+
#
|
|
188
|
+
# @return [Layout::LayerInstance, nil]
|
|
189
|
+
#
|
|
190
|
+
# @version LayOut 2018
|
|
191
|
+
def layer_instance
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
# The {#locked=} method sets the {Layout::Entity} as locked or unlocked. When
|
|
195
|
+
# locked, the {Layout::Entity} cannot be modified directly.
|
|
196
|
+
#
|
|
197
|
+
# @example
|
|
198
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
199
|
+
# entities = doc.pages.first.entities
|
|
200
|
+
# entities.first.locked = true
|
|
201
|
+
#
|
|
202
|
+
# @param [Boolean] is_locked
|
|
203
|
+
#
|
|
204
|
+
# @version LayOut 2018
|
|
205
|
+
def locked=(is_locked)
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
# The {#locked?} method returns whether the {Layout::Entity} is locked or
|
|
209
|
+
# unlocked.
|
|
210
|
+
#
|
|
211
|
+
# @example
|
|
212
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
213
|
+
# entities = doc.pages.first.entities
|
|
214
|
+
# is_first_locked = entities.first.locked?
|
|
215
|
+
#
|
|
216
|
+
# @return [Boolean]
|
|
217
|
+
#
|
|
218
|
+
# @version LayOut 2018
|
|
219
|
+
def locked?
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
# The {#move_to_group} method moves the {Layout::Entity} into a {Layout::Group}.
|
|
223
|
+
# If the {Layout::Entity} is already in a {Layout::Group}, it will be removed
|
|
224
|
+
# from that {Layout::Group} prior to being added to the new one. If this action
|
|
225
|
+
# results in the old {Layout::Group} containing only one {Layout::Entity}, the
|
|
226
|
+
# old {Layout::Group} will be collapsed and the remaining {Layout::Entity} will
|
|
227
|
+
# be moved to the old {Layout::Group}'s parent.
|
|
228
|
+
#
|
|
229
|
+
# @example
|
|
230
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
231
|
+
# # We consider that there are two rectangle objects in the entities.
|
|
232
|
+
# entities = doc.layers.first.layer_instance(doc.pages.first).entities
|
|
233
|
+
# # We move the first rectangle to a new group.
|
|
234
|
+
# group = Layout::Group.new([entities.first])
|
|
235
|
+
# # We move the second rectangle to the same group.
|
|
236
|
+
# entities[1].first.move_to_group(new_group)
|
|
237
|
+
#
|
|
238
|
+
# @param [Layout::Group] group
|
|
239
|
+
#
|
|
240
|
+
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
|
241
|
+
# {Layout::Layer}
|
|
242
|
+
#
|
|
243
|
+
# @raise [ArgumentError] if entity and group are not in the same
|
|
244
|
+
# {Layout::Document}
|
|
245
|
+
#
|
|
246
|
+
# @raise [ArgumentError] if entity and group are not on the same {Layout::Page}
|
|
247
|
+
#
|
|
248
|
+
# @raise [ArgumentError] if of entity and group one is shared and one is not
|
|
249
|
+
#
|
|
250
|
+
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
|
251
|
+
#
|
|
252
|
+
# @version LayOut 2018
|
|
253
|
+
def move_to_group(group)
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
# The {#move_to_layer} method moves the {Layout::Entity} to the given
|
|
257
|
+
# {Layout::Layer}. If the {Layout::Layer} is non-shared and the
|
|
258
|
+
# {Layout::Entity} is currently on a shared {Layout::Layer}, an array of
|
|
259
|
+
# {Layout::Page}s must be provided to move the {Layout::Entity} to. In all other
|
|
260
|
+
# cases, passing in an array of {Layout::Page}s is not necessary. The
|
|
261
|
+
# {Layout::Entity} must belong to the same {Layout::Document} as the the
|
|
262
|
+
# {Layout::Layer} and the {Layout::Page}s.
|
|
263
|
+
#
|
|
264
|
+
# @bug In LayOut versions prior to LayOut 2024.0 this method would fail to move
|
|
265
|
+
# entities from non-shared layers.
|
|
266
|
+
#
|
|
267
|
+
# @example
|
|
268
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
269
|
+
# entities = doc.pages.first.entities
|
|
270
|
+
# layers = doc.layers
|
|
271
|
+
# entities.last.move_to_layer(layers.first)
|
|
272
|
+
#
|
|
273
|
+
# @overload move_to_layer(layer)
|
|
274
|
+
#
|
|
275
|
+
# @param [Layout::Layer] layer
|
|
276
|
+
#
|
|
277
|
+
# @overload move_to_layer(layer, pages)
|
|
278
|
+
#
|
|
279
|
+
# @param [Layout::Layer] layer
|
|
280
|
+
# @param [Array<Layout::Page>] pages
|
|
281
|
+
#
|
|
282
|
+
# @raise [ArgumentError] if layer is shared and a valid array of non-duplicate
|
|
283
|
+
# {Layout::Page}s is not passed in
|
|
284
|
+
#
|
|
285
|
+
# @raise [ArgumentError] if entity, layer, and pages are not all in the same
|
|
286
|
+
# {Layout::Document}
|
|
287
|
+
#
|
|
288
|
+
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
|
289
|
+
# {Layout::Layer}
|
|
290
|
+
#
|
|
291
|
+
# @raise [LockedLayerError] if layer is locked
|
|
292
|
+
#
|
|
293
|
+
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
|
294
|
+
#
|
|
295
|
+
# @version LayOut 2018
|
|
296
|
+
def move_to_layer(*args)
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
# The {#on_shared_layer?} method returns whether or not the {Layout::Entity} is
|
|
300
|
+
# on a shared {Layout::Layer}. This function works for all {Layout::Entity}
|
|
301
|
+
# types, including {Layout::Group}. {Layout::Group}s do not belong to a
|
|
302
|
+
# specific {Layout::Layer}, but their children are all on either a shared
|
|
303
|
+
# or non-shared {Layout::Layer}.
|
|
304
|
+
#
|
|
305
|
+
# @example
|
|
306
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
307
|
+
# entities = doc.pages.first.entities
|
|
308
|
+
# on_shared_layer = entities.first.on_shared_layer?
|
|
309
|
+
#
|
|
310
|
+
# @raise [ArgumentError] if the {Layout::Entity} is not in a {Layout::Document}
|
|
311
|
+
#
|
|
312
|
+
# @return [Boolean]
|
|
313
|
+
#
|
|
314
|
+
# @version LayOut 2018
|
|
315
|
+
def on_shared_layer?
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
# The {#page} method returns the {Layout::Page} that the {Layout::Entity}
|
|
319
|
+
# belongs to, or +nil+ if it is on a shared {Layout::Layer} or not in a
|
|
320
|
+
# {Layout::Document}.
|
|
321
|
+
#
|
|
322
|
+
# @example
|
|
323
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
324
|
+
# # page will be nil
|
|
325
|
+
# page = doc.shared_entities.first.page
|
|
326
|
+
# # page will be the first page of the document
|
|
327
|
+
# page = doc.pages.first.nonshared_entities.first.page
|
|
328
|
+
#
|
|
329
|
+
# @return [Layout::Page, nil]
|
|
330
|
+
#
|
|
331
|
+
# @version LayOut 2018
|
|
332
|
+
def page
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
# The {#set_attribute} method adds an attribute to the entity's attribute dictionary.
|
|
336
|
+
#
|
|
337
|
+
# @example
|
|
338
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
339
|
+
# entity = doc.pages.first.entities.first
|
|
340
|
+
# entity.set_attribute("jane_doe_doc_maker", "doc_id", 42)
|
|
341
|
+
#
|
|
342
|
+
# @param [String] name
|
|
343
|
+
# The name of an attribute dictionary.
|
|
344
|
+
# @param [String] key An attribute key.
|
|
345
|
+
# @param [String, Boolean, Integer, Float, Hash, Layout::Dictionary, nil] value The value for the
|
|
346
|
+
# attribute.
|
|
347
|
+
#
|
|
348
|
+
# @version LayOut 2026.0
|
|
349
|
+
def set_attribute(name, key, value)
|
|
350
|
+
end
|
|
351
|
+
|
|
352
|
+
# The {#style} method returns the {Layout::Style} of the {Layout::Entity}. If
|
|
353
|
+
# the {Layout::Entity} is a {Layout::Group}, +nil+ will be returned, as they
|
|
354
|
+
# do not have a {Layout::Style}.
|
|
355
|
+
#
|
|
356
|
+
# @example
|
|
357
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
358
|
+
# entities = doc.entities
|
|
359
|
+
# style = entities.first.style
|
|
360
|
+
#
|
|
361
|
+
# @return [Layout::Style, nil]
|
|
362
|
+
#
|
|
363
|
+
# @version LayOut 2018
|
|
364
|
+
def style
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
# The {#style=} method sets the {Layout::Style} of the {Layout::Entity}.
|
|
368
|
+
#
|
|
369
|
+
# @param [Layout::Style] style
|
|
370
|
+
#
|
|
371
|
+
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
|
372
|
+
# {Layout::Layer}
|
|
373
|
+
#
|
|
374
|
+
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
|
375
|
+
#
|
|
376
|
+
# @version LayOut 2018
|
|
377
|
+
def style=(style)
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
# The {#transform!} method transforms the {Layout::Entity} with a given
|
|
381
|
+
# {Geom::Transformation2d}.
|
|
382
|
+
#
|
|
383
|
+
# @example
|
|
384
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
385
|
+
# entities = doc.pages.first.entities
|
|
386
|
+
# transform = Geom::Transformation2d.new([1.0, 0.0, 0.0, 1.0, 1.0, 1.0])
|
|
387
|
+
# entity = entities.first.transform!(transform)
|
|
388
|
+
#
|
|
389
|
+
# @note Since LayOut 2026.1, passing a non-invertible transformation raises
|
|
390
|
+
# an `ArgumentError`.
|
|
391
|
+
#
|
|
392
|
+
# @param [Geom::Transformation2d] transformation
|
|
393
|
+
#
|
|
394
|
+
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
|
395
|
+
# {Layout::Layer}
|
|
396
|
+
#
|
|
397
|
+
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
|
398
|
+
#
|
|
399
|
+
# @raise [ArgumentError] if the transformation matrix is not invertible
|
|
400
|
+
#
|
|
401
|
+
# @version LayOut 2018
|
|
402
|
+
def transform!(transformation)
|
|
403
|
+
end
|
|
404
|
+
|
|
405
|
+
# The {#transformation} method returns the explicit {Geom::Transformation2d}.
|
|
406
|
+
#
|
|
407
|
+
# @example
|
|
408
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
409
|
+
# entities = doc.pages.first.entities
|
|
410
|
+
# transform = entities.first.transformation
|
|
411
|
+
#
|
|
412
|
+
# @return [Geom::Transformation2d, nil]
|
|
413
|
+
#
|
|
414
|
+
# @version LayOut 2018
|
|
415
|
+
def transformation
|
|
416
|
+
end
|
|
417
|
+
|
|
418
|
+
# The {#untransformed_bounds} method returns the untransformed bounds of the
|
|
419
|
+
# {Layout::Entity}. This is the bounds of the {Layout::Entity} before its
|
|
420
|
+
# explicit {Geom::Transformation2d} is applied.
|
|
421
|
+
#
|
|
422
|
+
# @example
|
|
423
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
424
|
+
# entities = doc.pages.first.entities
|
|
425
|
+
# bounds = entities.first.untransformed_bounds
|
|
426
|
+
#
|
|
427
|
+
# @raise [ArgumentError] if the {Layout::Entity} does not have an explicit
|
|
428
|
+
# {Geom::Transformation2d}
|
|
429
|
+
#
|
|
430
|
+
# @return [Geom::Bounds2d]
|
|
431
|
+
#
|
|
432
|
+
# @version LayOut 2018
|
|
433
|
+
def untransformed_bounds
|
|
434
|
+
end
|
|
435
|
+
|
|
436
|
+
# The {#untransformed_bounds=} method sets the untransformed bounds of the
|
|
437
|
+
# {Layout::Entity}. This is the bounds of the {Layout::Entity} before its
|
|
438
|
+
# explicit {Geom::Transformation2d} is applied.
|
|
439
|
+
#
|
|
440
|
+
# @example
|
|
441
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
|
442
|
+
# entities = doc.pages.first.entities
|
|
443
|
+
# point1 = Geom::Point2d.new(1, 1)
|
|
444
|
+
# point2 = Geom::Point2d.new(2, 2)
|
|
445
|
+
# bounds = Geom::Bounds2d(point1, point2)
|
|
446
|
+
# entities.first.untransformed_bounds = bounds
|
|
447
|
+
#
|
|
448
|
+
# @param [Geom::Bounds2d] bounds
|
|
449
|
+
#
|
|
450
|
+
# @raise [ArgumentError] if the {Layout::Entity} does not have an explicit
|
|
451
|
+
# {Geom::Transformation2d}
|
|
452
|
+
#
|
|
453
|
+
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
|
454
|
+
# {Layout::Layer}
|
|
455
|
+
#
|
|
456
|
+
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
|
457
|
+
#
|
|
458
|
+
# @raise [ArgumentError] if the bounds are of zero size
|
|
459
|
+
#
|
|
460
|
+
# @version LayOut 2018
|
|
461
|
+
def untransformed_bounds=(bounds)
|
|
462
|
+
end
|
|
463
|
+
|
|
464
|
+
end
|