sketchup-api-stubs 0.7.9 → 0.7.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -151
  3. data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +509 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -476
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -693
  16. data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
  17. data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -747
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +569 -517
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +356 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +459 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  44. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  45. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  49. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  50. data/lib/sketchup-api-stubs/stubs/Length.rb +278 -278
  51. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -144
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -150
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -281
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -302
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -478
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -659
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +449 -449
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +406 -406
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1242 -1239
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -125
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -937
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -282
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -468
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +406 -406
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -306
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -326
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -422
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -427
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -249
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -414
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +317 -317
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1656 -1652
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -130
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -490
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -116
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -361
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +480 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +373 -361
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +458 -458
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +255 -255
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -217
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -217
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +834 -834
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1329 -1311
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1394 -1377
  144. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  145. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +387 -389
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +505 -494
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -241
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -635
  151. data/lib/sketchup-api-stubs/stubs/UI.rb +728 -683
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +3 -3
@@ -1,317 +1,317 @@
1
- # Copyright:: Copyright 2023 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # A collection of Materials objects. Each model contains a Materials collection
5
- # that can be accessed via Model.materials.
6
- #
7
- # @example
8
- # # Get a handle to all the materials in the current model.
9
- # model = Sketchup.active_model
10
- # materials = model.materials
11
- #
12
- # @version SketchUp 6.0
13
- class Sketchup::Materials < Sketchup::Entity
14
-
15
- # Includes
16
-
17
- include Enumerable
18
-
19
- # Instance Methods
20
-
21
- # The {#[]} method is used to retrieve a material by index or name.
22
- #
23
- # The {#at} method is an alias of {#[]}
24
- #
25
- # @example
26
- # model = Sketchup.active_model
27
- # materials = model.materials
28
- # material = materials[0]
29
- #
30
- # @overload [](index)
31
- #
32
- # @param [Integer] index
33
- # A number representing the material's index in an array of Material
34
- # objects.
35
- # @return [Sketchup::Material, nil] a Material object on success, Nil on failure
36
- #
37
- # @overload [](name)
38
- #
39
- # @param [String] name The name of the material.
40
- # @return [Sketchup::Material, nil] a Material object on success, Nil on failure
41
- #
42
- # @version SketchUp 6.0
43
- def [](arg)
44
- end
45
-
46
- # Add a new Material. When called with no arguments, this will generate a
47
- # new unique name for the new Material. If a name is given, it will check
48
- # to see if there is already a material with that name. If there is already
49
- # a material with the given name, then a new unique name is generated using
50
- # the given name as a base.
51
- #
52
- # @example
53
- # model = Sketchup.active_model
54
- # materials = model.materials
55
- # material = materials.add('Joe')
56
- #
57
- # @param [String] name
58
- # The name of the new material.
59
- #
60
- # @return [Sketchup::Material] a Material object
61
- #
62
- # @version SketchUp 6.0
63
- def add(name)
64
- end
65
-
66
- # The add_observer method is used to add an observer to the materials
67
- # collection.
68
- #
69
- # @example
70
- # materials = Sketchup.active_model.materials
71
- # status = materials.add_observer(observer)
72
- #
73
- # @param [Object] observer
74
- # An observer.
75
- #
76
- # @return [Boolean] true if successful, false if unsuccessful.
77
- #
78
- # @version SketchUp 6.0
79
- def add_observer(observer)
80
- end
81
-
82
- # The {#[]} method is used to retrieve a material by index or name.
83
- #
84
- # The {#at} method is an alias of {#[]}
85
- #
86
- # @example
87
- # model = Sketchup.active_model
88
- # materials = model.materials
89
- # material = materials[0]
90
- #
91
- # @overload [](index)
92
- #
93
- # @param [Integer] index
94
- # A number representing the material's index in an array of Material
95
- # objects.
96
- # @return [Sketchup::Material, nil] a Material object on success, Nil on failure
97
- #
98
- # @overload [](name)
99
- #
100
- # @param [String] name The name of the material.
101
- # @return [Sketchup::Material, nil] a Material object on success, Nil on failure
102
- #
103
- # @version SketchUp 6.0
104
- def at(arg)
105
- end
106
-
107
- #
108
- # @example
109
- # materials = Sketchup.active_model.materials
110
- # count = materials.count
111
- #
112
- # @note Since SketchUp 2014 the count method is inherited from Ruby's
113
- # +Enumerable+ mix-in module. Prior to that the {#count} method is an alias
114
- # for {#length}.
115
- #
116
- # @return [Integer]
117
- #
118
- # @see #length
119
- #
120
- # @version SketchUp 6.0
121
- def count
122
- end
123
-
124
- # The current method is used to get the current material, i.e. the material
125
- # that the user has selected in the Materials dialog.
126
- #
127
- # @example
128
- # current = Sketchup.active_model.materials.current
129
- #
130
- # @return [Sketchup::Material] a Material object.
131
- #
132
- # @version SketchUp 6.0
133
- def current
134
- end
135
-
136
- # The current= method is used to set the current material.
137
- #
138
- # @example
139
- # # Make the first material in the model "current"
140
- # materials = Sketchup.active_model.materials
141
- # materials.current = materials[0]
142
- #
143
- # @param [Sketchup::Material] material
144
- # A Material object.
145
- #
146
- # @return [Sketchup::Material]
147
- #
148
- # @version SketchUp 6.0
149
- def current=(material)
150
- end
151
-
152
- # The {#each} method is used to iterate through all of the materials.
153
- #
154
- # @example
155
- # model = Sketchup.active_model
156
- # model.materials.each { |material|
157
- # puts material.display_name
158
- # }
159
- #
160
- # @note Don't remove content from this collection while iterating over it with
161
- # {#each}. This would change the size of the collection and cause elements to
162
- # be skipped as the indices change. Instead copy the current collection to an
163
- # array using +to_a+ and then use +each+ on the array, when removing content.
164
- #
165
- # @return [nil]
166
- #
167
- # @version SketchUp 6.0
168
- #
169
- # @yieldparam [Sketchup::Material] material
170
- def each
171
- end
172
-
173
- # The number of materials in the collection.
174
- #
175
- # @example
176
- # materials = Sketchup.active_model.materials
177
- # number = materials.length
178
- #
179
- # @note The returned number includes {Sketchup::Image} materials as well.
180
- # It will not reflect the number of materials yielded by {#each}. To get
181
- # the number of non-image materials use {#count} or +materials.to_a.size+.
182
- #
183
- # @return [Integer]
184
- #
185
- # @see #size
186
- #
187
- # @version SketchUp 6.0
188
- def length
189
- end
190
-
191
- # The {#load} method is used to load a material from file into the model.
192
- #
193
- # If a matching material exist in the model it will be returned instead.
194
- #
195
- # @example
196
- # # Load a material from the shipped SketchUp library. (SketchUp 2016)
197
- # filename = 'Materials/Brick, Cladding and Siding/Cinder Block.skm'
198
- # path = Sketchup.find_support_file(filename)
199
- # materials = Sketchup.active_model.materials
200
- # material = materials.load(path)
201
- #
202
- # @param [String] filename
203
- # the path to the SKM file to load.
204
- #
205
- # @raise [RuntimeError] if the material failed to load.
206
- #
207
- # @return [Sketchup::Material] the new loaded material, or existing material.
208
- #
209
- # @version SketchUp 2017
210
- def load(filename)
211
- end
212
-
213
- # The purge_unused method is used to remove unused materials.
214
- #
215
- # @example
216
- # materials = Sketchup.active_model.materials
217
- # materials.purge_unused
218
- #
219
- # @return [Sketchup::Materials] The Materials object.
220
- #
221
- # @version SketchUp 6.0
222
- def purge_unused
223
- end
224
-
225
- # Remove a given material.
226
- #
227
- # NOTE: On SketchUp versions prior to 2014 there is a bug in this method that
228
- # could potentially lead to file corruption. If you call Materials.remove on a
229
- # material that is painted onto any entity in the active model (e.g. faces,
230
- # edges, groups, ...), then calling this method will not successfully unpaint
231
- # the entity and remove the material from the model.
232
- # You must first unpaint all of the entities that respond to .material
233
- # and .back_material before calling Materials.remove.
234
- #
235
- # @example
236
- # if entity.respond_to?(:material) do
237
- # if entity.material.equal?(material_to_remove) do
238
- # entity.material = nil
239
- # end
240
- # end
241
- # # for entities that have a back material
242
- # if entity.respond_to?(:back_material) do
243
- # if entity.back_material.equal?(material_to_remove) do
244
- # entity.back_material = nil
245
- # end
246
- # end
247
- #
248
- # @example
249
- # model = Sketchup.active_model
250
- # materials = model.materials
251
- # material = materials.add('Joe')
252
- # materials.remove(material)
253
- #
254
- # @param [Sketchup::Material] material
255
- # The material to remove.
256
- #
257
- # @return [Boolean] true if successful, false if unsuccessful.
258
- #
259
- # @version SketchUp 8.0 M1
260
- def remove(material)
261
- end
262
-
263
- # The remove_observer method is used to remove an observer from the materials
264
- # collection.
265
- #
266
- # @example
267
- # materials = Sketchup.active_model.materials
268
- # status = materials.remove_observer(observer)
269
- #
270
- # @param [Object] observer
271
- # An observer.
272
- #
273
- # @return [Boolean] true if successful, false if unsuccessful.
274
- #
275
- # @version SketchUp 6.0
276
- def remove_observer(observer)
277
- end
278
-
279
- # The number of materials in the collection.
280
- #
281
- # The {#size} method is an alias for {#length}.
282
- #
283
- # @example
284
- # materials = Sketchup.active_model.materials
285
- # number = materials.size
286
- #
287
- # @note The returned number includes {Sketchup::Image} materials as well.
288
- # It will not reflect the number of materials yielded by {#each}. To get
289
- # the number of non-image materials use {#count} or +materials.to_a.size+.
290
- #
291
- # @return [Integer]
292
- #
293
- # @see #length
294
- #
295
- # @version SketchUp 2014
296
- def size
297
- end
298
-
299
- # The {#unique_name} method is used to retrieve a unique name from the
300
- # materials collection that is based on the provided one. If provided name is
301
- # unique it will be returned, otherwise any trailing indices will be replaced
302
- # by a new index.
303
- #
304
- # @example
305
- # materials = Sketchup.active_model.materials
306
- # unique_name = materials.unique_name("test_name")
307
- #
308
- # @param [String] name
309
- # the suggested name.
310
- #
311
- # @return [String] a unique name.
312
- #
313
- # @version SketchUp 2018
314
- def unique_name(name)
315
- end
316
-
317
- end
1
+ # Copyright:: Copyright 2024 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # A collection of Materials objects. Each model contains a Materials collection
5
+ # that can be accessed via Model.materials.
6
+ #
7
+ # @example
8
+ # # Get a handle to all the materials in the current model.
9
+ # model = Sketchup.active_model
10
+ # materials = model.materials
11
+ #
12
+ # @version SketchUp 6.0
13
+ class Sketchup::Materials < Sketchup::Entity
14
+
15
+ # Includes
16
+
17
+ include Enumerable
18
+
19
+ # Instance Methods
20
+
21
+ # The {#[]} method is used to retrieve a material by index or name.
22
+ #
23
+ # The {#at} method is an alias of {#[]}
24
+ #
25
+ # @example
26
+ # model = Sketchup.active_model
27
+ # materials = model.materials
28
+ # material = materials[0]
29
+ #
30
+ # @overload [](index)
31
+ #
32
+ # @param [Integer] index
33
+ # A number representing the material's index in an array of Material
34
+ # objects.
35
+ # @return [Sketchup::Material, nil] a Material object on success, Nil on failure
36
+ #
37
+ # @overload [](name)
38
+ #
39
+ # @param [String] name The name of the material.
40
+ # @return [Sketchup::Material, nil] a Material object on success, Nil on failure
41
+ #
42
+ # @version SketchUp 6.0
43
+ def [](arg)
44
+ end
45
+
46
+ # Add a new Material. When called with no arguments, this will generate a
47
+ # new unique name for the new Material. If a name is given, it will check
48
+ # to see if there is already a material with that name. If there is already
49
+ # a material with the given name, then a new unique name is generated using
50
+ # the given name as a base.
51
+ #
52
+ # @example
53
+ # model = Sketchup.active_model
54
+ # materials = model.materials
55
+ # material = materials.add('Joe')
56
+ #
57
+ # @param [String] name
58
+ # The name of the new material.
59
+ #
60
+ # @return [Sketchup::Material] a Material object
61
+ #
62
+ # @version SketchUp 6.0
63
+ def add(name)
64
+ end
65
+
66
+ # The add_observer method is used to add an observer to the materials
67
+ # collection.
68
+ #
69
+ # @example
70
+ # materials = Sketchup.active_model.materials
71
+ # status = materials.add_observer(observer)
72
+ #
73
+ # @param [Object] observer
74
+ # An observer.
75
+ #
76
+ # @return [Boolean] true if successful, false if unsuccessful.
77
+ #
78
+ # @version SketchUp 6.0
79
+ def add_observer(observer)
80
+ end
81
+
82
+ # The {#[]} method is used to retrieve a material by index or name.
83
+ #
84
+ # The {#at} method is an alias of {#[]}
85
+ #
86
+ # @example
87
+ # model = Sketchup.active_model
88
+ # materials = model.materials
89
+ # material = materials[0]
90
+ #
91
+ # @overload [](index)
92
+ #
93
+ # @param [Integer] index
94
+ # A number representing the material's index in an array of Material
95
+ # objects.
96
+ # @return [Sketchup::Material, nil] a Material object on success, Nil on failure
97
+ #
98
+ # @overload [](name)
99
+ #
100
+ # @param [String] name The name of the material.
101
+ # @return [Sketchup::Material, nil] a Material object on success, Nil on failure
102
+ #
103
+ # @version SketchUp 6.0
104
+ def at(arg)
105
+ end
106
+
107
+ #
108
+ # @example
109
+ # materials = Sketchup.active_model.materials
110
+ # count = materials.count
111
+ #
112
+ # @note Since SketchUp 2014 the count method is inherited from Ruby's
113
+ # +Enumerable+ mix-in module. Prior to that the {#count} method is an alias
114
+ # for {#length}.
115
+ #
116
+ # @return [Integer]
117
+ #
118
+ # @see #length
119
+ #
120
+ # @version SketchUp 6.0
121
+ def count
122
+ end
123
+
124
+ # The current method is used to get the current material, i.e. the material
125
+ # that the user has selected in the Materials dialog.
126
+ #
127
+ # @example
128
+ # current = Sketchup.active_model.materials.current
129
+ #
130
+ # @return [Sketchup::Material] a Material object.
131
+ #
132
+ # @version SketchUp 6.0
133
+ def current
134
+ end
135
+
136
+ # The current= method is used to set the current material.
137
+ #
138
+ # @example
139
+ # # Make the first material in the model "current"
140
+ # materials = Sketchup.active_model.materials
141
+ # materials.current = materials[0]
142
+ #
143
+ # @param [Sketchup::Material] material
144
+ # A Material object.
145
+ #
146
+ # @return [Sketchup::Material]
147
+ #
148
+ # @version SketchUp 6.0
149
+ def current=(material)
150
+ end
151
+
152
+ # The {#each} method is used to iterate through all of the materials.
153
+ #
154
+ # @example
155
+ # model = Sketchup.active_model
156
+ # model.materials.each { |material|
157
+ # puts material.display_name
158
+ # }
159
+ #
160
+ # @note Don't remove content from this collection while iterating over it with
161
+ # {#each}. This would change the size of the collection and cause elements to
162
+ # be skipped as the indices change. Instead copy the current collection to an
163
+ # array using +to_a+ and then use +each+ on the array, when removing content.
164
+ #
165
+ # @return [nil]
166
+ #
167
+ # @version SketchUp 6.0
168
+ #
169
+ # @yieldparam [Sketchup::Material] material
170
+ def each
171
+ end
172
+
173
+ # The number of materials in the collection.
174
+ #
175
+ # @example
176
+ # materials = Sketchup.active_model.materials
177
+ # number = materials.length
178
+ #
179
+ # @note The returned number includes {Sketchup::Image} materials as well.
180
+ # It will not reflect the number of materials yielded by {#each}. To get
181
+ # the number of non-image materials use {#count} or +materials.to_a.size+.
182
+ #
183
+ # @return [Integer]
184
+ #
185
+ # @see #size
186
+ #
187
+ # @version SketchUp 6.0
188
+ def length
189
+ end
190
+
191
+ # The {#load} method is used to load a material from file into the model.
192
+ #
193
+ # If a matching material exist in the model it will be returned instead.
194
+ #
195
+ # @example
196
+ # # Load a material from the shipped SketchUp library. (SketchUp 2016)
197
+ # filename = 'Materials/Brick, Cladding and Siding/Cinder Block.skm'
198
+ # path = Sketchup.find_support_file(filename)
199
+ # materials = Sketchup.active_model.materials
200
+ # material = materials.load(path)
201
+ #
202
+ # @param [String] filename
203
+ # the path to the SKM file to load.
204
+ #
205
+ # @raise [RuntimeError] if the material failed to load.
206
+ #
207
+ # @return [Sketchup::Material] the new loaded material, or existing material.
208
+ #
209
+ # @version SketchUp 2017
210
+ def load(filename)
211
+ end
212
+
213
+ # The purge_unused method is used to remove unused materials.
214
+ #
215
+ # @example
216
+ # materials = Sketchup.active_model.materials
217
+ # materials.purge_unused
218
+ #
219
+ # @return [Sketchup::Materials] The Materials object.
220
+ #
221
+ # @version SketchUp 6.0
222
+ def purge_unused
223
+ end
224
+
225
+ # Remove a given material.
226
+ #
227
+ # NOTE: On SketchUp versions prior to 2014 there is a bug in this method that
228
+ # could potentially lead to file corruption. If you call Materials.remove on a
229
+ # material that is painted onto any entity in the active model (e.g. faces,
230
+ # edges, groups, ...), then calling this method will not successfully unpaint
231
+ # the entity and remove the material from the model.
232
+ # You must first unpaint all of the entities that respond to .material
233
+ # and .back_material before calling Materials.remove.
234
+ #
235
+ # @example
236
+ # if entity.respond_to?(:material) do
237
+ # if entity.material.equal?(material_to_remove) do
238
+ # entity.material = nil
239
+ # end
240
+ # end
241
+ # # for entities that have a back material
242
+ # if entity.respond_to?(:back_material) do
243
+ # if entity.back_material.equal?(material_to_remove) do
244
+ # entity.back_material = nil
245
+ # end
246
+ # end
247
+ #
248
+ # @example
249
+ # model = Sketchup.active_model
250
+ # materials = model.materials
251
+ # material = materials.add('Joe')
252
+ # materials.remove(material)
253
+ #
254
+ # @param [Sketchup::Material] material
255
+ # The material to remove.
256
+ #
257
+ # @return [Boolean] true if successful, false if unsuccessful.
258
+ #
259
+ # @version SketchUp 8.0 M1
260
+ def remove(material)
261
+ end
262
+
263
+ # The remove_observer method is used to remove an observer from the materials
264
+ # collection.
265
+ #
266
+ # @example
267
+ # materials = Sketchup.active_model.materials
268
+ # status = materials.remove_observer(observer)
269
+ #
270
+ # @param [Object] observer
271
+ # An observer.
272
+ #
273
+ # @return [Boolean] true if successful, false if unsuccessful.
274
+ #
275
+ # @version SketchUp 6.0
276
+ def remove_observer(observer)
277
+ end
278
+
279
+ # The number of materials in the collection.
280
+ #
281
+ # The {#size} method is an alias for {#length}.
282
+ #
283
+ # @example
284
+ # materials = Sketchup.active_model.materials
285
+ # number = materials.size
286
+ #
287
+ # @note The returned number includes {Sketchup::Image} materials as well.
288
+ # It will not reflect the number of materials yielded by {#each}. To get
289
+ # the number of non-image materials use {#count} or +materials.to_a.size+.
290
+ #
291
+ # @return [Integer]
292
+ #
293
+ # @see #length
294
+ #
295
+ # @version SketchUp 2014
296
+ def size
297
+ end
298
+
299
+ # The {#unique_name} method is used to retrieve a unique name from the
300
+ # materials collection that is based on the provided one. If provided name is
301
+ # unique it will be returned, otherwise any trailing indices will be replaced
302
+ # by a new index.
303
+ #
304
+ # @example
305
+ # materials = Sketchup.active_model.materials
306
+ # unique_name = materials.unique_name("test_name")
307
+ #
308
+ # @param [String] name
309
+ # the suggested name.
310
+ #
311
+ # @return [String] a unique name.
312
+ #
313
+ # @version SketchUp 2018
314
+ def unique_name(name)
315
+ end
316
+
317
+ end