sketchup-api-stubs 0.7.4 → 0.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +148 -145
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → Array.rb} +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -318
  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 +523 -492
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -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 -348
  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 +698 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -174
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +516 -514
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
  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 -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 +225 -220
  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 -204
  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 +692 -694
  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/Layout.rb +25 -25
  49. data/lib/sketchup-api-stubs/stubs/{length.rb → Length.rb} +278 -278
  50. data/lib/sketchup-api-stubs/stubs/{numeric.rb → Numeric.rb} +249 -249
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -157
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +619 -562
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +426 -329
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1205 -1119
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +272 -0
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -750
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -697
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +292 -285
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -409
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +407 -393
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -285
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +477 -456
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +260 -257
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +837 -829
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -61
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1317 -1301
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
  140. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1360 -1310
  141. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  142. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  143. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -310
  144. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +496 -356
  145. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -229
  146. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  147. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
  148. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -667
  149. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
  150. data/lib/sketchup-api-stubs.rb +1 -1
  151. metadata +15 -12
@@ -1,697 +1,750 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # A Group class contains methods for manipulating groups of entities.
5
- #
6
- # Groups in SketchUp are very similar to Components, except that there is no
7
- # instancing of groups. That means that you always will have one and only one
8
- # of each of your groups. (In the actual implementation, SketchUp keeps track
9
- # of groups as a special kind of Component that combines properties of
10
- # definitions and instances, which is why you will see deprecated methods
11
- # like Group.make_unique, and the class of observer you attach to Groups are
12
- # ComponentInstance observers.)
13
- #
14
- # @version SketchUp 6.0
15
- class Sketchup::Group < Sketchup::Drawingelement
16
-
17
- # Instance Methods
18
-
19
- # The add_observer method is used to add a ComponentInstance observer to the
20
- # group.
21
- #
22
- # @example
23
- # # Add a group to the model.
24
- # group = Sketchup.active_model.entities.add_group
25
- # group.entities.add_line([0,0,0],[100,100,100])
26
- # status = group.add_observer observer
27
- #
28
- # @param [Object] observer
29
- # An observer.
30
- #
31
- # @return [Boolean] true if successful, false if unsuccessful.
32
- #
33
- # @version SketchUp 6.0
34
- def add_observer(observer)
35
- end
36
-
37
- # The copy method is used to create a new Group object that is a copy of the
38
- # group.
39
- #
40
- # @example
41
- # # Add a group to the model.
42
- # group = Sketchup.active_model.entities.add_group
43
- # group.entities.add_line([0,0,0],[100,100,100])
44
- # group2 = group.copy
45
- #
46
- # @return [Sketchup::Group] a new Group object
47
- #
48
- # @version SketchUp 6.0
49
- def copy
50
- end
51
-
52
- # The definition method is used to retrieve the component definition for this
53
- # group.
54
- #
55
- # @example
56
- # group = Sketchup.active_model.entities.add_group
57
- # definition = group.definition
58
- #
59
- # @return [Sketchup::ComponentDefinition] a ComponentDefinition object if
60
- # successful
61
- #
62
- # @version SketchUp 2015
63
- def definition
64
- end
65
-
66
- # The description method is used to retrieve the description for the group.
67
- #
68
- # @example
69
- # depth = 100
70
- # width = 100
71
- # model = Sketchup.active_model
72
- # entities = model.active_entities
73
- # pts = []
74
- # pts[0] = [0, 0, 0]
75
- # pts[1] = [width, 0, 0]
76
- # pts[2] = [width, depth, 0]
77
- # pts[3] = [0, depth, 0]
78
- # # Add the group to the entities in the model
79
- # group = entities.add_group
80
- #
81
- # # Get the entities within the group
82
- # entities2 = group.entities
83
- #
84
- # # Add a face to within the group
85
- # face = entities2.add_face pts
86
- # group.description = "This is a Group with a 2d Face"
87
- # description = group.description
88
- #
89
- # @return [String] a string description if successful
90
- #
91
- # @version SketchUp 6.0
92
- def description
93
- end
94
-
95
- # The description= method is used to set the description for the group.
96
- #
97
- # @example
98
- # depth = 100
99
- # width = 100
100
- # model = Sketchup.active_model
101
- # entities = model.active_entities
102
- # pts = []
103
- # pts[0] = [0, 0, 0]
104
- # pts[1] = [width, 0, 0]
105
- # pts[2] = [width, depth, 0]
106
- # pts[3] = [0, depth, 0]
107
- #
108
- # # Add the group to the entities in the model
109
- # group = entities.add_group
110
- #
111
- # # Get the entities within the group
112
- # entities2 = group.entities
113
- #
114
- # # Add a face to within the group
115
- # face = entities2.add_face pts
116
- # group.description = "This is a Group with a 2d Face"
117
- # description = group.description
118
- # if (description)
119
- # UI.messagebox description
120
- # else
121
- # UI.messagebox "Failure"
122
- # end
123
- #
124
- # @param [String] description
125
- # A string description.
126
- #
127
- # @return [String] the new description if successful
128
- #
129
- # @version SketchUp 6.0
130
- def description=(description)
131
- end
132
-
133
- # The entities method is used to retrieve a collection of entities in the
134
- # group.
135
- #
136
- # @example
137
- # depth = 100
138
- # width = 100
139
- # model = Sketchup.active_model
140
- # entities = model.active_entities
141
- # pts = []
142
- # pts[0] = [0, 0, 0]
143
- # pts[1] = [width, 0, 0]
144
- # pts[2] = [width, depth, 0]
145
- # pts[3] = [0, depth, 0]
146
- # # Add the group to the entities in the model
147
- # group = entities.add_group
148
- #
149
- # # Get the entities within the group
150
- # entities2 = group.entities
151
- #
152
- # # Add a face to within the group
153
- # face = entities2.add_face pts
154
- # entities = group.entities
155
- # if (entities)
156
- # UI.messagebox entities
157
- # else
158
- # UI.messagebox "Failure"
159
- # end
160
- #
161
- # @return [Sketchup::Entities] an Entities object if successful
162
- #
163
- # @version SketchUp 6.0
164
- def entities
165
- end
166
-
167
- # The equals? method is used to determine if a group is geometrically
168
- # equivalent to another group.
169
- #
170
- # @example
171
- # entities = Sketchup.active_model.entities
172
- # group1 = entities[0]
173
- # group2 = entities[1]
174
- # status = group1.equals?(group2)
175
- #
176
- # @param [Sketchup::Group] group
177
- # The group to compare this group with.
178
- #
179
- # @return [Boolean]
180
- #
181
- # @version SketchUp 8.0
182
- def equals?(group)
183
- end
184
-
185
- # The explode method is used to explode the group into individual entities.
186
- #
187
- # @example
188
- # # Add a group to the model.
189
- # group = Sketchup.active_model.entities.add_group
190
- # group.entities.add_line([0,0,0],[100,100,100])
191
- #
192
- # array = group.explode
193
- # if array
194
- # UI.messagebox "Exploded the group"
195
- # else
196
- # UI.messagebox "Failure"
197
- # end
198
- #
199
- # @return [Array<Sketchup::Drawingelement>] An array of entity objects if successful, false if
200
- # unsuccessful.
201
- #
202
- # @version SketchUp 6.0
203
- def explode
204
- end
205
-
206
- # The guid method is used to get the base 64 encoded unique id
207
- # for this SketchUp object.
208
- #
209
- # @example
210
- # # Add a group to the model.
211
- # group = Sketchup.active_model.entities.add_group
212
- # group.entities.add_line([0,0,0],[100,100,100])
213
- # guid = group.guid
214
- #
215
- # @return [String] a unique 22 character string
216
- #
217
- # @version SketchUp 2014
218
- def guid
219
- end
220
-
221
- # The intersect method is used to compute the boolean intersection of two
222
- # groups representing manifold solid volumes (this & arg). If the specified
223
- # objects (this and arg) do not represent manifold volumes, this method fails.
224
- #
225
- # @example
226
- # entities = Sketchup.active_model.entities
227
- # group1 = entities[0]
228
- # group2 = entities[1]
229
- # result = group1.intersect(group2)
230
- #
231
- # @param [Sketchup::Group, Sketchup::ComponentInstance] group
232
- # The group to intersect this group with.
233
- #
234
- # @return [Sketchup::Group, nil] The resultant group if the two objects
235
- # (this and arg) represent manifold solids and the
236
- # operation succeeds. Otherwise nil is returned.
237
- #
238
- # @version SketchUp 8.0
239
- def intersect(group)
240
- end
241
-
242
- # The local_bounds method returns the BoundingBox object that defines the size
243
- # of the group in an untransformed state. Useful for determining the original
244
- # width, height, and depth of a group regardless of its current position or
245
- # scale. For components, you can get a similar result by checking
246
- # my_instance.definition.bounds.
247
- #
248
- # @example
249
- # # Add a group to the model.
250
- # group = Sketchup.active_model.entities.add_group
251
- # group.entities.add_line([0,0,0],[100,100,100])
252
- # transformation = Geom::Transformation.new([100,0,0])
253
- #
254
- # # Note that local_bounds_1 and local_bounds_2 will be identical, since
255
- # # they both find the bounding box in group's untransformed state.
256
- # local_bounds_1 = group.local_bounds
257
- # group.transform! transformation
258
- # local_bounds_2 = group.local_bounds
259
- #
260
- # @return [Geom::BoundingBox] a BoundingBox object
261
- #
262
- # @version SketchUp 7.0
263
- def local_bounds
264
- end
265
-
266
- # The locked= method is used to lock a group.
267
- #
268
- # @example
269
- # # Add a group to the model.
270
- # group = Sketchup.active_model.entities.add_group
271
- # group.entities.add_line([0,0,0],[100,100,100])
272
- # status = group.locked = true
273
- #
274
- # @param [Boolean] lock
275
- #
276
- # @return [Boolean] true if the group is locked, false if not
277
- #
278
- # @version SketchUp 6.0
279
- def locked=(lock)
280
- end
281
-
282
- # The locked? method is used to determine if a group is locked.
283
- #
284
- # @example
285
- # depth = 100
286
- # width = 100
287
- # model = Sketchup.active_model
288
- # entities = model.active_entities
289
- # pts = []
290
- # pts[0] = [0, 0, 0]
291
- # pts[1] = [width, 0, 0]
292
- # pts[2] = [width, depth, 0]
293
- # pts[3] = [0, depth, 0]
294
- #
295
- # # Add the group to the entities in the model
296
- # group = entities.add_group
297
- # status = group.locked?
298
- # UI.messagebox status
299
- #
300
- # @return [Boolean]
301
- #
302
- # @version SketchUp 6.0
303
- def locked?
304
- end
305
-
306
- # The make_unique method is used to force a group to have a unique definition.
307
- #
308
- # Copying a group using the copy tool in SketchUp will create copies of the
309
- # group that share a common definition until an instance is edited manually or
310
- # this method is used. If multiple copies are made, all copies share a
311
- # definition until all copies are edited manually, or all copies have this
312
- # method used on them. This method ensures that the group uses a unique
313
- # definition entry in the drawing database.
314
- #
315
- # @example
316
- # # Assume we have 2 groups, one copied from the other and sharing definitions
317
- # groups = Sketchup.active_model.entities.grep(Sketchup::Group)
318
- # groups[0].make_unique
319
- # if (groups[0].entities.to_a == groups[1].entities.to_a)
320
- # puts "This should not happen since we made the groups unique"
321
- # end
322
- #
323
- # @return [Sketchup::Group] the unique group
324
- #
325
- # @version SketchUp 6.0
326
- def make_unique
327
- end
328
-
329
- # The manifold? method is used to determine if a group is manifold.
330
- #
331
- # @example
332
- # entities = Sketchup.active_model.entities
333
- # definition = Sketchup.active_model.definitions[0]
334
- # transformation = Geom::Transformation.new([0,0,0])
335
- # group = entities.add_instance(definition, transformation)
336
- # status = group.manifold?
337
- #
338
- # @return [Boolean]
339
- #
340
- # @version SketchUp 8.0
341
- def manifold?
342
- end
343
-
344
- # The move! method is used to apply a transformation to the group.
345
- #
346
- # This method is the same as the transform! method except that it does not
347
- # record the move in an undo operation. This method is useful for
348
- # transparently moving things during an animation.
349
- #
350
- # @example
351
- # point = Geom::Point3d.new 500,500,500
352
- # t = Geom::Transformation.new point
353
- # depth = 100
354
- # width = 100
355
- # model = Sketchup.active_model
356
- # entities = model.active_entities
357
- # pts = []
358
- # pts[0] = [0, 0, 0]
359
- # pts[1] = [width, 0, 0]
360
- # pts[2] = [width, depth, 0]
361
- # pts[3] = [0, depth, 0]
362
- #
363
- # # Add the group to the entities in the model
364
- # group = entities.add_group
365
- #
366
- # # Get the entities within the group
367
- # entities2 = group.entities
368
- #
369
- # # Add a face to within the group
370
- # face = entities2.add_face pts
371
- # UI.messagebox "Group before Move"
372
- # group = group.move! t
373
- # if (group)
374
- # UI.messagebox "Group after move"
375
- # UI.messagebox group
376
- # else
377
- # UI.messagebox "Failure"
378
- # end
379
- #
380
- # @param [Geom::Transformation] transform
381
- # A Transformation object.
382
- #
383
- # @return [Sketchup::Group] the transformed Group object if successful
384
- #
385
- # @version SketchUp 6.0
386
- def move!(transform)
387
- end
388
-
389
- # The name method is used to retrieve the name of the group.
390
- #
391
- # @example
392
- # # Add a group to the model.
393
- # group = Sketchup.active_model.entities.add_group
394
- # group.entities.add_line([0,0,0],[100,100,100])
395
- # group.name = "A Line"
396
- # name = group.name
397
- #
398
- # @return [String] The name of the group if successful
399
- #
400
- # @version SketchUp 6.0
401
- def name
402
- end
403
-
404
- # The name= method is used to set the description for the group.
405
- #
406
- # @example
407
- # # Add a group to the model.
408
- # group = Sketchup.active_model.entities.add_group
409
- # group.entities.add_line([0,0,0],[100,100,100])
410
- # group.name = "A Line"
411
- # name = group.name
412
- #
413
- # @param [String] name
414
- # A string name.
415
- #
416
- # @return [String] a new name if successful
417
- #
418
- # @version SketchUp 6.0
419
- def name=(name)
420
- end
421
-
422
- # The outer_shell method is used to compute the outer shell of the two groups
423
- # representing manifold solid volumes (this || arg). If the specified objects
424
- # (this and arg) do not represent manifold volumes, this method fails.
425
- #
426
- # @example
427
- # entities = Sketchup.active_model.entities
428
- # group1 = entities[0]
429
- # group2 = entities[1]
430
- # result = group1.outer_shell(group2)
431
- #
432
- # @param [Sketchup::Group, Sketchup::ComponentInstance] group
433
- # The group to outer shell this group with.
434
- #
435
- # @return [Sketchup::Group, nil] The resultant group if the two objects
436
- # (this and arg) represent manifold solids and the
437
- # operation succeeds otherwise nil is returned.
438
- #
439
- # @version SketchUp 8.0
440
- def outer_shell(group)
441
- end
442
-
443
- # The remove_observer method is used to remove a ComponentInstance observer
444
- # from the group.
445
- #
446
- # @example
447
- # group = Sketchup.active_model.entities[0]
448
- # if group != nil
449
- # if group.is_a? Sketchup::Group
450
- # status = group.remove_observer observer
451
- # end
452
- # end
453
- #
454
- # @param [Object] observer
455
- # An observer.
456
- #
457
- # @return [Boolean] true if successful, false if unsuccessful.
458
- #
459
- # @version SketchUp 6.0
460
- def remove_observer(observer)
461
- end
462
-
463
- # The show_differences method is used to determine if a group is
464
- # geometrically equivalent to another group and in addition move the non-
465
- # matching and matching geometry to new layers.
466
- #
467
- # This method will move both groups to Layer0. Geometry that is the same
468
- # in both groups will be moved to a new layer named group_name + "_same".
469
- # Geometry that is not the same will be moved to a layer named group_name +
470
- # "_diff".
471
- #
472
- # If verbose is true, a list of all the geometry that is different
473
- # from one group to the other is displayed texturally in the Ruby Console.
474
- #
475
- # @example
476
- # entities = Sketchup.active_model.entities
477
- # group1 = entities[0]
478
- # group2 = entities[1]
479
- # status = group1.show_differences(group2, true)
480
- #
481
- # @param [Sketchup::Group, Sketchup::ComponentInstance] group
482
- # The group to be compared with.
483
- #
484
- # @param [Boolean] verbose
485
- # A boolean flag indicating whether to display a textural
486
- # report of the found differences to the Ruby console.
487
- #
488
- # @return [Boolean] true if the groups are geometrically
489
- # equivalent. Otherwise false.
490
- #
491
- # @version SketchUp 8.0
492
- def show_differences(group, verbose)
493
- end
494
-
495
- # The split method is used to compute the boolean split (map overlay) of the
496
- # two groups representing manifold solid volumes (this ^ arg). If the
497
- # specified objects (this and arg) do not represent manifold volumes,
498
- # this method fails.
499
- #
500
- # @example
501
- # entities = Sketchup.active_model.entities
502
- # group1 = entities[0]
503
- # group2 = entities[1]
504
- # result = group1.split(group2)
505
- #
506
- # @param [Sketchup::Group, Sketchup::ComponentInstance] group
507
- # The group to split this group with.
508
- #
509
- # @return [Array(Sketchup::Group, Sketchup::Group, Sketchup::Group), nil] A vector (array) of the three resultant groups
510
- # If the two objects (this and arg) represent manifold
511
- # solids and the operation succeeds otherwise nil is
512
- # returned. The 3 groups are as follows:
513
- # The intersection of volume 1 & volume 2,
514
- # the difference of volume 1 minus volume 2,
515
- # and the reverse difference of volume 2 minus volume 1.
516
- #
517
- # @version SketchUp 8.0
518
- def split(group)
519
- end
520
-
521
- # The subtract method is used to compute the boolean difference of the two
522
- # groups representing manifold solid volumes (this - arg). If the specified
523
- # objects (this and arg) do not represent manifold volumes, this method fails.
524
- #
525
- # @example
526
- # entities = Sketchup.active_model.entities
527
- # group1 = entities[0]
528
- # group2 = entities[1]
529
- # result = group1.subtract(group2)
530
- #
531
- # @param [Sketchup::Group, Sketchup::ComponentInstance] group
532
- # The group to subtract this group from.
533
- #
534
- # @return [Sketchup::Group, nil] The resultant group if the two objects
535
- # (this and arg) represent manifold solids and the
536
- # operation succeeds. Otherwise nil is returned.
537
- #
538
- # @version SketchUp 8.0
539
- def subtract(group)
540
- end
541
-
542
- # The to_component method is used to convert the group to a component
543
- # instance.
544
- #
545
- # @example
546
- # # Add a group to the model.
547
- # group = Sketchup.active_model.entities.add_group
548
- # group.entities.add_line([0,0,0],[100,100,100])
549
- #
550
- # # change the group to a component instance
551
- # group.to_component
552
- #
553
- # @return [Sketchup::ComponentInstance] the new ComponentInstance object
554
- #
555
- # @version SketchUp 6.0
556
- def to_component
557
- end
558
-
559
- # The transform! method is used to apply a transformation to a group.
560
- #
561
- # @example
562
- # point = Geom::Point3d.new 500,500,500
563
- # t = Geom::Transformation.new point
564
- # depth = 100
565
- # width = 100
566
- # model = Sketchup.active_model
567
- # entities = model.active_entities
568
- # pts = []
569
- # pts[0] = [0, 0, 0]
570
- # pts[1] = [width, 0, 0]
571
- # pts[2] = [width, depth, 0]
572
- # pts[3] = [0, depth, 0]
573
- #
574
- # # Add the group to the entities in the model
575
- # group = entities.add_group
576
- #
577
- # # Get the entities within the group
578
- # entities2 = group.entities
579
- #
580
- # # Add a face to within the group
581
- # face = entities2.add_face pts
582
- # UI.messagebox "Group before Move"
583
- # group = group.transform! t
584
- # if (group)
585
- # UI.messagebox "Group after move"
586
- # UI.messagebox group
587
- # else
588
- # UI.messagebox "Failure"
589
- # end
590
- #
591
- # @param [Geom::Transformation] transform
592
- # A Transformation object.
593
- #
594
- # @return [Sketchup::Group] a transformed group object if successful
595
- #
596
- # @version SketchUp 6.0
597
- def transform!(transform)
598
- end
599
-
600
- # The transformation method is used to retrieve the transformation for the
601
- # group.
602
- #
603
- # @example
604
- # # Add a group to the model.
605
- # group = Sketchup.active_model.entities.add_group
606
- # group.entities.add_line([0,0,0],[100,100,100])
607
- #
608
- # trans = group.transformation
609
- #
610
- # @return [Geom::Transformation] a Transformation object if successful
611
- #
612
- # @version SketchUp 6.0
613
- def transformation
614
- end
615
-
616
- # The transformation= method is used to set the transformation for the
617
- # group.
618
- #
619
- # @example
620
- # # Add a group to the model.
621
- # group = Sketchup.active_model.entities.add_group
622
- # group.entities.add_line([0,0,0],[100,100,100])
623
- #
624
- # new_transform = Geom::Transformation.new([100,0,0])
625
- # group.transformation = new_transform
626
- #
627
- # @param [Geom::Transformation] transform
628
- # The Transformation object to apply
629
- #
630
- # @return [Geom::Transformation] the applied transformation
631
- #
632
- # @version SketchUp 6.0
633
- def transformation=(transform)
634
- end
635
-
636
- # The trim method is used to compute the (non-destructive) boolean difference
637
- # of the two groups representing manifold solid volumes (this - arg). If
638
- # the specified objects (this and arg) do not represent manifold volumes, this
639
- # method fails.
640
- #
641
- # @example
642
- # entities = Sketchup.active_model.entities
643
- # group1 = entities[0]
644
- # group2 = entities[1]
645
- # result = group1.trim(group2)
646
- #
647
- # @param [Sketchup::Group, Sketchup::ComponentInstance] group
648
- # The group to trim this group against.
649
- #
650
- # @return [Sketchup::Group, nil] The resultant group if the two objects
651
- # (this and arg) represent manifold solids and the
652
- # operation succeeds otherwise nil is returned.
653
- #
654
- # @version SketchUp 8.0
655
- def trim(group)
656
- end
657
-
658
- # The union method is used to compute the boolean union of the two groups
659
- # representing manifold solid volumes (this | arg). If the specified
660
- # objects (this and arg) do not represent manifold volumes, this method fails.
661
- #
662
- # @example
663
- # entities = Sketchup.active_model.entities
664
- # group1 = entities[0]
665
- # group2 = entities[1]
666
- # result = group1.union(group2)
667
- #
668
- # @param [Sketchup::Group, Sketchup::ComponentInstance] group
669
- # The group to union this group with.
670
- #
671
- # @return [Sketchup::Group, nil] The resultant group if the two objects
672
- # (this and arg) represent manifold solids and the
673
- # operation succeeds. Otherwise nil is returned.
674
- #
675
- # @version SketchUp 8.0
676
- def union(group)
677
- end
678
-
679
- # The volume method is used to compute the volume of this group if and only
680
- # if this group is manifold.
681
- #
682
- # @example
683
- # entities = Sketchup.active_model.entities
684
- # definition = Sketchup.active_model.definitions[0]
685
- # transformation = Geom::Transformation.new([0,0,0])
686
- # group = entities.add_instance(definition, transformation)
687
- # volume = group.volume
688
- #
689
- # @return [Float] If the group represents a manifold volume,
690
- # volume will be a positive value. If volume is negative,
691
- # the group is not manifold.
692
- #
693
- # @version SketchUp 8.0
694
- def volume
695
- end
696
-
697
- end
1
+ # Copyright:: Copyright 2022 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # A Group class contains methods for manipulating groups of entities.
5
+ #
6
+ # Groups in SketchUp are very similar to components, but can from a user point
7
+ # of view be thought of as unique objects. Groups can be instanced when copied
8
+ # but are silently made unique when edited through the GUI. To honor this
9
+ # behavior, make sure to call {#make_unique} before modifying a group through
10
+ # the API.
11
+ #
12
+ # @version SketchUp 6.0
13
+ class Sketchup::Group < Sketchup::Drawingelement
14
+
15
+ # Instance Methods
16
+
17
+ # The add_observer method is used to add a ComponentInstance observer to the
18
+ # group.
19
+ #
20
+ # @example
21
+ # # Add a group to the model.
22
+ # group = Sketchup.active_model.entities.add_group
23
+ # group.entities.add_line([0,0,0],[100,100,100])
24
+ # status = group.add_observer observer
25
+ #
26
+ # @param [Object] observer
27
+ # An observer.
28
+ #
29
+ # @return [Boolean] true if successful, false if unsuccessful.
30
+ #
31
+ # @version SketchUp 6.0
32
+ def add_observer(observer)
33
+ end
34
+
35
+ # The copy method is used to create a new Group object that is a copy of the
36
+ # group.
37
+ #
38
+ # @example
39
+ # # Add a group to the model.
40
+ # group = Sketchup.active_model.entities.add_group
41
+ # group.entities.add_line([0,0,0],[100,100,100])
42
+ # group2 = group.copy
43
+ #
44
+ # @return [Sketchup::Group] a new Group object
45
+ #
46
+ # @version SketchUp 6.0
47
+ def copy
48
+ end
49
+
50
+ # The definition method is used to retrieve the component definition for this
51
+ # group.
52
+ #
53
+ # @example
54
+ # group = Sketchup.active_model.entities.add_group
55
+ # definition = group.definition
56
+ #
57
+ # @return [Sketchup::ComponentDefinition] a ComponentDefinition object if
58
+ # successful
59
+ #
60
+ # @version SketchUp 2015
61
+ def definition
62
+ end
63
+
64
+ # The description method is used to retrieve the description for the group.
65
+ #
66
+ # @example
67
+ # depth = 100
68
+ # width = 100
69
+ # model = Sketchup.active_model
70
+ # entities = model.active_entities
71
+ # pts = []
72
+ # pts[0] = [0, 0, 0]
73
+ # pts[1] = [width, 0, 0]
74
+ # pts[2] = [width, depth, 0]
75
+ # pts[3] = [0, depth, 0]
76
+ # # Add the group to the entities in the model
77
+ # group = entities.add_group
78
+ #
79
+ # # Get the entities within the group
80
+ # entities2 = group.entities
81
+ #
82
+ # # Add a face to within the group
83
+ # face = entities2.add_face pts
84
+ # group.description = "This is a Group with a 2d Face"
85
+ # description = group.description
86
+ #
87
+ # @return [String] a string description if successful
88
+ #
89
+ # @version SketchUp 6.0
90
+ def description
91
+ end
92
+
93
+ # The description= method is used to set the description for the group.
94
+ #
95
+ # @example
96
+ # depth = 100
97
+ # width = 100
98
+ # model = Sketchup.active_model
99
+ # entities = model.active_entities
100
+ # pts = []
101
+ # pts[0] = [0, 0, 0]
102
+ # pts[1] = [width, 0, 0]
103
+ # pts[2] = [width, depth, 0]
104
+ # pts[3] = [0, depth, 0]
105
+ #
106
+ # # Add the group to the entities in the model
107
+ # group = entities.add_group
108
+ #
109
+ # # Get the entities within the group
110
+ # entities2 = group.entities
111
+ #
112
+ # # Add a face to within the group
113
+ # face = entities2.add_face pts
114
+ # group.description = "This is a Group with a 2d Face"
115
+ # description = group.description
116
+ # if (description)
117
+ # UI.messagebox description
118
+ # else
119
+ # UI.messagebox "Failure"
120
+ # end
121
+ #
122
+ # @param [String] description
123
+ # A string description.
124
+ #
125
+ # @return [String] the new description if successful
126
+ #
127
+ # @version SketchUp 6.0
128
+ def description=(description)
129
+ end
130
+
131
+ # The entities method is used to retrieve a collection of entities in the
132
+ # group.
133
+ #
134
+ # @example
135
+ # depth = 100
136
+ # width = 100
137
+ # model = Sketchup.active_model
138
+ # entities = model.active_entities
139
+ # pts = []
140
+ # pts[0] = [0, 0, 0]
141
+ # pts[1] = [width, 0, 0]
142
+ # pts[2] = [width, depth, 0]
143
+ # pts[3] = [0, depth, 0]
144
+ # # Add the group to the entities in the model
145
+ # group = entities.add_group
146
+ #
147
+ # # Get the entities within the group
148
+ # entities2 = group.entities
149
+ #
150
+ # # Add a face to within the group
151
+ # face = entities2.add_face pts
152
+ # entities = group.entities
153
+ # if (entities)
154
+ # UI.messagebox entities
155
+ # else
156
+ # UI.messagebox "Failure"
157
+ # end
158
+ #
159
+ # @return [Sketchup::Entities] an Entities object if successful
160
+ #
161
+ # @version SketchUp 6.0
162
+ def entities
163
+ end
164
+
165
+ # The equals? method is used to determine if a group is geometrically
166
+ # equivalent to another group.
167
+ #
168
+ # @example
169
+ # entities = Sketchup.active_model.entities
170
+ # group1 = entities[0]
171
+ # group2 = entities[1]
172
+ # status = group1.equals?(group2)
173
+ #
174
+ # @param [Sketchup::Group] group
175
+ # The group to compare this group with.
176
+ #
177
+ # @return [Boolean]
178
+ #
179
+ # @version SketchUp 8.0
180
+ def equals?(group)
181
+ end
182
+
183
+ # The explode method is used to explode the group into individual entities.
184
+ #
185
+ # @example
186
+ # # Add a group to the model.
187
+ # group = Sketchup.active_model.entities.add_group
188
+ # group.entities.add_line([0,0,0],[100,100,100])
189
+ #
190
+ # array = group.explode
191
+ # if array
192
+ # UI.messagebox "Exploded the group"
193
+ # else
194
+ # UI.messagebox "Failure"
195
+ # end
196
+ #
197
+ # @return [Array<Sketchup::Drawingelement>] An array of entity objects if successful, false if
198
+ # unsuccessful.
199
+ #
200
+ # @version SketchUp 6.0
201
+ def explode
202
+ end
203
+
204
+ # The {#glued_to} method is used to retrieve the entity that this group is
205
+ # glued to.
206
+ #
207
+ # @example
208
+ # point = Geom::Point3d.new(10, 20, 30)
209
+ # transform = Geom::Transformation.new(point)
210
+ # model = Sketchup.active_model
211
+ # entities = model.active_entities
212
+ # group = entities.add_group
213
+ # group.entities.add_face([[0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0]])
214
+ # status = group.glued_to
215
+ #
216
+ # @return [Sketchup::Face, Sketchup::Group, Sketchup::ComponentInstance, Sketchup::Image, nil]
217
+ #
218
+ # @version SketchUp 2021.1
219
+ def glued_to
220
+ end
221
+
222
+ # The {glued_to=} method glues this group to a drawing element.
223
+ # When moving this other drawing elment with the Move tool, the glued group moves with it.
224
+ #
225
+ # @example
226
+ # model = Sketchup.active_model
227
+ # entities = model.active_entities
228
+ #
229
+ # # Create a face
230
+ # face = entities.add_face([[0, 0, 0], [100, 0, 0], [100, 100, 0], [0, 100, 0]])
231
+ #
232
+ # # Create a group
233
+ # definitions = model.definitions
234
+ # group = entities.add_group
235
+ # group.entities.add_face([[0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0]])
236
+ #
237
+ # # Make group "gluable"
238
+ # group.definition.behavior.is2d = true
239
+ #
240
+ # # Glue the group to the face.
241
+ # # If you now move the face, the group will follow.
242
+ # group.glued_to = face
243
+ #
244
+ # @param [Sketchup::Face, Sketchup::Group, Sketchup::ComponentInstance, Sketchup::Image, nil] drawing_element
245
+ #
246
+ # @raise ArgumentError if the {Sketchup::Behavior} for this group doesn't allow gluing,
247
+ # if the alignment is wrong, or if this would lead to cyclic gluing.
248
+ #
249
+ # @return [Sketchup::Face, Sketchup::Group, Sketchup::ComponentInstance, Sketchup::Image, nil] the entity the group was glued to.
250
+ #
251
+ # @version SketchUp 2021.1
252
+ def glued_to=(drawing_element)
253
+ end
254
+
255
+ # The guid method is used to get the base 64 encoded unique id
256
+ # for this SketchUp object.
257
+ #
258
+ # @example
259
+ # # Add a group to the model.
260
+ # group = Sketchup.active_model.entities.add_group
261
+ # group.entities.add_line([0,0,0],[100,100,100])
262
+ # guid = group.guid
263
+ #
264
+ # @return [String] a unique 22 character string
265
+ #
266
+ # @version SketchUp 2014
267
+ def guid
268
+ end
269
+
270
+ # The intersect method is used to compute the boolean intersection of two
271
+ # groups representing manifold solid volumes (this & arg). If the specified
272
+ # objects (this and arg) do not represent manifold volumes, this method fails.
273
+ #
274
+ # @example
275
+ # entities = Sketchup.active_model.entities
276
+ # group1 = entities[0]
277
+ # group2 = entities[1]
278
+ # result = group1.intersect(group2)
279
+ #
280
+ # @note This method is not available in SketchUp Make.
281
+ #
282
+ # @param [Sketchup::Group, Sketchup::ComponentInstance] group
283
+ # The group to intersect this group with.
284
+ #
285
+ # @return [Sketchup::Group, nil] The resultant group if the two objects
286
+ # (this and arg) represent manifold solids and the
287
+ # operation succeeds. Otherwise nil is returned.
288
+ #
289
+ # @version SketchUp 8.0
290
+ def intersect(group)
291
+ end
292
+
293
+ # The {#local_bounds} method is used to retrieve the {Geom::BoundingBox}
294
+ # bounding the contents of a {Sketchup::Group}, in the group's own internal
295
+ # coordinate system.
296
+ #
297
+ # @deprecated In favor of `group.definition.bounds`.
298
+ #
299
+ # @example
300
+ # # Add a group to the model.
301
+ # group = Sketchup.active_model.entities.add_group
302
+ # group.entities.add_line([0,0,0],[100,100,100])
303
+ # transformation = Geom::Transformation.new([100,0,0])
304
+ #
305
+ # # Note that local_bounds_1 and local_bounds_2 will be identical, since
306
+ # # they both find the bounding box in group's untransformed state.
307
+ # local_bounds_1 = group.local_bounds
308
+ # group.transform! transformation
309
+ # local_bounds_2 = group.local_bounds
310
+ #
311
+ # @return [Geom::BoundingBox]
312
+ #
313
+ # @version SketchUp 7.0
314
+ def local_bounds
315
+ end
316
+
317
+ # The locked= method is used to lock a group.
318
+ #
319
+ # @example
320
+ # # Add a group to the model.
321
+ # group = Sketchup.active_model.entities.add_group
322
+ # group.entities.add_line([0,0,0],[100,100,100])
323
+ # status = group.locked = true
324
+ #
325
+ # @param [Boolean] lock
326
+ #
327
+ # @return [Boolean] true if the group is locked, false if not
328
+ #
329
+ # @version SketchUp 6.0
330
+ def locked=(lock)
331
+ end
332
+
333
+ # The locked? method is used to determine if a group is locked.
334
+ #
335
+ # @example
336
+ # depth = 100
337
+ # width = 100
338
+ # model = Sketchup.active_model
339
+ # entities = model.active_entities
340
+ # pts = []
341
+ # pts[0] = [0, 0, 0]
342
+ # pts[1] = [width, 0, 0]
343
+ # pts[2] = [width, depth, 0]
344
+ # pts[3] = [0, depth, 0]
345
+ #
346
+ # # Add the group to the entities in the model
347
+ # group = entities.add_group
348
+ # status = group.locked?
349
+ # UI.messagebox status
350
+ #
351
+ # @return [Boolean]
352
+ #
353
+ # @version SketchUp 6.0
354
+ def locked?
355
+ end
356
+
357
+ # The {#make_unique} method is used to force a group to have a unique
358
+ # definition. If the group is already unique in the model, nothing happens.
359
+ #
360
+ # Copying a group in SketchUp will create a group that shares the same
361
+ # definition. SketchUp implicitly makes group unique when edited from the GUI,
362
+ # and from a user point of view groups could be thought of as always being
363
+ # unique. To honor this behavior, call this method before editing a group
364
+ # through the API.
365
+ #
366
+ # @example
367
+ # # Assume we have 2 groups, one copied from the other and sharing definitions
368
+ # groups = Sketchup.active_model.entities.grep(Sketchup::Group)
369
+ # groups[0].make_unique
370
+ # if (groups[0].entities.to_a == groups[1].entities.to_a)
371
+ # puts "This should not happen since we made the groups unique"
372
+ # end
373
+ #
374
+ # @return [Sketchup::Group] the unique group
375
+ #
376
+ # @version SketchUp 6.0
377
+ def make_unique
378
+ end
379
+
380
+ # The manifold? method is used to determine if a group is manifold.
381
+ #
382
+ # @example
383
+ # entities = Sketchup.active_model.entities
384
+ # definition = Sketchup.active_model.definitions[0]
385
+ # transformation = Geom::Transformation.new([0,0,0])
386
+ # group = entities.add_instance(definition, transformation)
387
+ # status = group.manifold?
388
+ #
389
+ # @return [Boolean]
390
+ #
391
+ # @version SketchUp 8.0
392
+ def manifold?
393
+ end
394
+
395
+ # The {#move!} method is used to set the transformation of this group
396
+ # instance, similarly to {#transformation=} but without recording to the undo
397
+ # stack.
398
+ #
399
+ # This method is useful for moving entities inside of an animation or page
400
+ # transition.
401
+ #
402
+ # @example
403
+ # point = Geom::Point3d.new 500,500,500
404
+ # transformation = Geom::Transformation.new point
405
+ # depth = 100
406
+ # width = 100
407
+ # model = Sketchup.active_model
408
+ # entities = model.active_entities
409
+ # pts = []
410
+ # pts[0] = [0, 0, 0]
411
+ # pts[1] = [width, 0, 0]
412
+ # pts[2] = [width, depth, 0]
413
+ # pts[3] = [0, depth, 0]
414
+ #
415
+ # # Add the group to the entities in the model
416
+ # group = entities.add_group
417
+ #
418
+ # # Get the entities within the group
419
+ # entities2 = group.entities
420
+ #
421
+ # # Add a face to within the group
422
+ # face = entities2.add_face pts
423
+ # UI.messagebox "Group before Move"
424
+ # group = group.move!(transformation)
425
+ #
426
+ # @note Despite the name being similar to {#transform!}, this method closer
427
+ # corresponds to {#transformation=}.
428
+ #
429
+ # @param [Geom::Transformation] transformation
430
+ #
431
+ # @return [Sketchup::Group] the transformed Group object if successful
432
+ #
433
+ # @version SketchUp 6.0
434
+ def move!(transformation)
435
+ end
436
+
437
+ # The name method is used to retrieve the name of the group.
438
+ #
439
+ # @example
440
+ # # Add a group to the model.
441
+ # group = Sketchup.active_model.entities.add_group
442
+ # group.entities.add_line([0,0,0],[100,100,100])
443
+ # group.name = "A Line"
444
+ # name = group.name
445
+ #
446
+ # @return [String] The name of the group if successful
447
+ #
448
+ # @version SketchUp 6.0
449
+ def name
450
+ end
451
+
452
+ # The name= method is used to set the description for the group.
453
+ #
454
+ # @example
455
+ # # Add a group to the model.
456
+ # group = Sketchup.active_model.entities.add_group
457
+ # group.entities.add_line([0,0,0],[100,100,100])
458
+ # group.name = "A Line"
459
+ # name = group.name
460
+ #
461
+ # @param [String] name
462
+ # A string name.
463
+ #
464
+ # @return [String] a new name if successful
465
+ #
466
+ # @version SketchUp 6.0
467
+ def name=(name)
468
+ end
469
+
470
+ # The outer_shell method is used to compute the outer shell of the two groups
471
+ # representing manifold solid volumes (this || arg). If the specified objects
472
+ # (this and arg) do not represent manifold volumes, this method fails.
473
+ #
474
+ # @example
475
+ # entities = Sketchup.active_model.entities
476
+ # group1 = entities[0]
477
+ # group2 = entities[1]
478
+ # result = group1.outer_shell(group2)
479
+ #
480
+ # @param [Sketchup::Group, Sketchup::ComponentInstance] group
481
+ # The group to outer shell this group with.
482
+ #
483
+ # @return [Sketchup::Group, nil] The resultant group if the two objects
484
+ # (this and arg) represent manifold solids and the
485
+ # operation succeeds otherwise nil is returned.
486
+ #
487
+ # @version SketchUp 8.0
488
+ def outer_shell(group)
489
+ end
490
+
491
+ # The remove_observer method is used to remove a ComponentInstance observer
492
+ # from the group.
493
+ #
494
+ # @example
495
+ # group = Sketchup.active_model.entities[0]
496
+ # if group != nil
497
+ # if group.is_a? Sketchup::Group
498
+ # status = group.remove_observer observer
499
+ # end
500
+ # end
501
+ #
502
+ # @param [Object] observer
503
+ # An observer.
504
+ #
505
+ # @return [Boolean] true if successful, false if unsuccessful.
506
+ #
507
+ # @version SketchUp 6.0
508
+ def remove_observer(observer)
509
+ end
510
+
511
+ # The show_differences method is used to determine if a group is
512
+ # geometrically equivalent to another group and in addition move the non-
513
+ # matching and matching geometry to new layers.
514
+ #
515
+ # This method will move both groups to Layer0. Geometry that is the same
516
+ # in both groups will be moved to a new layer named group_name + "_same".
517
+ # Geometry that is not the same will be moved to a layer named group_name +
518
+ # "_diff".
519
+ #
520
+ # If verbose is true, a list of all the geometry that is different
521
+ # from one group to the other is displayed texturally in the Ruby Console.
522
+ #
523
+ # @example
524
+ # entities = Sketchup.active_model.entities
525
+ # group1 = entities[0]
526
+ # group2 = entities[1]
527
+ # status = group1.show_differences(group2, true)
528
+ #
529
+ # @param [Sketchup::Group, Sketchup::ComponentInstance] group
530
+ # The group to be compared with.
531
+ #
532
+ # @param [Boolean] verbose
533
+ # A boolean flag indicating whether to display a textural
534
+ # report of the found differences to the Ruby console.
535
+ #
536
+ # @return [Boolean] true if the groups are geometrically
537
+ # equivalent. Otherwise false.
538
+ #
539
+ # @version SketchUp 8.0
540
+ def show_differences(group, verbose)
541
+ end
542
+
543
+ # The split method is used to compute the boolean split (map overlay) of the
544
+ # two groups representing manifold solid volumes (this ^ arg). If the
545
+ # specified objects (this and arg) do not represent manifold volumes,
546
+ # this method fails.
547
+ #
548
+ # @example
549
+ # entities = Sketchup.active_model.entities
550
+ # group1 = entities[0]
551
+ # group2 = entities[1]
552
+ # result = group1.split(group2)
553
+ #
554
+ # @note This method is not available in SketchUp Make.
555
+ #
556
+ # @param [Sketchup::Group, Sketchup::ComponentInstance] group
557
+ # The group to split this group with.
558
+ #
559
+ # @return [Array(Sketchup::Group, Sketchup::Group, Sketchup::Group), nil] A vector (array) of the three resultant groups
560
+ # If the two objects (this and arg) represent manifold
561
+ # solids and the operation succeeds otherwise nil is
562
+ # returned. The 3 groups are as follows:
563
+ # The intersection of volume 1 & volume 2,
564
+ # the difference of volume 1 minus volume 2,
565
+ # and the reverse difference of volume 2 minus volume 1.
566
+ #
567
+ # @version SketchUp 8.0
568
+ def split(group)
569
+ end
570
+
571
+ # The subtract method is used to compute the boolean difference of the two
572
+ # groups representing manifold solid volumes (this - arg). If the specified
573
+ # objects (this and arg) do not represent manifold volumes, this method fails.
574
+ #
575
+ # @example
576
+ # entities = Sketchup.active_model.entities
577
+ # group1 = entities[0]
578
+ # group2 = entities[1]
579
+ # result = group1.subtract(group2)
580
+ #
581
+ # @note This method is not available in SketchUp Make.
582
+ #
583
+ # @param [Sketchup::Group, Sketchup::ComponentInstance] group
584
+ # The group to subtract this group from.
585
+ #
586
+ # @return [Sketchup::Group, nil] The resultant group if the two objects
587
+ # (this and arg) represent manifold solids and the
588
+ # operation succeeds. Otherwise nil is returned.
589
+ #
590
+ # @version SketchUp 8.0
591
+ def subtract(group)
592
+ end
593
+
594
+ # The to_component method is used to convert the group to a component
595
+ # instance.
596
+ #
597
+ # @example
598
+ # # Add a group to the model.
599
+ # group = Sketchup.active_model.entities.add_group
600
+ # group.entities.add_line([0,0,0],[100,100,100])
601
+ #
602
+ # # change the group to a component instance
603
+ # group.to_component
604
+ #
605
+ # @return [Sketchup::ComponentInstance] the new ComponentInstance object
606
+ #
607
+ # @version SketchUp 6.0
608
+ def to_component
609
+ end
610
+
611
+ # The transform! method is used to apply a transformation to a group.
612
+ #
613
+ # @example
614
+ # point = Geom::Point3d.new 500,500,500
615
+ # t = Geom::Transformation.new point
616
+ # depth = 100
617
+ # width = 100
618
+ # model = Sketchup.active_model
619
+ # entities = model.active_entities
620
+ # pts = []
621
+ # pts[0] = [0, 0, 0]
622
+ # pts[1] = [width, 0, 0]
623
+ # pts[2] = [width, depth, 0]
624
+ # pts[3] = [0, depth, 0]
625
+ #
626
+ # # Add the group to the entities in the model
627
+ # group = entities.add_group
628
+ #
629
+ # # Get the entities within the group
630
+ # entities2 = group.entities
631
+ #
632
+ # # Add a face to within the group
633
+ # face = entities2.add_face pts
634
+ # UI.messagebox "Group before Move"
635
+ # group = group.transform! t
636
+ # if (group)
637
+ # UI.messagebox "Group after move"
638
+ # UI.messagebox group
639
+ # else
640
+ # UI.messagebox "Failure"
641
+ # end
642
+ #
643
+ # @param [Geom::Transformation] transform
644
+ # A Transformation object.
645
+ #
646
+ # @return [Sketchup::Group] a transformed group object if successful
647
+ #
648
+ # @version SketchUp 6.0
649
+ def transform!(transform)
650
+ end
651
+
652
+ # The transformation method is used to retrieve the transformation for the
653
+ # group.
654
+ #
655
+ # @example
656
+ # # Add a group to the model.
657
+ # group = Sketchup.active_model.entities.add_group
658
+ # group.entities.add_line([0,0,0],[100,100,100])
659
+ #
660
+ # trans = group.transformation
661
+ #
662
+ # @return [Geom::Transformation] a Transformation object if successful
663
+ #
664
+ # @version SketchUp 6.0
665
+ def transformation
666
+ end
667
+
668
+ # The {#transformation=} method is used to set the transformation of this
669
+ # group
670
+ #
671
+ # @example
672
+ # # Add a group to the model.
673
+ # group = Sketchup.active_model.entities.add_group
674
+ # group.entities.add_line([0,0,0],[100,100,100])
675
+ #
676
+ # new_transformation = Geom::Transformation.new([100,0,0])
677
+ # group.transformation = new_transformation
678
+ #
679
+ # @param [Geom::Transformation] transformation
680
+ #
681
+ # @version SketchUp 6.0
682
+ def transformation=(transformation)
683
+ end
684
+
685
+ # The trim method is used to compute the (non-destructive) boolean difference
686
+ # of the two groups representing manifold solid volumes (this - arg). If
687
+ # the specified objects (this and arg) do not represent manifold volumes, this
688
+ # method fails.
689
+ #
690
+ # @example
691
+ # entities = Sketchup.active_model.entities
692
+ # group1 = entities[0]
693
+ # group2 = entities[1]
694
+ # result = group1.trim(group2)
695
+ #
696
+ # @note This method is not available in SketchUp Make.
697
+ #
698
+ # @param [Sketchup::Group, Sketchup::ComponentInstance] group
699
+ # The group to trim this group against.
700
+ #
701
+ # @return [Sketchup::Group, nil] The resultant group if the two objects
702
+ # (this and arg) represent manifold solids and the
703
+ # operation succeeds otherwise nil is returned.
704
+ #
705
+ # @version SketchUp 8.0
706
+ def trim(group)
707
+ end
708
+
709
+ # The union method is used to compute the boolean union of the two groups
710
+ # representing manifold solid volumes (this | arg). If the specified
711
+ # objects (this and arg) do not represent manifold volumes, this method fails.
712
+ #
713
+ # @example
714
+ # entities = Sketchup.active_model.entities
715
+ # group1 = entities[0]
716
+ # group2 = entities[1]
717
+ # result = group1.union(group2)
718
+ #
719
+ # @note This method is not available in SketchUp Make.
720
+ #
721
+ # @param [Sketchup::Group, Sketchup::ComponentInstance] group
722
+ # The group to union this group with.
723
+ #
724
+ # @return [Sketchup::Group, nil] The resultant group if the two objects
725
+ # (this and arg) represent manifold solids and the
726
+ # operation succeeds. Otherwise nil is returned.
727
+ #
728
+ # @version SketchUp 8.0
729
+ def union(group)
730
+ end
731
+
732
+ # The volume method is used to compute the volume of this group if and only
733
+ # if this group is manifold.
734
+ #
735
+ # @example
736
+ # entities = Sketchup.active_model.entities
737
+ # definition = Sketchup.active_model.definitions[0]
738
+ # transformation = Geom::Transformation.new([0,0,0])
739
+ # group = entities.add_instance(definition, transformation)
740
+ # volume = group.volume
741
+ #
742
+ # @return [Float] If the group represents a manifold volume,
743
+ # volume will be a positive value. If volume is negative,
744
+ # the group is not manifold.
745
+ #
746
+ # @version SketchUp 8.0
747
+ def volume
748
+ end
749
+
750
+ end