sketchup-api-stubs 0.7.4 → 0.7.8
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 +148 -145
- data/lib/sketchup-api-stubs/stubs/{array.rb → Array.rb} +741 -741
- data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -318
- 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 +523 -492
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -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 -348
- 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 +698 -411
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -174
- data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
- data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +516 -514
- data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
- data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
- 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 -371
- 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 -220
- 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 -204
- 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/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 -140
- 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 +152 -152
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
- data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
- data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
- data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
- data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
- data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
- data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +619 -562
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
- 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 -194
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +426 -329
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
- data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
- data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
- data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
- data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1205 -1119
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +272 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
- data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
- data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -750
- data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
- data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -697
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +292 -285
- 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 -409
- data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
- data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
- data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +407 -393
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -285
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
- 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 +112 -112
- data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
- data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
- data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
- data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
- data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
- data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
- data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
- data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
- data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
- data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
- data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +477 -456
- data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
- data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
- data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
- 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 +260 -257
- data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
- data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
- data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
- data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
- data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
- data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +837 -829
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
- data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
- data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -61
- data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
- data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1317 -1301
- data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
- data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1360 -1310
- 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 -310
- data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +496 -356
- data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -229
- data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
- data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
- data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -667
- data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
- data/lib/sketchup-api-stubs.rb +1 -1
- metadata +15 -12
@@ -1,353 +1,353 @@
|
|
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 {#bounds} method returns the 2D rectangular bounds of the {Layout::Entity}.
|
38
|
-
#
|
39
|
-
# @example
|
40
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
41
|
-
# entities = doc.pages.first.entities
|
42
|
-
# bounds = entities.first.bounds
|
43
|
-
#
|
44
|
-
# @return [Geom::Bounds2d]
|
45
|
-
#
|
46
|
-
# @version LayOut 2018
|
47
|
-
def bounds
|
48
|
-
end
|
49
|
-
|
50
|
-
# The {#document} method returns the {Layout::Document} that the
|
51
|
-
# {Layout::Entity} belongs to, or +nil+ if it is not in a {Layout::Document}.
|
52
|
-
#
|
53
|
-
# @example
|
54
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
55
|
-
# entities = doc.shared_entities
|
56
|
-
# # entity_doc should be the same document as doc
|
57
|
-
# entity_doc = entities.first.document
|
58
|
-
#
|
59
|
-
# @return [Layout::Document, nil]
|
60
|
-
#
|
61
|
-
# @version LayOut 2018
|
62
|
-
def document
|
63
|
-
end
|
64
|
-
|
65
|
-
# The {#drawing_bounds} method returns the 2D rectangular drawing bounds of the
|
66
|
-
# {Layout::Entity}.
|
67
|
-
#
|
68
|
-
# @example
|
69
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
70
|
-
# entities = doc.pages.first.entities
|
71
|
-
# draw_bounds = entities.first.drawing_bounds
|
72
|
-
#
|
73
|
-
# @return [Geom::OrientedBounds2d]
|
74
|
-
#
|
75
|
-
# @version LayOut 2018
|
76
|
-
def drawing_bounds
|
77
|
-
end
|
78
|
-
|
79
|
-
# The {#group} method returns the {Layout::Group} the {Layout::Entity} belongs
|
80
|
-
# to, or +nil+ if it is not in a {Layout::Group}.
|
81
|
-
#
|
82
|
-
# @example
|
83
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
84
|
-
# pages = doc.pages
|
85
|
-
# entities = pages.first.entities
|
86
|
-
# group = entities.first.group
|
87
|
-
#
|
88
|
-
# @return [Layout::Group, nil]
|
89
|
-
#
|
90
|
-
# @version LayOut 2018
|
91
|
-
def group
|
92
|
-
end
|
93
|
-
|
94
|
-
# The {#layer_instance} method returns the {Layout::LayerInstance} that the
|
95
|
-
# {Layout::Entity} is on, or +nil+ if it is not associated with a
|
96
|
-
# {Layout::LayerInstance}.
|
97
|
-
#
|
98
|
-
# @example
|
99
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
100
|
-
# entities = doc.pages.first.entities
|
101
|
-
# entity_layer_instance = entities.first.layer_instance
|
102
|
-
#
|
103
|
-
# @note {Layout::Group}s are never associated with a {Layout::LayerInstance}.
|
104
|
-
#
|
105
|
-
# @return [Layout::LayerInstance, nil]
|
106
|
-
#
|
107
|
-
# @version LayOut 2018
|
108
|
-
def layer_instance
|
109
|
-
end
|
110
|
-
|
111
|
-
# The {#locked=} method sets the {Layout::Entity} as locked or unlocked. When
|
112
|
-
# locked, the {Layout::Entity} cannot be modified directly.
|
113
|
-
#
|
114
|
-
# @example
|
115
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
116
|
-
# entities = doc.pages.first.entities
|
117
|
-
# entities.first.locked = true
|
118
|
-
#
|
119
|
-
# @param [Boolean] is_locked
|
120
|
-
#
|
121
|
-
# @version LayOut 2018
|
122
|
-
def locked=(is_locked)
|
123
|
-
end
|
124
|
-
|
125
|
-
# The {#locked?} method returns whether the {Layout::Entity} is locked or
|
126
|
-
# unlocked.
|
127
|
-
#
|
128
|
-
# @example
|
129
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
130
|
-
# entities = doc.pages.first.entities
|
131
|
-
# is_first_locked = entities.first.locked?
|
132
|
-
#
|
133
|
-
# @return [Boolean]
|
134
|
-
#
|
135
|
-
# @version LayOut 2018
|
136
|
-
def locked?
|
137
|
-
end
|
138
|
-
|
139
|
-
# The {#move_to_group} method moves the {Layout::Entity} into a {Layout::Group}.
|
140
|
-
# If the {Layout::Entity} is already in a {Layout::Group}, it will be removed
|
141
|
-
# from that {Layout::Group} prior to being added to the new one. If this action
|
142
|
-
# results in the old {Layout::Group} containing only one {Layout::Entity}, the
|
143
|
-
# old {Layout::Group} will be collapsed and the remaining {Layout::Entity} will
|
144
|
-
# be moved to the old {Layout::Group}'s parent.
|
145
|
-
#
|
146
|
-
# @example
|
147
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
148
|
-
# entities = doc.pages.first.entities
|
149
|
-
# new_group = Layout::Group.new
|
150
|
-
# entities.first.move_to_group(new_group)
|
151
|
-
#
|
152
|
-
# @param [Layout::Group] group
|
153
|
-
#
|
154
|
-
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
155
|
-
# {Layout::Layer}
|
156
|
-
#
|
157
|
-
# @raise [ArgumentError] if entity and group are not in the same
|
158
|
-
# {Layout::Document}
|
159
|
-
#
|
160
|
-
# @raise [ArgumentError] if entity and group are not on the same {Layout::Page}
|
161
|
-
#
|
162
|
-
# @raise [ArgumentError] if of entity and group one is shared and one is not
|
163
|
-
#
|
164
|
-
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
165
|
-
#
|
166
|
-
# @version LayOut 2018
|
167
|
-
def move_to_group(group)
|
168
|
-
end
|
169
|
-
|
170
|
-
# The {#move_to_layer} method moves the {Layout::Entity} to the given
|
171
|
-
# {Layout::Layer}. If the {Layout::Layer} is non-shared and the
|
172
|
-
# {Layout::Entity} is currently on a shared {Layout::Layer}, an array of
|
173
|
-
# {Layout::Page}s must be provided to move the {Layout::Entity} to. In all other
|
174
|
-
# cases, passing in an array of {Layout::Page}s is not necessary. The
|
175
|
-
# {Layout::Entity} must belong to the same {Layout::Document} as the the
|
176
|
-
# {Layout::Layer} and the {Layout::Page}s.
|
177
|
-
#
|
178
|
-
# @example
|
179
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
180
|
-
# entities = doc.pages.first.entities
|
181
|
-
# layers = doc.layers
|
182
|
-
# entities.last.move_to_layer(layers.first)
|
183
|
-
#
|
184
|
-
# @overload move_to_layer(layer)
|
185
|
-
#
|
186
|
-
# @param [Layout::Layer] layer
|
187
|
-
#
|
188
|
-
# @overload move_to_layer(layer, pages)
|
189
|
-
#
|
190
|
-
# @param [Layout::Layer] layer
|
191
|
-
# @param [Array<Layout::Page>] pages
|
192
|
-
#
|
193
|
-
# @raise [ArgumentError] if layer is shared and a valid array of non-duplicate
|
194
|
-
# {Layout::Page}s is not passed in
|
195
|
-
#
|
196
|
-
# @raise [ArgumentError] if entity, layer, and pages are not all in the same
|
197
|
-
# {Layout::Document}
|
198
|
-
#
|
199
|
-
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
200
|
-
# {Layout::Layer}
|
201
|
-
#
|
202
|
-
# @raise [LockedLayerError] if layer is locked
|
203
|
-
#
|
204
|
-
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
205
|
-
#
|
206
|
-
# @version LayOut 2018
|
207
|
-
def move_to_layer(*args)
|
208
|
-
end
|
209
|
-
|
210
|
-
# The {#on_shared_layer?} method returns whether or not the {Layout::Entity} is
|
211
|
-
# on a shared {Layout::Layer}. This function works for all {Layout::Entity}
|
212
|
-
# types, including {Layout::Group}. {Layout::Group}s do not belong to a
|
213
|
-
# specific {Layout::Layer}, but their children are all on either a shared
|
214
|
-
# or non-shared {Layout::Layer}.
|
215
|
-
#
|
216
|
-
# @example
|
217
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
218
|
-
# entities = doc.pages.first.entities
|
219
|
-
# on_shared_layer = entities.first.on_shared_layer?
|
220
|
-
#
|
221
|
-
# @raise [ArgumentError] if the {Layout::Entity} is not in a {Layout::Document}
|
222
|
-
#
|
223
|
-
# @return [Boolean]
|
224
|
-
#
|
225
|
-
# @version LayOut 2018
|
226
|
-
def on_shared_layer?
|
227
|
-
end
|
228
|
-
|
229
|
-
# The {#page} method returns the {Layout::Page} that the {Layout::Entity}
|
230
|
-
# belongs to, or +nil+ if it is on a shared {Layout::Layer} or not in a
|
231
|
-
# {Layout::Document}.
|
232
|
-
#
|
233
|
-
# @example
|
234
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
235
|
-
# # page will be nil
|
236
|
-
# page = doc.shared_entities.first.page
|
237
|
-
# # page will be the first page of the document
|
238
|
-
# page = doc.pages.first.nonshared_entities.first.page
|
239
|
-
#
|
240
|
-
# @return [Layout::Page, nil]
|
241
|
-
#
|
242
|
-
# @version LayOut 2018
|
243
|
-
def page
|
244
|
-
end
|
245
|
-
|
246
|
-
# The {#style} method returns the {Layout::Style} of the {Layout::Entity}. If
|
247
|
-
# the {Layout::Entity} is a {Layout::Group}, +nil+ will be returned, as they
|
248
|
-
# do not have a {Layout::Style}.
|
249
|
-
#
|
250
|
-
# @example
|
251
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
252
|
-
# entities = doc.entities
|
253
|
-
# style = entities.first.style
|
254
|
-
#
|
255
|
-
# @return [Layout::Style, nil]
|
256
|
-
#
|
257
|
-
# @version LayOut 2018
|
258
|
-
def style
|
259
|
-
end
|
260
|
-
|
261
|
-
# The {#style=} method sets the {Layout::Style} of the {Layout::Entity}.
|
262
|
-
#
|
263
|
-
# @param [Layout::Style] style
|
264
|
-
#
|
265
|
-
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
266
|
-
# {Layout::Layer}
|
267
|
-
#
|
268
|
-
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
269
|
-
#
|
270
|
-
# @version LayOut 2018
|
271
|
-
def style=(style)
|
272
|
-
end
|
273
|
-
|
274
|
-
# The {#transform!} method transforms the {Layout::Entity} with a given
|
275
|
-
# {Geom::Transformation2d}.
|
276
|
-
#
|
277
|
-
# @example
|
278
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
279
|
-
# entities = doc.pages.first.entities
|
280
|
-
# transform = Geom::Transformation2d.new([1.0, 0.0, 0.0, 1.0, 1.0, 1.0])
|
281
|
-
# entity = entities.first.transform!(transform)
|
282
|
-
#
|
283
|
-
# @param [Geom::Transformation2d] transformation
|
284
|
-
#
|
285
|
-
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
286
|
-
# {Layout::Layer}
|
287
|
-
#
|
288
|
-
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
289
|
-
#
|
290
|
-
# @version LayOut 2018
|
291
|
-
def transform!(transformation)
|
292
|
-
end
|
293
|
-
|
294
|
-
# The {#transformation} method returns the explicit {Geom::Transformation2d}.
|
295
|
-
#
|
296
|
-
# @example
|
297
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
298
|
-
# entities = doc.pages.first.entities
|
299
|
-
# transform = entities.first.transformation
|
300
|
-
#
|
301
|
-
# @return [Geom::Transformation2d, nil]
|
302
|
-
#
|
303
|
-
# @version LayOut 2018
|
304
|
-
def transformation
|
305
|
-
end
|
306
|
-
|
307
|
-
# The {#untransformed_bounds} method returns the untransformed bounds of the
|
308
|
-
# {Layout::Entity}. This is the bounds of the {Layout::Entity} before its
|
309
|
-
# explicit {Geom::Transformation2d} is applied.
|
310
|
-
#
|
311
|
-
# @example
|
312
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
313
|
-
# entities = doc.pages.first.entities
|
314
|
-
# bounds = entities.first.untransformed_bounds
|
315
|
-
#
|
316
|
-
# @raise [ArgumentError] if the {Layout::Entity} does not have an explicit
|
317
|
-
# {Geom::Transformation2d}
|
318
|
-
#
|
319
|
-
# @return [Geom::Bounds2d]
|
320
|
-
#
|
321
|
-
# @version LayOut 2018
|
322
|
-
def untransformed_bounds
|
323
|
-
end
|
324
|
-
|
325
|
-
# The {#untransformed_bounds=} method sets the untransformed bounds of the
|
326
|
-
# {Layout::Entity}. This is the bounds of the {Layout::Entity} before its
|
327
|
-
# explicit {Geom::Transformation2d} is applied.
|
328
|
-
#
|
329
|
-
# @example
|
330
|
-
# doc = Layout::Document.open("C:/path/to/document.layout")
|
331
|
-
# entities = doc.pages.first.entities
|
332
|
-
# point1 = Geom::Point2d.new(1, 1)
|
333
|
-
# point2 = Geom::Point2d.new(2, 2)
|
334
|
-
# bounds = Geom::Bounds2d(point1, point2)
|
335
|
-
# entities.first.untransformed_bounds = bounds
|
336
|
-
#
|
337
|
-
# @param [Geom::Bounds2d] bounds
|
338
|
-
#
|
339
|
-
# @raise [ArgumentError] if the {Layout::Entity} does not have an explicit
|
340
|
-
# {Geom::Transformation2d}
|
341
|
-
#
|
342
|
-
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
343
|
-
# {Layout::Layer}
|
344
|
-
#
|
345
|
-
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
346
|
-
#
|
347
|
-
# @raise [ArgumentError] if the bounds are of zero size
|
348
|
-
#
|
349
|
-
# @version LayOut 2018
|
350
|
-
def untransformed_bounds=(bounds)
|
351
|
-
end
|
352
|
-
|
353
|
-
end
|
1
|
+
# Copyright:: Copyright 2022 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 {#bounds} method returns the 2D rectangular bounds of the {Layout::Entity}.
|
38
|
+
#
|
39
|
+
# @example
|
40
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
41
|
+
# entities = doc.pages.first.entities
|
42
|
+
# bounds = entities.first.bounds
|
43
|
+
#
|
44
|
+
# @return [Geom::Bounds2d]
|
45
|
+
#
|
46
|
+
# @version LayOut 2018
|
47
|
+
def bounds
|
48
|
+
end
|
49
|
+
|
50
|
+
# The {#document} method returns the {Layout::Document} that the
|
51
|
+
# {Layout::Entity} belongs to, or +nil+ if it is not in a {Layout::Document}.
|
52
|
+
#
|
53
|
+
# @example
|
54
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
55
|
+
# entities = doc.shared_entities
|
56
|
+
# # entity_doc should be the same document as doc
|
57
|
+
# entity_doc = entities.first.document
|
58
|
+
#
|
59
|
+
# @return [Layout::Document, nil]
|
60
|
+
#
|
61
|
+
# @version LayOut 2018
|
62
|
+
def document
|
63
|
+
end
|
64
|
+
|
65
|
+
# The {#drawing_bounds} method returns the 2D rectangular drawing bounds of the
|
66
|
+
# {Layout::Entity}.
|
67
|
+
#
|
68
|
+
# @example
|
69
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
70
|
+
# entities = doc.pages.first.entities
|
71
|
+
# draw_bounds = entities.first.drawing_bounds
|
72
|
+
#
|
73
|
+
# @return [Geom::OrientedBounds2d]
|
74
|
+
#
|
75
|
+
# @version LayOut 2018
|
76
|
+
def drawing_bounds
|
77
|
+
end
|
78
|
+
|
79
|
+
# The {#group} method returns the {Layout::Group} the {Layout::Entity} belongs
|
80
|
+
# to, or +nil+ if it is not in a {Layout::Group}.
|
81
|
+
#
|
82
|
+
# @example
|
83
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
84
|
+
# pages = doc.pages
|
85
|
+
# entities = pages.first.entities
|
86
|
+
# group = entities.first.group
|
87
|
+
#
|
88
|
+
# @return [Layout::Group, nil]
|
89
|
+
#
|
90
|
+
# @version LayOut 2018
|
91
|
+
def group
|
92
|
+
end
|
93
|
+
|
94
|
+
# The {#layer_instance} method returns the {Layout::LayerInstance} that the
|
95
|
+
# {Layout::Entity} is on, or +nil+ if it is not associated with a
|
96
|
+
# {Layout::LayerInstance}.
|
97
|
+
#
|
98
|
+
# @example
|
99
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
100
|
+
# entities = doc.pages.first.entities
|
101
|
+
# entity_layer_instance = entities.first.layer_instance
|
102
|
+
#
|
103
|
+
# @note {Layout::Group}s are never associated with a {Layout::LayerInstance}.
|
104
|
+
#
|
105
|
+
# @return [Layout::LayerInstance, nil]
|
106
|
+
#
|
107
|
+
# @version LayOut 2018
|
108
|
+
def layer_instance
|
109
|
+
end
|
110
|
+
|
111
|
+
# The {#locked=} method sets the {Layout::Entity} as locked or unlocked. When
|
112
|
+
# locked, the {Layout::Entity} cannot be modified directly.
|
113
|
+
#
|
114
|
+
# @example
|
115
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
116
|
+
# entities = doc.pages.first.entities
|
117
|
+
# entities.first.locked = true
|
118
|
+
#
|
119
|
+
# @param [Boolean] is_locked
|
120
|
+
#
|
121
|
+
# @version LayOut 2018
|
122
|
+
def locked=(is_locked)
|
123
|
+
end
|
124
|
+
|
125
|
+
# The {#locked?} method returns whether the {Layout::Entity} is locked or
|
126
|
+
# unlocked.
|
127
|
+
#
|
128
|
+
# @example
|
129
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
130
|
+
# entities = doc.pages.first.entities
|
131
|
+
# is_first_locked = entities.first.locked?
|
132
|
+
#
|
133
|
+
# @return [Boolean]
|
134
|
+
#
|
135
|
+
# @version LayOut 2018
|
136
|
+
def locked?
|
137
|
+
end
|
138
|
+
|
139
|
+
# The {#move_to_group} method moves the {Layout::Entity} into a {Layout::Group}.
|
140
|
+
# If the {Layout::Entity} is already in a {Layout::Group}, it will be removed
|
141
|
+
# from that {Layout::Group} prior to being added to the new one. If this action
|
142
|
+
# results in the old {Layout::Group} containing only one {Layout::Entity}, the
|
143
|
+
# old {Layout::Group} will be collapsed and the remaining {Layout::Entity} will
|
144
|
+
# be moved to the old {Layout::Group}'s parent.
|
145
|
+
#
|
146
|
+
# @example
|
147
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
148
|
+
# entities = doc.pages.first.entities
|
149
|
+
# new_group = Layout::Group.new
|
150
|
+
# entities.first.move_to_group(new_group)
|
151
|
+
#
|
152
|
+
# @param [Layout::Group] group
|
153
|
+
#
|
154
|
+
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
155
|
+
# {Layout::Layer}
|
156
|
+
#
|
157
|
+
# @raise [ArgumentError] if entity and group are not in the same
|
158
|
+
# {Layout::Document}
|
159
|
+
#
|
160
|
+
# @raise [ArgumentError] if entity and group are not on the same {Layout::Page}
|
161
|
+
#
|
162
|
+
# @raise [ArgumentError] if of entity and group one is shared and one is not
|
163
|
+
#
|
164
|
+
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
165
|
+
#
|
166
|
+
# @version LayOut 2018
|
167
|
+
def move_to_group(group)
|
168
|
+
end
|
169
|
+
|
170
|
+
# The {#move_to_layer} method moves the {Layout::Entity} to the given
|
171
|
+
# {Layout::Layer}. If the {Layout::Layer} is non-shared and the
|
172
|
+
# {Layout::Entity} is currently on a shared {Layout::Layer}, an array of
|
173
|
+
# {Layout::Page}s must be provided to move the {Layout::Entity} to. In all other
|
174
|
+
# cases, passing in an array of {Layout::Page}s is not necessary. The
|
175
|
+
# {Layout::Entity} must belong to the same {Layout::Document} as the the
|
176
|
+
# {Layout::Layer} and the {Layout::Page}s.
|
177
|
+
#
|
178
|
+
# @example
|
179
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
180
|
+
# entities = doc.pages.first.entities
|
181
|
+
# layers = doc.layers
|
182
|
+
# entities.last.move_to_layer(layers.first)
|
183
|
+
#
|
184
|
+
# @overload move_to_layer(layer)
|
185
|
+
#
|
186
|
+
# @param [Layout::Layer] layer
|
187
|
+
#
|
188
|
+
# @overload move_to_layer(layer, pages)
|
189
|
+
#
|
190
|
+
# @param [Layout::Layer] layer
|
191
|
+
# @param [Array<Layout::Page>] pages
|
192
|
+
#
|
193
|
+
# @raise [ArgumentError] if layer is shared and a valid array of non-duplicate
|
194
|
+
# {Layout::Page}s is not passed in
|
195
|
+
#
|
196
|
+
# @raise [ArgumentError] if entity, layer, and pages are not all in the same
|
197
|
+
# {Layout::Document}
|
198
|
+
#
|
199
|
+
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
200
|
+
# {Layout::Layer}
|
201
|
+
#
|
202
|
+
# @raise [LockedLayerError] if layer is locked
|
203
|
+
#
|
204
|
+
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
205
|
+
#
|
206
|
+
# @version LayOut 2018
|
207
|
+
def move_to_layer(*args)
|
208
|
+
end
|
209
|
+
|
210
|
+
# The {#on_shared_layer?} method returns whether or not the {Layout::Entity} is
|
211
|
+
# on a shared {Layout::Layer}. This function works for all {Layout::Entity}
|
212
|
+
# types, including {Layout::Group}. {Layout::Group}s do not belong to a
|
213
|
+
# specific {Layout::Layer}, but their children are all on either a shared
|
214
|
+
# or non-shared {Layout::Layer}.
|
215
|
+
#
|
216
|
+
# @example
|
217
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
218
|
+
# entities = doc.pages.first.entities
|
219
|
+
# on_shared_layer = entities.first.on_shared_layer?
|
220
|
+
#
|
221
|
+
# @raise [ArgumentError] if the {Layout::Entity} is not in a {Layout::Document}
|
222
|
+
#
|
223
|
+
# @return [Boolean]
|
224
|
+
#
|
225
|
+
# @version LayOut 2018
|
226
|
+
def on_shared_layer?
|
227
|
+
end
|
228
|
+
|
229
|
+
# The {#page} method returns the {Layout::Page} that the {Layout::Entity}
|
230
|
+
# belongs to, or +nil+ if it is on a shared {Layout::Layer} or not in a
|
231
|
+
# {Layout::Document}.
|
232
|
+
#
|
233
|
+
# @example
|
234
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
235
|
+
# # page will be nil
|
236
|
+
# page = doc.shared_entities.first.page
|
237
|
+
# # page will be the first page of the document
|
238
|
+
# page = doc.pages.first.nonshared_entities.first.page
|
239
|
+
#
|
240
|
+
# @return [Layout::Page, nil]
|
241
|
+
#
|
242
|
+
# @version LayOut 2018
|
243
|
+
def page
|
244
|
+
end
|
245
|
+
|
246
|
+
# The {#style} method returns the {Layout::Style} of the {Layout::Entity}. If
|
247
|
+
# the {Layout::Entity} is a {Layout::Group}, +nil+ will be returned, as they
|
248
|
+
# do not have a {Layout::Style}.
|
249
|
+
#
|
250
|
+
# @example
|
251
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
252
|
+
# entities = doc.entities
|
253
|
+
# style = entities.first.style
|
254
|
+
#
|
255
|
+
# @return [Layout::Style, nil]
|
256
|
+
#
|
257
|
+
# @version LayOut 2018
|
258
|
+
def style
|
259
|
+
end
|
260
|
+
|
261
|
+
# The {#style=} method sets the {Layout::Style} of the {Layout::Entity}.
|
262
|
+
#
|
263
|
+
# @param [Layout::Style] style
|
264
|
+
#
|
265
|
+
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
266
|
+
# {Layout::Layer}
|
267
|
+
#
|
268
|
+
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
269
|
+
#
|
270
|
+
# @version LayOut 2018
|
271
|
+
def style=(style)
|
272
|
+
end
|
273
|
+
|
274
|
+
# The {#transform!} method transforms the {Layout::Entity} with a given
|
275
|
+
# {Geom::Transformation2d}.
|
276
|
+
#
|
277
|
+
# @example
|
278
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
279
|
+
# entities = doc.pages.first.entities
|
280
|
+
# transform = Geom::Transformation2d.new([1.0, 0.0, 0.0, 1.0, 1.0, 1.0])
|
281
|
+
# entity = entities.first.transform!(transform)
|
282
|
+
#
|
283
|
+
# @param [Geom::Transformation2d] transformation
|
284
|
+
#
|
285
|
+
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
286
|
+
# {Layout::Layer}
|
287
|
+
#
|
288
|
+
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
289
|
+
#
|
290
|
+
# @version LayOut 2018
|
291
|
+
def transform!(transformation)
|
292
|
+
end
|
293
|
+
|
294
|
+
# The {#transformation} method returns the explicit {Geom::Transformation2d}.
|
295
|
+
#
|
296
|
+
# @example
|
297
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
298
|
+
# entities = doc.pages.first.entities
|
299
|
+
# transform = entities.first.transformation
|
300
|
+
#
|
301
|
+
# @return [Geom::Transformation2d, nil]
|
302
|
+
#
|
303
|
+
# @version LayOut 2018
|
304
|
+
def transformation
|
305
|
+
end
|
306
|
+
|
307
|
+
# The {#untransformed_bounds} method returns the untransformed bounds of the
|
308
|
+
# {Layout::Entity}. This is the bounds of the {Layout::Entity} before its
|
309
|
+
# explicit {Geom::Transformation2d} is applied.
|
310
|
+
#
|
311
|
+
# @example
|
312
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
313
|
+
# entities = doc.pages.first.entities
|
314
|
+
# bounds = entities.first.untransformed_bounds
|
315
|
+
#
|
316
|
+
# @raise [ArgumentError] if the {Layout::Entity} does not have an explicit
|
317
|
+
# {Geom::Transformation2d}
|
318
|
+
#
|
319
|
+
# @return [Geom::Bounds2d]
|
320
|
+
#
|
321
|
+
# @version LayOut 2018
|
322
|
+
def untransformed_bounds
|
323
|
+
end
|
324
|
+
|
325
|
+
# The {#untransformed_bounds=} method sets the untransformed bounds of the
|
326
|
+
# {Layout::Entity}. This is the bounds of the {Layout::Entity} before its
|
327
|
+
# explicit {Geom::Transformation2d} is applied.
|
328
|
+
#
|
329
|
+
# @example
|
330
|
+
# doc = Layout::Document.open("C:/path/to/document.layout")
|
331
|
+
# entities = doc.pages.first.entities
|
332
|
+
# point1 = Geom::Point2d.new(1, 1)
|
333
|
+
# point2 = Geom::Point2d.new(2, 2)
|
334
|
+
# bounds = Geom::Bounds2d(point1, point2)
|
335
|
+
# entities.first.untransformed_bounds = bounds
|
336
|
+
#
|
337
|
+
# @param [Geom::Bounds2d] bounds
|
338
|
+
#
|
339
|
+
# @raise [ArgumentError] if the {Layout::Entity} does not have an explicit
|
340
|
+
# {Geom::Transformation2d}
|
341
|
+
#
|
342
|
+
# @raise [LockedLayerError] if the {Layout::Entity} is on a locked
|
343
|
+
# {Layout::Layer}
|
344
|
+
#
|
345
|
+
# @raise [LockedEntityError] if the {Layout::Entity} is locked
|
346
|
+
#
|
347
|
+
# @raise [ArgumentError] if the bounds are of zero size
|
348
|
+
#
|
349
|
+
# @version LayOut 2018
|
350
|
+
def untransformed_bounds=(bounds)
|
351
|
+
end
|
352
|
+
|
353
|
+
end
|