sketchup-api-stubs 0.6.1 → 0.7.4

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 (149) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -0
  3. data/lib/sketchup-api-stubs.rb +1 -1
  4. data/lib/sketchup-api-stubs/sketchup.rb +145 -145
  5. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +318 -318
  6. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  7. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  8. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -401
  10. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  11. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +492 -492
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -478
  13. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  14. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -523
  16. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +691 -691
  17. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +573 -569
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +411 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +174 -186
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +514 -455
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +143 -155
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -359
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -349
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -123
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -86
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +371 -371
  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 +220 -232
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -563
  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 +204 -216
  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/SketchUpModel.rb +694 -547
  43. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  44. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  48. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +140 -140
  49. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +157 -157
  50. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -281
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +328 -328
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +577 -577
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +281 -281
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +562 -554
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +194 -194
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +329 -329
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +72 -72
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +102 -102
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +312 -312
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +38 -38
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +390 -390
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +508 -508
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1119 -1097
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +125 -125
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +544 -537
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +59 -59
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -125
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +750 -750
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +697 -697
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +285 -285
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +409 -409
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +226 -226
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +190 -190
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +393 -393
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +82 -82
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +303 -303
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +285 -262
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +244 -231
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +136 -136
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -123
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +416 -416
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +311 -311
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +141 -141
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +95 -95
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1638 -1483
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +356 -356
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +132 -132
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -282
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +770 -650
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +353 -353
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +76 -76
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +456 -456
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -356
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +44 -44
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +454 -454
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +257 -257
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +57 -57
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +211 -211
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +225 -225
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +829 -829
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +154 -154
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +61 -61
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1301 -995
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +43 -43
  134. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +310 -310
  135. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +356 -356
  136. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +229 -229
  137. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  138. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -633
  139. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -303
  140. data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
  141. data/lib/sketchup-api-stubs/stubs/geom.rb +348 -233
  142. data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
  143. data/lib/sketchup-api-stubs/stubs/length.rb +278 -262
  144. data/lib/sketchup-api-stubs/stubs/numeric.rb +249 -249
  145. data/lib/sketchup-api-stubs/stubs/sketchup.rb +1310 -1310
  146. data/lib/sketchup-api-stubs/stubs/sketchupextension.rb +353 -353
  147. data/lib/sketchup-api-stubs/stubs/string.rb +24 -24
  148. data/lib/sketchup-api-stubs/stubs/ui.rb +667 -660
  149. metadata +2 -16
