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,414 +1,414 @@
1
- # Copyright:: Copyright 2023 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The Material class represents a texture or color that can be applied to
5
- # Drawingelements. It is most often applied to Faces.
6
- #
7
- # You can pass any object that can be used as a material to a method that
8
- # requires a material. Objects include actual materials, color, and classes
9
- # that can be converted to a color.
10
- #
11
- # The following are valid (assuming the existence of a Material mat1.)
12
- #
13
- # @example
14
- # face.material = mat1
15
- # face.material = "red"
16
- # face.material = 0xff0000
17
- #
18
- # @version SketchUp 6.0
19
- class Sketchup::Material < Sketchup::Entity
20
-
21
- # Includes
22
-
23
- include Comparable
24
-
25
- # Constants
26
-
27
- COLORIZE_SHIFT = nil # Stub value.
28
- COLORIZE_TINT = nil # Stub value.
29
-
30
- MATERIAL_COLORIZED_TEXTURED = nil # Stub value.
31
- MATERIAL_SOLID = nil # Stub value.
32
- MATERIAL_TEXTURED = nil # Stub value.
33
-
34
- OWNER_IMAGE = nil # Stub value.
35
- OWNER_LAYER = nil # Stub value.
36
- OWNER_MANAGER = nil # Stub value.
37
-
38
- # Instance Methods
39
-
40
- # The <=> method is used to compare two materials based on name. The number
41
- # returned relates to the "string distance" between the names.
42
- #
43
- # @example
44
- # model = Sketchup.active_model
45
- # materials = model.materials
46
- # m1 = materials.add('Joe')
47
- # m2 = materials.add('Fred')
48
- # p m1 <=> m2
49
- #
50
- # @param [Sketchup::Material] material2
51
- # A Material object.
52
- #
53
- # @return [Integer] 0 if they are equal, positive number if
54
- # material1 > material2, negative if material1 < material2
55
- #
56
- # @version SketchUp 6.0
57
- def <=>(material2)
58
- end
59
-
60
- # The == method is used to test if two materials are the same.
61
- #
62
- # @example
63
- # model = Sketchup.active_model
64
- # materials = model.materials
65
- # m1 = materials.add('Joe')
66
- # m2 = materials.add('Fred')
67
- # if (m1 == m2)
68
- # UI.messagebox('The Materials are equal.')
69
- # else
70
- # UI.messagebox('The Materials are not equal.')
71
- # end
72
- #
73
- # @param [Sketchup::Material] material2
74
- # A Material object.
75
- #
76
- # @return [Boolean] true if the materials are the same, false if
77
- # they are different
78
- #
79
- # @version SketchUp 6.0
80
- def ==(material2)
81
- end
82
-
83
- # The alpha method is used to get the opacity of the material.
84
- #
85
- # The value will be between 0.0 and 1.0. A value of 0.0 means that the material is
86
- # completely transparent. A value of 1.0 means that the Material is completely
87
- # opaque.
88
- #
89
- # @example
90
- # alpha_value = Sketchup.active_model.materials[0].alpha
91
- #
92
- # @return [Float] a number between 0 and 1
93
- #
94
- # @version SketchUp 6.0
95
- def alpha
96
- end
97
-
98
- # The alpha= method is used to set the opacity of the material.
99
- #
100
- # The value must be between 0.0 and 1.0. A value of 0.0 means that the material is
101
- # completely transparent. A value of 1.0 means that the Material is completely
102
- # opaque.
103
- #
104
- # @example
105
- # model = Sketchup.active_model
106
- # materials = model.materials
107
- # material = materials.add('Joe')
108
- # material.alpha = 0.5
109
- #
110
- # @param [Float] alpha
111
- # An opacity value.
112
- #
113
- # @return [Float] the newly set opacity value
114
- #
115
- # @version SketchUp 6.0
116
- def alpha=(alpha)
117
- end
118
-
119
- # The color method is used to retrieve the color of the material.
120
- #
121
- # If it uses a Texture, this will return the average color.
122
- #
123
- # @example
124
- # model = Sketchup.active_model
125
- # materials = model.materials
126
- # material = materials.add('Joe')
127
- # material.color = 'red'
128
- # color = material.color
129
- #
130
- # @return [Sketchup::Color] a Color object
131
- #
132
- # @version SketchUp 6.0
133
- def color
134
- end
135
-
136
- # The color= method is used to set the color of the material.
137
- #
138
- # If the Material has a texture, then this turns it into a colorized
139
- # texture.
140
- #
141
- # To reset the color of a Material with a texture, set the color
142
- # to nil.
143
- #
144
- # @example
145
- # model = Sketchup.active_model
146
- # materials = model.materials
147
- # material = materials.add('Joe')
148
- # material.color = 'red'
149
- #
150
- # @param [Sketchup::Color, String, nil] color
151
- # A Color object.
152
- #
153
- # @return [Sketchup::Color, String, nil] the newly set Color object
154
- #
155
- # @version SketchUp 6.0
156
- def color=(color)
157
- end
158
-
159
- # The colorize_deltas method retrieves the HLS delta for colorized materials.
160
- #
161
- # @example
162
- # material = Sketchup.active_model.materials[0]
163
- # h, l, s = material.colorize_deltas
164
- #
165
- # @return [Array(Float, Float, Float)] An array of floats representing the HLS delta.
166
- #
167
- # @version SketchUp 2015
168
- def colorize_deltas
169
- end
170
-
171
- # The colorize_type method retrieves the type of colorization of the material.
172
- # This value is only relevant when the materialType is set to 2
173
- # (colorized textured).
174
- # Types include:
175
- #
176
- # - 0 = shift (Sketchup::Material::COLORIZE_SHIFT),
177
- # - 1 = tint (Sketchup::Material::COLORIZE_TINT),
178
- #
179
- # @example
180
- # material = Sketchup.active_model.materials[0]
181
- # type = material.colorize_type
182
- #
183
- # @return [Integer] the colorize type for the Material object.
184
- #
185
- # @version SketchUp 2015
186
- def colorize_type
187
- end
188
-
189
- # The colorize_type method set the type of colorization of the material.
190
- # This value is only relevant when the materialType is set to 2
191
- # (colorized textured).
192
- # Types include:
193
- #
194
- # - 0 = shift (Sketchup::Material::COLORIZE_SHIFT),
195
- # - 1 = tint (Sketchup::Material::COLORIZE_TINT),
196
- #
197
- # @example
198
- # material = Sketchup.active_model.materials[0]
199
- # material.colorize_type = Sketchup::Material::COLORIZE_TINT
200
- #
201
- # @param [Integer] type
202
- # the new colorize type for the Material object.
203
- #
204
- # @return [Integer] the colorize type for the Material object.
205
- #
206
- # @version SketchUp 2015
207
- def colorize_type=(type)
208
- end
209
-
210
- # The display_name method retrieves the name that is displayed within SketchUp
211
- # for the material.
212
- #
213
- # This should be used when presenting the name in the UI, but the returned name
214
- # cannot be used as a key in model.materials.
215
- #
216
- # @example
217
- # model = Sketchup.active_model
218
- # materials = model.materials
219
- # material = materials.add('[Joe]')
220
- # # Use .name for the internal name of a material
221
- # puts material.name # Outputs "[Joe]"
222
- # # Use .display_name for presenting the material name
223
- # # to the UI like SketchUp does.
224
- # puts material.display_name # Outputs "Joe"
225
- #
226
- # @return [String] the display name for the material
227
- #
228
- # @version SketchUp 6.0
229
- def display_name
230
- end
231
-
232
- # The materialType method retrieves the type of the material. Types include:
233
- #
234
- # - 0 = solid (Sketchup::Material::MATERIAL_SOLID),
235
- # - 1 = textured (Sketchup::Material::MATERIAL_TEXTURED),
236
- # - 2 = colorized textured (Sketchup::Material::MATERIAL_COLORIZED_TEXTURED).
237
- #
238
- # The constants where added in SketchUp 2015.
239
- #
240
- # @example
241
- # material = Sketchup.active_model.materials[0]
242
- # type = material.materialType
243
- #
244
- # @return [Integer] the material type for the Material object. See
245
- # summary for details.
246
- #
247
- # @version SketchUp 6.0
248
- def materialType
249
- end
250
-
251
- # The name method retrieves the name of the material. This is the
252
- # internal name of the object which should be used for retrieving
253
- # the material from the model's material list.
254
- #
255
- # Use .display_name to display the name in the UI.
256
- #
257
- # @example
258
- # model = Sketchup.active_model
259
- # materials = model.materials
260
- # material = materials.add('[Joe]')
261
- # # Use .name for the internal name of a material
262
- # puts material.name # Outputs "[Joe]"
263
- # # Use .display_name for presenting the material name
264
- # # to the UI like SketchUp does.
265
- # puts material.display_name # Outputs "Joe"
266
- #
267
- # @return [String] the name of the Material object
268
- #
269
- # @version SketchUp 6.0
270
- def name
271
- end
272
-
273
- # The {#name=} method sets the name of the material.
274
- #
275
- # @example Safely change name without raising errors
276
- # materials = Sketchup.active_model.materials
277
- # material = materials.add("Joe")
278
- # material.name = materials.unique_name('Jeff')
279
- #
280
- # @note Since SketchUp 2018 this method will raise an `ArgumentError` if the
281
- # name is not unique.
282
- #
283
- # @note SketchUp 2018 would raise an error if you named material the name it
284
- # already had.
285
- #
286
- # @param [String] str
287
- # the new material name
288
- #
289
- # @raise [ArgumentError] if the name is not unique to the model.
290
- # (Added in SU2018)
291
- #
292
- # @return [String] the newly set material name.
293
- #
294
- # @version SketchUp 8.0 M1
295
- def name=(str)
296
- end
297
-
298
- # The {#owner_type} method is used to determine if the material is owned
299
- # by a {Sketchup::Materials}.
300
- #
301
- # Returned value is one of:
302
- # * +Sketchup::Material::OWNER_MANAGER+
303
- # * +Sketchup::Material::OWNER_IMAGE+
304
- # * +Sketchup::Material::OWNER_LAYER+
305
- #
306
- # @return [Integer]
307
- #
308
- # @version SketchUp 2019.2
309
- def owner_type
310
- end
311
-
312
- # The {#save_as} method is used to write a material to a SKM file.
313
- #
314
- # You must remember to append ".skm" to the filename as this will not be done
315
- # automatically.
316
- #
317
- # @example
318
- # filename = File.join(ENV['HOME'], 'Desktop', 'su_test.skm')
319
- # materials = Sketchup.active_model.materials
320
- # material = materials.add("Hello World")
321
- # material.color = 'red'
322
- # material.save_as(filename)
323
- #
324
- # @param [String] filename
325
- # the path to the SKM file to load.
326
- #
327
- # @return [Boolean] `true` if successful
328
- #
329
- # @version SketchUp 2017
330
- def save_as(filename)
331
- end
332
-
333
- # The texture method retrieves the texture of the material.
334
- #
335
- # @example
336
- # model = Sketchup.active_model
337
- # materials = model.materials
338
- # material = materials.add('Joe')
339
- # material.texture = "C:/Materials/Carpet.jpg"
340
- # texture = material.texture
341
- #
342
- # @return [Sketchup::Texture, nil] the Texture object within the Material.
343
- # Returns nil if the Material does not have a texture.
344
- #
345
- # @version SketchUp 6.0
346
- def texture
347
- end
348
-
349
- # The texture= method sets the texture for the material.
350
- #
351
- # Setting the texture to +nil+ will turn it into a solid color
352
- #
353
- # @example
354
- # model = Sketchup.active_model
355
- # materials = model.materials
356
- # material = materials.add('Joe')
357
- # material.texture = "C:/Materials/Carpet.jpg"
358
- #
359
- # @overload texture=(filename)
360
- #
361
- # @param [String] filename
362
- # The file path to the texture the material should use.
363
- #
364
- # @overload texture=(properties)
365
- #
366
- # @param [Array(String, Length, Length)] properties
367
- # An array with the texture file path and optionally the width and height.
368
- #
369
- # @overload texture=(image_rep)
370
- #
371
- # @param [Sketchup::ImageRep] image_rep The pixel data representing the
372
- # texture. (Added in SketchUp 2018)
373
- #
374
- # @version SketchUp 6.0
375
- def texture=(arg)
376
- end
377
-
378
- # The use_alpha? method tells if the material uses transparency.
379
- #
380
- # Note that this is not affected by the alpha value of the color object. Only
381
- # the .alpha value and transparent texture will make this method return true.
382
- #
383
- # @example
384
- # material = Sketchup.active_model.materials[0]
385
- # is_alpha = material.use_alpha?
386
- #
387
- # @return [Boolean]
388
- #
389
- # @version SketchUp 6.0
390
- def use_alpha?
391
- end
392
-
393
- # The write_thumbnail method writes a bitmap thumbnail to the given file name.
394
- #
395
- # @example
396
- # model = Sketchup.active_model
397
- # model.materials.each { |material|
398
- # thumbnail_file = "C:/tmp/materials/#{material.display_name}.png"
399
- # material.write_thumbnail(thumbnail_file, 128)
400
- # }
401
- #
402
- # @param [String] path
403
- # The file path for the thumbnail.
404
- #
405
- # @param [Integer] resolution
406
- # The resolution of the thumbnail.
407
- #
408
- # @return [Boolean] true if successful, false if unsuccessful.
409
- #
410
- # @version SketchUp 8.0 M1
411
- def write_thumbnail(path, resolution)
412
- end
413
-
414
- end
1
+ # Copyright:: Copyright 2024 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The Material class represents a texture or color that can be applied to
5
+ # Drawingelements. It is most often applied to Faces.
6
+ #
7
+ # You can pass any object that can be used as a material to a method that
8
+ # requires a material. Objects include actual materials, color, and classes
9
+ # that can be converted to a color.
10
+ #
11
+ # The following are valid (assuming the existence of a Material mat1.)
12
+ #
13
+ # @example
14
+ # face.material = mat1
15
+ # face.material = "red"
16
+ # face.material = 0xff0000
17
+ #
18
+ # @version SketchUp 6.0
19
+ class Sketchup::Material < Sketchup::Entity
20
+
21
+ # Includes
22
+
23
+ include Comparable
24
+
25
+ # Constants
26
+
27
+ COLORIZE_SHIFT = nil # Stub value.
28
+ COLORIZE_TINT = nil # Stub value.
29
+
30
+ MATERIAL_COLORIZED_TEXTURED = nil # Stub value.
31
+ MATERIAL_SOLID = nil # Stub value.
32
+ MATERIAL_TEXTURED = nil # Stub value.
33
+
34
+ OWNER_IMAGE = nil # Stub value.
35
+ OWNER_LAYER = nil # Stub value.
36
+ OWNER_MANAGER = nil # Stub value.
37
+
38
+ # Instance Methods
39
+
40
+ # The <=> method is used to compare two materials based on name. The number
41
+ # returned relates to the "string distance" between the names.
42
+ #
43
+ # @example
44
+ # model = Sketchup.active_model
45
+ # materials = model.materials
46
+ # m1 = materials.add('Joe')
47
+ # m2 = materials.add('Fred')
48
+ # p m1 <=> m2
49
+ #
50
+ # @param [Sketchup::Material] material2
51
+ # A Material object.
52
+ #
53
+ # @return [Integer] 0 if they are equal, positive number if
54
+ # material1 > material2, negative if material1 < material2
55
+ #
56
+ # @version SketchUp 6.0
57
+ def <=>(material2)
58
+ end
59
+
60
+ # The == method is used to test if two materials are the same.
61
+ #
62
+ # @example
63
+ # model = Sketchup.active_model
64
+ # materials = model.materials
65
+ # m1 = materials.add('Joe')
66
+ # m2 = materials.add('Fred')
67
+ # if (m1 == m2)
68
+ # UI.messagebox('The Materials are equal.')
69
+ # else
70
+ # UI.messagebox('The Materials are not equal.')
71
+ # end
72
+ #
73
+ # @param [Sketchup::Material] material2
74
+ # A Material object.
75
+ #
76
+ # @return [Boolean] true if the materials are the same, false if
77
+ # they are different
78
+ #
79
+ # @version SketchUp 6.0
80
+ def ==(material2)
81
+ end
82
+
83
+ # The alpha method is used to get the opacity of the material.
84
+ #
85
+ # The value will be between 0.0 and 1.0. A value of 0.0 means that the material is
86
+ # completely transparent. A value of 1.0 means that the Material is completely
87
+ # opaque.
88
+ #
89
+ # @example
90
+ # alpha_value = Sketchup.active_model.materials[0].alpha
91
+ #
92
+ # @return [Float] a number between 0 and 1
93
+ #
94
+ # @version SketchUp 6.0
95
+ def alpha
96
+ end
97
+
98
+ # The alpha= method is used to set the opacity of the material.
99
+ #
100
+ # The value must be between 0.0 and 1.0. A value of 0.0 means that the material is
101
+ # completely transparent. A value of 1.0 means that the Material is completely
102
+ # opaque.
103
+ #
104
+ # @example
105
+ # model = Sketchup.active_model
106
+ # materials = model.materials
107
+ # material = materials.add('Joe')
108
+ # material.alpha = 0.5
109
+ #
110
+ # @param [Float] alpha
111
+ # An opacity value.
112
+ #
113
+ # @return [Float] the newly set opacity value
114
+ #
115
+ # @version SketchUp 6.0
116
+ def alpha=(alpha)
117
+ end
118
+
119
+ # The color method is used to retrieve the color of the material.
120
+ #
121
+ # If it uses a Texture, this will return the average color.
122
+ #
123
+ # @example
124
+ # model = Sketchup.active_model
125
+ # materials = model.materials
126
+ # material = materials.add('Joe')
127
+ # material.color = 'red'
128
+ # color = material.color
129
+ #
130
+ # @return [Sketchup::Color] a Color object
131
+ #
132
+ # @version SketchUp 6.0
133
+ def color
134
+ end
135
+
136
+ # The color= method is used to set the color of the material.
137
+ #
138
+ # If the Material has a texture, then this turns it into a colorized
139
+ # texture.
140
+ #
141
+ # To reset the color of a Material with a texture, set the color
142
+ # to nil.
143
+ #
144
+ # @example
145
+ # model = Sketchup.active_model
146
+ # materials = model.materials
147
+ # material = materials.add('Joe')
148
+ # material.color = 'red'
149
+ #
150
+ # @param [Sketchup::Color, String, nil] color
151
+ # A Color object.
152
+ #
153
+ # @return [Sketchup::Color, String, nil] the newly set Color object
154
+ #
155
+ # @version SketchUp 6.0
156
+ def color=(color)
157
+ end
158
+
159
+ # The colorize_deltas method retrieves the HLS delta for colorized materials.
160
+ #
161
+ # @example
162
+ # material = Sketchup.active_model.materials[0]
163
+ # h, l, s = material.colorize_deltas
164
+ #
165
+ # @return [Array(Float, Float, Float)] An array of floats representing the HLS delta.
166
+ #
167
+ # @version SketchUp 2015
168
+ def colorize_deltas
169
+ end
170
+
171
+ # The colorize_type method retrieves the type of colorization of the material.
172
+ # This value is only relevant when the materialType is set to 2
173
+ # (colorized textured).
174
+ # Types include:
175
+ #
176
+ # - 0 = shift (Sketchup::Material::COLORIZE_SHIFT),
177
+ # - 1 = tint (Sketchup::Material::COLORIZE_TINT),
178
+ #
179
+ # @example
180
+ # material = Sketchup.active_model.materials[0]
181
+ # type = material.colorize_type
182
+ #
183
+ # @return [Integer] the colorize type for the Material object.
184
+ #
185
+ # @version SketchUp 2015
186
+ def colorize_type
187
+ end
188
+
189
+ # The colorize_type method set the type of colorization of the material.
190
+ # This value is only relevant when the materialType is set to 2
191
+ # (colorized textured).
192
+ # Types include:
193
+ #
194
+ # - 0 = shift (Sketchup::Material::COLORIZE_SHIFT),
195
+ # - 1 = tint (Sketchup::Material::COLORIZE_TINT),
196
+ #
197
+ # @example
198
+ # material = Sketchup.active_model.materials[0]
199
+ # material.colorize_type = Sketchup::Material::COLORIZE_TINT
200
+ #
201
+ # @param [Integer] type
202
+ # the new colorize type for the Material object.
203
+ #
204
+ # @return [Integer] the colorize type for the Material object.
205
+ #
206
+ # @version SketchUp 2015
207
+ def colorize_type=(type)
208
+ end
209
+
210
+ # The display_name method retrieves the name that is displayed within SketchUp
211
+ # for the material.
212
+ #
213
+ # This should be used when presenting the name in the UI, but the returned name
214
+ # cannot be used as a key in model.materials.
215
+ #
216
+ # @example
217
+ # model = Sketchup.active_model
218
+ # materials = model.materials
219
+ # material = materials.add('[Joe]')
220
+ # # Use .name for the internal name of a material
221
+ # puts material.name # Outputs "[Joe]"
222
+ # # Use .display_name for presenting the material name
223
+ # # to the UI like SketchUp does.
224
+ # puts material.display_name # Outputs "Joe"
225
+ #
226
+ # @return [String] the display name for the material
227
+ #
228
+ # @version SketchUp 6.0
229
+ def display_name
230
+ end
231
+
232
+ # The materialType method retrieves the type of the material. Types include:
233
+ #
234
+ # - 0 = solid (Sketchup::Material::MATERIAL_SOLID),
235
+ # - 1 = textured (Sketchup::Material::MATERIAL_TEXTURED),
236
+ # - 2 = colorized textured (Sketchup::Material::MATERIAL_COLORIZED_TEXTURED).
237
+ #
238
+ # The constants where added in SketchUp 2015.
239
+ #
240
+ # @example
241
+ # material = Sketchup.active_model.materials[0]
242
+ # type = material.materialType
243
+ #
244
+ # @return [Integer] the material type for the Material object. See
245
+ # summary for details.
246
+ #
247
+ # @version SketchUp 6.0
248
+ def materialType
249
+ end
250
+
251
+ # The name method retrieves the name of the material. This is the
252
+ # internal name of the object which should be used for retrieving
253
+ # the material from the model's material list.
254
+ #
255
+ # Use .display_name to display the name in the UI.
256
+ #
257
+ # @example
258
+ # model = Sketchup.active_model
259
+ # materials = model.materials
260
+ # material = materials.add('[Joe]')
261
+ # # Use .name for the internal name of a material
262
+ # puts material.name # Outputs "[Joe]"
263
+ # # Use .display_name for presenting the material name
264
+ # # to the UI like SketchUp does.
265
+ # puts material.display_name # Outputs "Joe"
266
+ #
267
+ # @return [String] the name of the Material object
268
+ #
269
+ # @version SketchUp 6.0
270
+ def name
271
+ end
272
+
273
+ # The {#name=} method sets the name of the material.
274
+ #
275
+ # @example Safely change name without raising errors
276
+ # materials = Sketchup.active_model.materials
277
+ # material = materials.add("Joe")
278
+ # material.name = materials.unique_name('Jeff')
279
+ #
280
+ # @note Since SketchUp 2018 this method will raise an `ArgumentError` if the
281
+ # name is not unique.
282
+ #
283
+ # @note SketchUp 2018 would raise an error if you named material the name it
284
+ # already had.
285
+ #
286
+ # @param [String] str
287
+ # the new material name
288
+ #
289
+ # @raise [ArgumentError] if the name is not unique to the model.
290
+ # (Added in SU2018)
291
+ #
292
+ # @return [String] the newly set material name.
293
+ #
294
+ # @version SketchUp 8.0 M1
295
+ def name=(str)
296
+ end
297
+
298
+ # The {#owner_type} method is used to determine if the material is owned
299
+ # by a {Sketchup::Materials}.
300
+ #
301
+ # Returned value is one of:
302
+ # * +Sketchup::Material::OWNER_MANAGER+
303
+ # * +Sketchup::Material::OWNER_IMAGE+
304
+ # * +Sketchup::Material::OWNER_LAYER+
305
+ #
306
+ # @return [Integer]
307
+ #
308
+ # @version SketchUp 2019.2
309
+ def owner_type
310
+ end
311
+
312
+ # The {#save_as} method is used to write a material to a SKM file.
313
+ #
314
+ # You must remember to append ".skm" to the filename as this will not be done
315
+ # automatically.
316
+ #
317
+ # @example
318
+ # filename = File.join(ENV['HOME'], 'Desktop', 'su_test.skm')
319
+ # materials = Sketchup.active_model.materials
320
+ # material = materials.add("Hello World")
321
+ # material.color = 'red'
322
+ # material.save_as(filename)
323
+ #
324
+ # @param [String] filename
325
+ # the path to the SKM file to load.
326
+ #
327
+ # @return [Boolean] `true` if successful
328
+ #
329
+ # @version SketchUp 2017
330
+ def save_as(filename)
331
+ end
332
+
333
+ # The texture method retrieves the texture of the material.
334
+ #
335
+ # @example
336
+ # model = Sketchup.active_model
337
+ # materials = model.materials
338
+ # material = materials.add('Joe')
339
+ # material.texture = "C:/Materials/Carpet.jpg"
340
+ # texture = material.texture
341
+ #
342
+ # @return [Sketchup::Texture, nil] the Texture object within the Material.
343
+ # Returns nil if the Material does not have a texture.
344
+ #
345
+ # @version SketchUp 6.0
346
+ def texture
347
+ end
348
+
349
+ # The texture= method sets the texture for the material.
350
+ #
351
+ # Setting the texture to +nil+ will turn it into a solid color
352
+ #
353
+ # @example
354
+ # model = Sketchup.active_model
355
+ # materials = model.materials
356
+ # material = materials.add('Joe')
357
+ # material.texture = "C:/Materials/Carpet.jpg"
358
+ #
359
+ # @overload texture=(filename)
360
+ #
361
+ # @param [String] filename
362
+ # The file path to the texture the material should use.
363
+ #
364
+ # @overload texture=(properties)
365
+ #
366
+ # @param [Array(String, Length, Length)] properties
367
+ # An array with the texture file path and optionally the width and height.
368
+ #
369
+ # @overload texture=(image_rep)
370
+ #
371
+ # @param [Sketchup::ImageRep] image_rep The pixel data representing the
372
+ # texture. (Added in SketchUp 2018)
373
+ #
374
+ # @version SketchUp 6.0
375
+ def texture=(arg)
376
+ end
377
+
378
+ # The use_alpha? method tells if the material uses transparency.
379
+ #
380
+ # Note that this is not affected by the alpha value of the color object. Only
381
+ # the .alpha value and transparent texture will make this method return true.
382
+ #
383
+ # @example
384
+ # material = Sketchup.active_model.materials[0]
385
+ # is_alpha = material.use_alpha?
386
+ #
387
+ # @return [Boolean]
388
+ #
389
+ # @version SketchUp 6.0
390
+ def use_alpha?
391
+ end
392
+
393
+ # The write_thumbnail method writes a bitmap thumbnail to the given file name.
394
+ #
395
+ # @example
396
+ # model = Sketchup.active_model
397
+ # model.materials.each { |material|
398
+ # thumbnail_file = "C:/tmp/materials/#{material.display_name}.png"
399
+ # material.write_thumbnail(thumbnail_file, 128)
400
+ # }
401
+ #
402
+ # @param [String] path
403
+ # The file path for the thumbnail.
404
+ #
405
+ # @param [Integer] resolution
406
+ # The resolution of the thumbnail.
407
+ #
408
+ # @return [Boolean] true if successful, false if unsuccessful.
409
+ #
410
+ # @version SketchUp 8.0 M1
411
+ def write_thumbnail(path, resolution)
412
+ end
413
+
414
+ end