sketchup-api-stubs 0.7.9 → 0.7.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -151
  3. data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +509 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -476
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -693
  16. data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
  17. data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -747
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +569 -517
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +356 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +459 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  44. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  45. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  49. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  50. data/lib/sketchup-api-stubs/stubs/Length.rb +278 -278
  51. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -144
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -150
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -281
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -302
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -478
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -659
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +449 -449
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +406 -406
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1242 -1239
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -125
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -937
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -282
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -468
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +406 -406
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -306
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -326
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -422
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -427
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -249
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -414
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +317 -317
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1656 -1652
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -130
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -490
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -116
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -361
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +480 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +373 -361
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +458 -458
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +255 -255
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -217
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -217
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +834 -834
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1329 -1311
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1394 -1377
  144. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  145. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +387 -389
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +505 -494
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -241
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -635
  151. data/lib/sketchup-api-stubs/stubs/UI.rb +728 -683
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +3 -3
@@ -1,353 +1,356 @@
1
- # Copyright:: Copyright 2023 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
1
+ # Copyright:: Copyright 2024 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
+ # @bug In LayOut versions prior to LayOut 2024.0 this method would fail to move
179
+ # entities from non-shared layers.
180
+ #
181
+ # @example
182
+ # doc = Layout::Document.open("C:/path/to/document.layout")
183
+ # entities = doc.pages.first.entities
184
+ # layers = doc.layers
185
+ # entities.last.move_to_layer(layers.first)
186
+ #
187
+ # @overload move_to_layer(layer)
188
+ #
189
+ # @param [Layout::Layer] layer
190
+ #
191
+ # @overload move_to_layer(layer, pages)
192
+ #
193
+ # @param [Layout::Layer] layer
194
+ # @param [Array<Layout::Page>] pages
195
+ #
196
+ # @raise [ArgumentError] if layer is shared and a valid array of non-duplicate
197
+ # {Layout::Page}s is not passed in
198
+ #
199
+ # @raise [ArgumentError] if entity, layer, and pages are not all in the same
200
+ # {Layout::Document}
201
+ #
202
+ # @raise [LockedLayerError] if the {Layout::Entity} is on a locked
203
+ # {Layout::Layer}
204
+ #
205
+ # @raise [LockedLayerError] if layer is locked
206
+ #
207
+ # @raise [LockedEntityError] if the {Layout::Entity} is locked
208
+ #
209
+ # @version LayOut 2018
210
+ def move_to_layer(*args)
211
+ end
212
+
213
+ # The {#on_shared_layer?} method returns whether or not the {Layout::Entity} is
214
+ # on a shared {Layout::Layer}. This function works for all {Layout::Entity}
215
+ # types, including {Layout::Group}. {Layout::Group}s do not belong to a
216
+ # specific {Layout::Layer}, but their children are all on either a shared
217
+ # or non-shared {Layout::Layer}.
218
+ #
219
+ # @example
220
+ # doc = Layout::Document.open("C:/path/to/document.layout")
221
+ # entities = doc.pages.first.entities
222
+ # on_shared_layer = entities.first.on_shared_layer?
223
+ #
224
+ # @raise [ArgumentError] if the {Layout::Entity} is not in a {Layout::Document}
225
+ #
226
+ # @return [Boolean]
227
+ #
228
+ # @version LayOut 2018
229
+ def on_shared_layer?
230
+ end
231
+
232
+ # The {#page} method returns the {Layout::Page} that the {Layout::Entity}
233
+ # belongs to, or +nil+ if it is on a shared {Layout::Layer} or not in a
234
+ # {Layout::Document}.
235
+ #
236
+ # @example
237
+ # doc = Layout::Document.open("C:/path/to/document.layout")
238
+ # # page will be nil
239
+ # page = doc.shared_entities.first.page
240
+ # # page will be the first page of the document
241
+ # page = doc.pages.first.nonshared_entities.first.page
242
+ #
243
+ # @return [Layout::Page, nil]
244
+ #
245
+ # @version LayOut 2018
246
+ def page
247
+ end
248
+
249
+ # The {#style} method returns the {Layout::Style} of the {Layout::Entity}. If
250
+ # the {Layout::Entity} is a {Layout::Group}, +nil+ will be returned, as they
251
+ # do not have a {Layout::Style}.
252
+ #
253
+ # @example
254
+ # doc = Layout::Document.open("C:/path/to/document.layout")
255
+ # entities = doc.entities
256
+ # style = entities.first.style
257
+ #
258
+ # @return [Layout::Style, nil]
259
+ #
260
+ # @version LayOut 2018
261
+ def style
262
+ end
263
+
264
+ # The {#style=} method sets the {Layout::Style} of the {Layout::Entity}.
265
+ #
266
+ # @param [Layout::Style] style
267
+ #
268
+ # @raise [LockedLayerError] if the {Layout::Entity} is on a locked
269
+ # {Layout::Layer}
270
+ #
271
+ # @raise [LockedEntityError] if the {Layout::Entity} is locked
272
+ #
273
+ # @version LayOut 2018
274
+ def style=(style)
275
+ end
276
+
277
+ # The {#transform!} method transforms the {Layout::Entity} with a given
278
+ # {Geom::Transformation2d}.
279
+ #
280
+ # @example
281
+ # doc = Layout::Document.open("C:/path/to/document.layout")
282
+ # entities = doc.pages.first.entities
283
+ # transform = Geom::Transformation2d.new([1.0, 0.0, 0.0, 1.0, 1.0, 1.0])
284
+ # entity = entities.first.transform!(transform)
285
+ #
286
+ # @param [Geom::Transformation2d] transformation
287
+ #
288
+ # @raise [LockedLayerError] if the {Layout::Entity} is on a locked
289
+ # {Layout::Layer}
290
+ #
291
+ # @raise [LockedEntityError] if the {Layout::Entity} is locked
292
+ #
293
+ # @version LayOut 2018
294
+ def transform!(transformation)
295
+ end
296
+
297
+ # The {#transformation} method returns the explicit {Geom::Transformation2d}.
298
+ #
299
+ # @example
300
+ # doc = Layout::Document.open("C:/path/to/document.layout")
301
+ # entities = doc.pages.first.entities
302
+ # transform = entities.first.transformation
303
+ #
304
+ # @return [Geom::Transformation2d, nil]
305
+ #
306
+ # @version LayOut 2018
307
+ def transformation
308
+ end
309
+
310
+ # The {#untransformed_bounds} method returns the untransformed bounds of the
311
+ # {Layout::Entity}. This is the bounds of the {Layout::Entity} before its
312
+ # explicit {Geom::Transformation2d} is applied.
313
+ #
314
+ # @example
315
+ # doc = Layout::Document.open("C:/path/to/document.layout")
316
+ # entities = doc.pages.first.entities
317
+ # bounds = entities.first.untransformed_bounds
318
+ #
319
+ # @raise [ArgumentError] if the {Layout::Entity} does not have an explicit
320
+ # {Geom::Transformation2d}
321
+ #
322
+ # @return [Geom::Bounds2d]
323
+ #
324
+ # @version LayOut 2018
325
+ def untransformed_bounds
326
+ end
327
+
328
+ # The {#untransformed_bounds=} method sets the untransformed bounds of the
329
+ # {Layout::Entity}. This is the bounds of the {Layout::Entity} before its
330
+ # explicit {Geom::Transformation2d} is applied.
331
+ #
332
+ # @example
333
+ # doc = Layout::Document.open("C:/path/to/document.layout")
334
+ # entities = doc.pages.first.entities
335
+ # point1 = Geom::Point2d.new(1, 1)
336
+ # point2 = Geom::Point2d.new(2, 2)
337
+ # bounds = Geom::Bounds2d(point1, point2)
338
+ # entities.first.untransformed_bounds = bounds
339
+ #
340
+ # @param [Geom::Bounds2d] bounds
341
+ #
342
+ # @raise [ArgumentError] if the {Layout::Entity} does not have an explicit
343
+ # {Geom::Transformation2d}
344
+ #
345
+ # @raise [LockedLayerError] if the {Layout::Entity} is on a locked
346
+ # {Layout::Layer}
347
+ #
348
+ # @raise [LockedEntityError] if the {Layout::Entity} is locked
349
+ #
350
+ # @raise [ArgumentError] if the bounds are of zero size
351
+ #
352
+ # @version LayOut 2018
353
+ def untransformed_bounds=(bounds)
354
+ end
355
+
356
+ end