@@ -1,29 +1,29 @@
1
- # Copyright:: Copyright 2019 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # A simple elliptical shape entity.
5
- #
6
- # @version LayOut 2018
7
- class Layout::Ellipse < Layout::Entity
8
-
9
- # Instance Methods
10
-
11
- # The {#initialize} method creates a new {Layout::Ellipse}.
12
- #
13
- # @example
14
- # upper_left = Geom::Point2d.new(1, 1)
15
- # lower_right = Geom::Point2d.new(2, 2)
16
- # bounds = Geom::Bounds2d.new(upper_left, lower_right)
17
- # ellipse = Layout::Ellipse.new(bounds)
18
- #
19
- # @param [Geom::Bounds2d] bounds
20
- #
21
- # @raise ArgumentError if bounds is zero size
22
- #
23
- # @return [Layout::Ellipse]
24
- #
25
- # @version LayOut 2018
26
- def initialize(bounds)
27
- end
28
-
29
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # A simple elliptical shape entity.
5
+ #
6
+ # @version LayOut 2018
7
+ class Layout::Ellipse < Layout::Entity
8
+
9
+ # Instance Methods
10
+
11
+ # The {#initialize} method creates a new {Layout::Ellipse}.
12
+ #
13
+ # @example
14
+ # upper_left = Geom::Point2d.new(1, 1)
15
+ # lower_right = Geom::Point2d.new(2, 2)
16
+ # bounds = Geom::Bounds2d.new(upper_left, lower_right)
17
+ # ellipse = Layout::Ellipse.new(bounds)
18
+ #
19
+ # @param [Geom::Bounds2d] bounds
20
+ #
21
+ # @raise ArgumentError if bounds is zero size
22
+ #
23
+ # @return [Layout::Ellipse]
24
+ #
25
+ # @version LayOut 2018
26
+ def initialize(bounds)
27
+ end
28
+
29
+ end
@@ -1,155 +1,143 @@
1
- # Copyright:: Copyright 2019 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The Entities class is a container class for {Layout::Entity}s. A
5
- # {Layout::Entities} object is different from a SketchUp::Entities object in
6
- # that it is read-only. Adding or removing {Layout::Entity}s from a
7
- # {Layout::Document} happens with the {Layout::Document#add_entity} and
8
- # {Layout::Document#remove_entity} methods.
9
- #
10
- # The {Layout::Entities} from {Layout::AngularDimension#entities},
11
- # {Layout::Label#entities}, {Layout::LinearDimension#entities}, or
12
- # {Layout::Table#entities} contains the {Layout::Entity}s that represent the
13
- # {Layout::Entity} in its exploded form.
14
- #
15
- # The {Layout::Entities} from {Layout::Group#entities} contains all the
16
- # {Layout::Entity}s that belong to the {Layout::Group}.
17
- #
18
- # The {Layout::Entities} from {Layout::Page#entities} contains all of the
19
- # {Layout::Entity}s on both shared and non-shared {Layout::Layer}s. This class
20
- # is used to iterate through the {Layout::Entity}s in draw order or pick order
21
- # (reverse draw order) using the {#each} and {#reverse_each} methods.
22
- #
23
- # The {Layout::Entities} from {Layout::Document#shared_entities} contains all
24
- # of the {Layout::Entity}s that belong on all shared {Layout::Layer}s.
25
- #
26
- # The {Layout::Entities} from {Layout::Page#nonshared_entities} contains all of
27
- # the {Layout::Entity}s that belong to that {Layout::Page}.
28
- #
29
- # The {Layout::Entities} from {Layout::LayerInstance#entities} contains all of
30
- # the {Layout::Entity}s that belong on that {Layout::LayerInstance}.
31
- #
32
- # @example
33
- # # Grab a handle to a pages entities
34
- # doc = Layout::Document.open("C:/path/to/document.layout")
35
- # entities = doc.pages.first.entities
36
- #
37
- # # From here, we can iterate over the entities in draw order or pick order
38
- # entities.each { |entity|
39
- # puts entity
40
- # }
41
- # entities.reverse_each(skip_locked: true) { |entity|
42
- # puts entity
43
- # }
44
- #
45
- # @version LayOut 2018
46
- class Layout::Entities
47
-
48
- # Includes
49
-
50
- include Enumerable
51
-
52
- # Instance Methods
53
-
54
- # The {#[]} method returns the {Layout::Entity} at the given index. This method
55
- # is not valid for use when the {Layout::Entities} object came from a
56
- # {Layout::Page}.
57
- #
58
- # @example
59
- # table = Layout::Table.new([1, 1, 4, 4], 4, 4)
60
- # entities = table.entities
61
- # entity = entities[10]
62
- #
63
- # @param [Integer] index
64
- #
65
- # @raise [ArgumentError] if this came from a {Layout::Page}
66
- #
67
- # @return [Layout::Entity]
68
- #
69
- # @version LayOut 2018
70
- def [](index)
71
- end
72
-
73
- # The {#each} method iterates through all of the {Layout::Entity}s. When
74
- # iterating over a {Layout::LayerInstance}'s {Layout::Entities}, it is not
75
- # necessary to provide a flags Hash. When iterating over a {Layout::Page}'s
76
- # {Layout::Entities}, the flags Hash is optional; providing no Hash will
77
- # result in iterating over all {Layout::Entity}s, including those on hidden or
78
- # locked {Layout::Layer}s. Valid symbols for the Hash are +:skip_hidden+ and
79
- # +:skip_locked+.
80
- #
81
- # @example
82
- # doc = Layout::Document.open("C:/path/to/document.layout")
83
- # flags = { :skip_hidden => true }
84
- # entities = doc.pages.first.entities
85
- # entities.each(flags) { |entity|
86
- # puts entity
87
- # }
88
- #
89
- # @param [Hash{Symbol => Boolean}] flags
90
- # A hash that allows skipping of
91
- # {Layout::Entity}s on hidden or locked {Layout::Layers}
92
- #
93
- # @version LayOut 2018
94
- #
95
- # @yieldparam [Layout::Entity] entity
96
- def each(flags = {})
97
- end
98
-
99
- # The {#length} method returns the number of {Layout::Entity}s.
100
- #
101
- # @example
102
- # doc = Layout::Document.open("C:/path/to/document.layout")
103
- # entities = doc.shared_entities
104
- # num_entities = entities.length
105
- #
106
- # @return [Integer]
107
- #
108
- # @version LayOut 2018
109
- def length
110
- end
111
-
112
- # The {#reverse_each} method iterates through all of the {Layout::Entity}s in
113
- # reverse order. When iterating over a {Layout::LayerInstance}'s
114
- # {Layout::Entities}, it is not necessary to provide a flags Hash. When
115
- # iterating over a {Layout::Page}'s {Layout::Entities}, the flags Hash is
116
- # optional; providing no Hash will result in iterating over all
117
- # {Layout::Entity}s, including those on hidden or locked {Layout::Layer}s.
118
- # Valid symbols for the Hash are +:skip_hidden+ and +:skip_locked+.
119
- #
120
- # @example
121
- # doc = Layout::Document.open("C:/path/to/document.layout")
122
- # flags = { :skip_hidden => true, :skip_locked => true }
123
- # entities = doc.pages.first.entities
124
- # entities.reverse_each(flags) { |entity|
125
- # puts entity
126
- # }
127
- #
128
- # @overload reverse_each
129
- #
130
- # @yieldparam [Layout::Entity] entity
131
- #
132
- # @overload reverse_each(flags)
133
- #
134
- # @param [Hash{Symbol => Boolean}] flags A hash that allows skipping of
135
- # {Layout::Entity}s on hidden or locked {Layout::Layers}.
136
- # @yieldparam [Layout::Entity] entity
137
- #
138
- # @version LayOut 2018
139
- def reverse_each(*args)
140
- end
141
-
142
- # The {#length} method returns the number of {Layout::Entity}s.
143
- #
144
- # @example
145
- # doc = Layout::Document.open("C:/path/to/document.layout")
146
- # entities = doc.shared_entities
147
- # num_entities = entities.length
148
- #
149
- # @return [Integer]
150
- #
151
- # @version LayOut 2018
152
- def size
153
- end
154
-
155
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The Entities class is a container class for {Layout::Entity}s. A
5
+ # {Layout::Entities} object is different from a SketchUp::Entities object in
6
+ # that it is read-only. Adding or removing {Layout::Entity}s from a
7
+ # {Layout::Document} happens with the {Layout::Document#add_entity} and
8
+ # {Layout::Document#remove_entity} methods.
9
+ #
10
+ # The {Layout::Entities} from {Layout::AngularDimension#entities},
11
+ # {Layout::Label#entities}, {Layout::LinearDimension#entities}, or
12
+ # {Layout::Table#entities} contains the {Layout::Entity}s that represent the
13
+ # {Layout::Entity} in its exploded form.
14
+ #
15
+ # The {Layout::Entities} from {Layout::Group#entities} contains all the
16
+ # {Layout::Entity}s that belong to the {Layout::Group}.
17
+ #
18
+ # The {Layout::Entities} from {Layout::Page#entities} contains all of the
19
+ # {Layout::Entity}s on both shared and non-shared {Layout::Layer}s. This class
20
+ # is used to iterate through the {Layout::Entity}s in draw order or pick order
21
+ # (reverse draw order) using the {#each} and {#reverse_each} methods.
22
+ #
23
+ # The {Layout::Entities} from {Layout::Document#shared_entities} contains all
24
+ # of the {Layout::Entity}s that belong on all shared {Layout::Layer}s.
25
+ #
26
+ # The {Layout::Entities} from {Layout::Page#nonshared_entities} contains all of
27
+ # the {Layout::Entity}s that belong to that {Layout::Page}.
28
+ #
29
+ # The {Layout::Entities} from {Layout::LayerInstance#entities} contains all of
30
+ # the {Layout::Entity}s that belong on that {Layout::LayerInstance}.
31
+ #
32
+ # @example
33
+ # # Grab a handle to a pages entities
34
+ # doc = Layout::Document.open("C:/path/to/document.layout")
35
+ # entities = doc.pages.first.entities
36
+ #
37
+ # # From here, we can iterate over the entities in draw order or pick order
38
+ # entities.each { |entity|
39
+ # puts entity
40
+ # }
41
+ # entities.reverse_each(skip_locked: true) { |entity|
42
+ # puts entity
43
+ # }
44
+ #
45
+ # @version LayOut 2018
46
+ class Layout::Entities
47
+
48
+ # Includes
49
+
50
+ include Enumerable
51
+
52
+ # Instance Methods
53
+
54
+ # The {#[]} method returns the {Layout::Entity} at the given index. This method
55
+ # is not valid for use when the {Layout::Entities} object came from a
56
+ # {Layout::Page}.
57
+ #
58
+ # @example
59
+ # table = Layout::Table.new([1, 1, 4, 4], 4, 4)
60
+ # entities = table.entities
61
+ # entity = entities[10]
62
+ #
63
+ # @param [Integer] index
64
+ #
65
+ # @raise [ArgumentError] if this came from a {Layout::Page}
66
+ #
67
+ # @return [Layout::Entity]
68
+ #
69
+ # @version LayOut 2018
70
+ def [](index)
71
+ end
72
+
73
+ # The {#each} method iterates through all of the {Layout::Entity}s. When
74
+ # iterating over a {Layout::LayerInstance}'s {Layout::Entities}, it is not
75
+ # necessary to provide a flags Hash. When iterating over a {Layout::Page}'s
76
+ # {Layout::Entities}, the flags Hash is optional; providing no Hash will
77
+ # result in iterating over all {Layout::Entity}s, including those on hidden or
78
+ # locked {Layout::Layer}s. Valid symbols for the Hash are +:skip_hidden+ and
79
+ # +:skip_locked+.
80
+ #
81
+ # @example
82
+ # doc = Layout::Document.open("C:/path/to/document.layout")
83
+ # flags = { :skip_hidden => true }
84
+ # entities = doc.pages.first.entities
85
+ # entities.each(flags) { |entity|
86
+ # puts entity
87
+ # }
88
+ #
89
+ # @param [Hash{Symbol => Boolean}] flags
90
+ # A hash that allows skipping of
91
+ # {Layout::Entity}s on hidden or locked {Layout::Layers}
92
+ #
93
+ # @version LayOut 2018
94
+ #
95
+ # @yieldparam [Layout::Entity] entity
96
+ def each(flags = {})
97
+ end
98
+
99
+ # The {#length} method returns the number of {Layout::Entity}s.
100
+ #
101
+ # @example
102
+ # doc = Layout::Document.open("C:/path/to/document.layout")
103
+ # entities = doc.shared_entities
104
+ # num_entities = entities.length
105
+ #
106
+ # @return [Integer]
107
+ #
108
+ # @version LayOut 2018
109
+ def length
110
+ end
111
+ alias_method :size, :length
112
+
113
+ # The {#reverse_each} method iterates through all of the {Layout::Entity}s in
114
+ # reverse order. When iterating over a {Layout::LayerInstance}'s
115
+ # {Layout::Entities}, it is not necessary to provide a flags Hash. When
116
+ # iterating over a {Layout::Page}'s {Layout::Entities}, the flags Hash is
117
+ # optional; providing no Hash will result in iterating over all
118
+ # {Layout::Entity}s, including those on hidden or locked {Layout::Layer}s.
119
+ # Valid symbols for the Hash are +:skip_hidden+ and +:skip_locked+.
120
+ #
121
+ # @example
122
+ # doc = Layout::Document.open("C:/path/to/document.layout")
123
+ # flags = { :skip_hidden => true, :skip_locked => true }
124
+ # entities = doc.pages.first.entities
125
+ # entities.reverse_each(flags) { |entity|
126
+ # puts entity
127
+ # }
128
+ #
129
+ # @overload reverse_each
130
+ #
131
+ # @yieldparam [Layout::Entity] entity
132
+ #
133
+ # @overload reverse_each(flags)
134
+ #
135
+ # @param [Hash{Symbol => Boolean}] flags A hash that allows skipping of
136
+ # {Layout::Entity}s on hidden or locked {Layout::Layers}.
137
+ # @yieldparam [Layout::Entity] entity
138
+ #
139
+ # @version LayOut 2018
140
+ def reverse_each(*args)
141
+ end
142
+
143
+ end
@@ -1,359 +1,353 @@
1
- # Copyright:: Copyright 2019 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.entities
11
- # # Count how many of the entites are a rectangle
12
- # rectangle_count = 0
13
- #
14
- # # Look at all of the entities in the array.
15
- # entities.each { |entity|
16
- # if entity.is_a?(Layout::Rectangle)
17
- # rectangle_count = rectangle_count++
18
- # end
19
- # }
20
- #
21
- # @version LayOut 2018
22
- class Layout::Entity
23
-
24
- # Instance Methods
25
-
26
- # The {#==} method checks to see if the two {Layout::Entity}s are equal. This
27
- # checks whether the Ruby Objects are pointing to the same internal object.
28
- #
29
- # @example
30
- # doc = Layout::Document.open("C:/path/to/document.layout")
31
- # page_entities = doc.pages.first.entities
32
- # layer_entities = doc.layers.first.layer_instance(page).entities
33
- # page_entities.first == layer_entities.first
34
- #
35
- # @param [Layout::Entity] other
36
- #
37
- # @return [Boolean]
38
- #
39
- # @version LayOut 2018
40
- def ==(other)
41
- end
42
-
43
- # The {#bounds} method returns the 2D rectangular bounds of the {Layout::Entity}.
44
- #
45
- # @example
46
- # doc = Layout::Document.open("C:/path/to/document.layout")
47
- # entities = doc.pages.first.entities
48
- # bounds = entities.first.bounds
49
- #
50
- # @return [Geom::Bounds2d]
51
- #
52
- # @version LayOut 2018
53
- def bounds
54
- end
55
-
56
- # The {#document} method returns the {Layout::Document} that the
57
- # {Layout::Entity} belongs to, or +nil+ if it is not in a {Layout::Document}.
58
- #
59
- # @example
60
- # doc = Layout::Document.open("C:/path/to/document.layout")
61
- # entities = doc.shared_entities
62
- # # entity_doc should be the same document as doc
63
- # entity_doc = entities.first.document
64
- #
65
- # @return [Layout::Document, nil]
66
- #
67
- # @version LayOut 2018
68
- def document
69
- end
70
-
71
- # The {#drawing_bounds} method returns the 2D rectangular drawing bounds of the
72
- # {Layout::Entity}.
73
- #
74
- # @example
75
- # doc = Layout::Document.open("C:/path/to/document.layout")
76
- # entities = doc.pages.first.entities
77
- # draw_bounds = entities.first.drawing_bounds
78
- #
79
- # @return [Geom::OrientedBounds2d]
80
- #
81
- # @version LayOut 2018
82
- def drawing_bounds
83
- end
84
-
85
- # The {#group} method returns the {Layout::Group} the {Layout::Entity} belongs
86
- # to, or +nil+ if it is not in a {Layout::Group}.
87
- #
88
- # @example
89
- # doc = Layout::Document.open("C:/path/to/document.layout")
90
- # pages = doc.pages
91
- # entities = pages.first.entities
92
- # group = entities.first.group
93
- #
94
- # @return [Layout::Group, nil]
95
- #
96
- # @version LayOut 2018
97
- def group
98
- end
99
-
100
- # The {#layer_instance} method returns the {Layout::LayerInstance} that the
101
- # {Layout::Entity} is on, or +nil+ if it is not associated with a
102
- # {Layout::LayerInstance}.
103
- #
104
- # @example
105
- # doc = Layout::Document.open("C:/path/to/document.layout")
106
- # entities = doc.pages.first.entities
107
- # entity_layer_instance = entities.first.layer_instance
108
- #
109
- # @note {Layout::Group}s are never associated with a {Layout::LayerInstance}.
110
- #
111
- # @return [Layout::LayerInstance, nil]
112
- #
113
- # @version LayOut 2018
114
- def layer_instance
115
- end
116
-
117
- # The {#locked=} method sets the {Layout::Entity} as locked or unlocked. When
118
- # locked, the {Layout::Entity} cannot be modified directly.
119
- #
120
- # @example
121
- # doc = Layout::Document.open("C:/path/to/document.layout")
122
- # entities = doc.pages.first.entities
123
- # entities.first.locked = true
124
- #
125
- # @param [Boolean] is_locked
126
- #
127
- # @version LayOut 2018
128
- def locked=(is_locked)
129
- end
130
-
131
- # The {#locked?} method returns whether the {Layout::Entity} is locked or
132
- # unlocked.
133
- #
134
- # @example
135
- # doc = Layout::Document.open("C:/path/to/document.layout")
136
- # entities = doc.pages.first.entities
137
- # is_first_locked = entities.first.locked?
138
- #
139
- # @return [Boolean]
140
- #
141
- # @version LayOut 2018
142
- def locked?
143
- end
144
-
145
- # The {#move_to_group} method moves the {Layout::Entity} into a {Layout::Group}.
146
- # If the {Layout::Entity} is already in a {Layout::Group}, it will be removed
147
- # from that {Layout::Group} prior to being added to the new one. If this action
148
- # results in the old {Layout::Group} containing only one {Layout::Entity}, the
149
- # old {Layout::Group} will be collapsed and the remaining {Layout::Entity} will
150
- # be moved to the old {Layout::Group}'s parent.
151
- #
152
- # @example
153
- # doc = Layout::Document.open("C:/path/to/document.layout")
154
- # entities = doc.pages.first.entities
155
- # new_group = Layout::Group.new
156
- # entities.first.move_to_group(new_group)
157
- #
158
- # @param [Layout::Group] group
159
- #
160
- # @raise [LockedLayerError] if the {Layout::Entity} is on a locked
161
- # {Layout::Layer}
162
- #
163
- # @raise [ArgumentError] if entity and group are not in the same
164
- # {Layout::Document}
165
- #
166
- # @raise [ArgumentError] if entity and group are not on the same {Layout::Page}
167
- #
168
- # @raise [ArgumentError] if of entity and group one is shared and one is not
169
- #
170
- # @raise [LockedEntityError] if the {Layout::Entity} is locked
171
- #
172
- # @version LayOut 2018
173
- def move_to_group(group)
174
- end
175
-
176
- # The {#move_to_layer} method moves the {Layout::Entity} to the given
177
- # {Layout::Layer}. If the {Layout::Layer} is non-shared and the
178
- # {Layout::Entity} is currently on a shared {Layout::Layer}, an array of
179
- # {Layout::Page}s must be provided to move the {Layout::Entity} to. In all other
180
- # cases, passing in an array of {Layout::Page}s is not necessary. The
181
- # {Layout::Entity} must belong to the same {Layout::Document} as the the
182
- # {Layout::Layer} and the {Layout::Page}s.
183
- #
184
- # @example
185
- # doc = Layout::Document.open("C:/path/to/document.layout")
186
- # entities = doc.pages.first.entities
187
- # layers = doc.layers
188
- # entities.last.move_to_layer(layers.first)
189
- #
190
- # @overload move_to_layer(layer)
191
- #
192
- # @param [Layout::Layer] layer
193
- #
194
- # @overload move_to_layer(layer, pages)
195
- #
196
- # @param [Layout::Layer] layer
197
- # @param [Array<Layout::Page>] pages
198
- #
199
- # @raise [ArgumentError] if layer is shared and a valid array of non-duplicate
200
- # {Layout::Page}s is not passed in
201
- #
202
- # @raise [ArgumentError] if entity, layer, and pages are not all in the same
203
- # {Layout::Document}
204
- #
205
- # @raise [LockedLayerError] if the {Layout::Entity} is on a locked
206
- # {Layout::Layer}
207
- #
208
- # @raise [LockedLayerError] if layer is locked
209
- #
210
- # @raise [LockedEntityError] if the {Layout::Entity} is locked
211
- #
212
- # @version LayOut 2018
213
- def move_to_layer(*args)
214
- end
215
-
216
- # The {#on_shared_layer?} method returns whether or not the {Layout::Entity} is
217
- # on a shared {Layout::Layer}. This function works for all {Layout::Entity}
218
- # types, including {Layout::Group}. {Layout::Group}s do not belong to a
219
- # specific {Layout::Layer}, but their children are all on either a shared
220
- # or non-shared {Layout::Layer}.
221
- #
222
- # @example
223
- # doc = Layout::Document.open("C:/path/to/document.layout")
224
- # entities = doc.pages.first.entities
225
- # on_shared_layer = entities.first.on_shared_layer?
226
- #
227
- # @raise [ArgumentError] if the {Layout::Entity} is not in a {Layout::Document}
228
- #
229
- # @return [Boolean]
230
- #
231
- # @version LayOut 2018
232
- def on_shared_layer?
233
- end
234
-
235
- # The {#page} method returns the {Layout::Page} that the {Layout::Entity}
236
- # belongs to, or +nil+ if it is on a shared {Layout::Layer} or not in a
237
- # {Layout::Document}.
238
- #
239
- # @example
240
- # doc = Layout::Document.open("C:/path/to/document.layout")
241
- # # page will be nil
242
- # page = doc.shared_entities.first.page
243
- # # page will be the first page of the document
244
- # page = doc.pages.first.nonshared_entities.first.page
245
- #
246
- # @return [Layout::Page, nil]
247
- #
248
- # @version LayOut 2018
249
- def page
250
- end
251
-
252
- # The {#style} method returns the {Layout::Style} of the {Layout::Entity}. If
253
- # the {Layout::Entity} is a {Layout::Group}, +nil+ will be returned, as they
254
- # do not have a {Layout::Style}.
255
- #
256
- # @example
257
- # doc = Layout::Document.open("C:/path/to/document.layout")
258
- # entities = doc.entities
259
- # style = entities.first.style
260
- #
261
- # @return [Layout::Style, nil]
262
- #
263
- # @version LayOut 2018
264
- def style
265
- end
266
-
267
- # The {#style=} method sets the {Layout::Style} of the {Layout::Entity}.
268
- #
269
- # @param [Layout::Style] style
270
- #
271
- # @raise [LockedLayerError] if the {Layout::Entity} is on a locked
272
- # {Layout::Layer}
273
- #
274
- # @raise [LockedEntityError] if the {Layout::Entity} is locked
275
- #
276
- # @version LayOut 2018
277
- def style=(style)
278
- end
279
-
280
- # The {#transform!} method transforms the {Layout::Entity} with a given
281
- # {Geom::Transformation2d}.
282
- #
283
- # @example
284
- # doc = Layout::Document.open("C:/path/to/document.layout")
285
- # entities = doc.pages.first.entities
286
- # transform = Geom::Transformation2d.new([1.0, 0.0, 0.0, 1.0, 1.0, 1.0])
287
- # entity = entities.first.transform!(transform)
288
- #
289
- # @param [Geom::Transformation2d] transformation
290
- #
291
- # @raise [LockedLayerError] if the {Layout::Entity} is on a locked
292
- # {Layout::Layer}
293
- #
294
- # @raise [LockedEntityError] if the {Layout::Entity} is locked
295
- #
296
- # @version LayOut 2018
297
- def transform!(transformation)
298
- end
299
-
300
- # The {#transformation} method returns the explicit {Geom::Transformation2d}.
301
- #
302
- # @example
303
- # doc = Layout::Document.open("C:/path/to/document.layout")
304
- # entities = doc.pages.first.entities
305
- # transform = entities.first.transformation
306
- #
307
- # @return [Geom::Transformation2d, nil]
308
- #
309
- # @version LayOut 2018
310
- def transformation
311
- end
312
-
313
- # The {#untransformed_bounds} method returns the untransformed bounds of the
314
- # {Layout::Entity}. This is the bounds of the {Layout::Entity} before its
315
- # explicit {Geom::Transformation2d} is applied.
316
- #
317
- # @example
318
- # doc = Layout::Document.open("C:/path/to/document.layout")
319
- # entities = doc.pages.first.entities
320
- # bounds = entities.first.untransformed_bounds
321
- #
322
- # @raise [ArgumentError] if the {Layout::Entity} does not have an explicit
323
- # {Geom::Transformation2d}
324
- #
325
- # @return [Geom::Bounds2d]
326
- #
327
- # @version LayOut 2018
328
- def untransformed_bounds
329
- end
330
-
331
- # The {#untransformed_bounds=} method sets the untransformed bounds of the
332
- # {Layout::Entity}. This is the bounds of the {Layout::Entity} before its
333
- # explicit {Geom::Transformation2d} is applied.
334
- #
335
- # @example
336
- # doc = Layout::Document.open("C:/path/to/document.layout")
337
- # entities = doc.pages.first.entities
338
- # point1 = Geom::Point2d.new(1, 1)
339
- # point2 = Geom::Point2d.new(2, 2)
340
- # bounds = Geom::Bounds2d(point1, point2)
341
- # entities.first.untransformed_bounds = bounds
342
- #
343
- # @param [Geom::Bounds2d] bounds
344
- #
345
- # @raise [ArgumentError] if the {Layout::Entity} does not have an explicit
346
- # {Geom::Transformation2d}
347
- #
348
- # @raise [LockedLayerError] if the {Layout::Entity} is on a locked
349
- # {Layout::Layer}
350
- #
351
- # @raise [LockedEntityError] if the {Layout::Entity} is locked
352
- #
353
- # @raise [ArgumentError] if the bounds are of zero size
354
- #
355
- # @version LayOut 2018
356
- def untransformed_bounds=(bounds)
357
- end
358
-
359
- end
1
+ # Copyright:: Copyright 2020 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