sketchup-api-stubs 0.7.7 → 0.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -147
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → 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 -478
  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 -691
  16. data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -351
  17. data/lib/sketchup-api-stubs/stubs/{languagehandler.rb → LanguageHandler.rb} +93 -92
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -573
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -179
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +517 -515
  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 +353 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -349
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +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 +387 -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 -0
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -694
  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 → Length.rb} +278 -278
  51. data/lib/sketchup-api-stubs/stubs/{numeric.rb → 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 -157
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -152
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -286
  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 -122
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -577
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -594
  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 -425
  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 -396
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -502
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1239 -1126
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -0
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -126
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -917
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -104
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -292
  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 -405
  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 -327
  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 -112
  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 -318
  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 +1652 -1654
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -131
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -284
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -0
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -0
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -363
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +361 -364
  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 -459
  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 -257
  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 -835
  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 -71
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1311 -1307
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1377 -1353
  144. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  145. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -317
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +494 -478
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -240
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
  151. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -672
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -311
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +20 -16
@@ -1,353 +1,353 @@
1
- # Copyright:: Copyright 2021 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 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