sketchup-api-stubs 0.7.8 → 0.7.9

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 -148
  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 -523
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -478
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -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 -698
  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 +517 -516
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -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 +387 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -0
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -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 +209 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -152
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -286
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -302
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -478
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -122
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -619
  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 -426
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +406 -396
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -502
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1239 -1205
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -272
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -126
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -937
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -104
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -292
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -468
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +406 -407
  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 -112
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -414
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +317 -318
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1652 -1651
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -131
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -284
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -0
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -0
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -363
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -477
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +361 -364
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +458 -459
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +255 -260
  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 -837
  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 +1311 -1317
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1377 -1360
  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 +389 -389
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +494 -496
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -240
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -635
  151. data/lib/sketchup-api-stubs/stubs/UI.rb +683 -683
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -311
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +10 -7
@@ -1,266 +1,266 @@
1
- # Copyright:: Copyright 2022 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # References an image representation object.
5
- #
6
- # @example
7
- # # Get the color of the center of the first material texture found in model.
8
- # texture = Sketchup.active_model.materials.map(&:texture).compact.first
9
- # image_rep = texture.image_rep
10
- # color = image_rep.color_at_uv(0.5, 0.5)
11
- #
12
- # @version SketchUp 2018
13
- class Sketchup::ImageRep
14
-
15
- # Instance Methods
16
-
17
- # The {#bits_per_pixel} method gets the number of bits per pixel in the
18
- # image.
19
- #
20
- # @example
21
- # image_rep = Sketchup::ImageRep.new
22
- # image_rep.load_file("/path/to/image.jpg")
23
- # bpp = image_rep.bits_per_pixel
24
- #
25
- # @return [Integer]
26
- #
27
- # @version SketchUp 2018
28
- def bits_per_pixel
29
- end
30
-
31
- # The {#color_at_uv} method returns a color corresponding to the UV texture
32
- # coordinates. +0.0, 0.0+ maps to the bottom left and +1.0, 1.0+ to the top
33
- # right of the image.
34
- #
35
- # @example
36
- # image_rep = Sketchup::ImageRep.new
37
- # image_rep.load_file("/path/to/image.jpg")
38
- # color = image_rep.color_at_uv(0.7, 0.5, false)
39
- #
40
- # @param [Float] u
41
- # The U texture coordinate.
42
- #
43
- # @param [Float] v
44
- # The V texture coordinate.
45
- #
46
- # @param [Boolean] bilinear
47
- # Use bilinear texture filtering. This
48
- # interpolates the colors instead of picking
49
- # the nearest neighbor.
50
- #
51
- # @return [Sketchup::Color, nil]
52
- #
53
- # @version SketchUp 2018
54
- def color_at_uv(u, v, bilinear = false)
55
- end
56
-
57
- # The {#colors} method returns an array of {Sketchup::Color} for each pixel in
58
- # the image.
59
- #
60
- # @example
61
- # image_rep = Sketchup::ImageRep.new
62
- # image_rep.load_file("/path/to/image.jpg")
63
- # colors = image_rep.colors
64
- #
65
- # @return [Array<Sketchup::Color>, nil]
66
- #
67
- # @version SketchUp 2018
68
- def colors
69
- end
70
-
71
- # The {#data} method gets the pixel data for an image in a string of bytes.
72
- #
73
- # @example
74
- # image_rep = Sketchup::ImageRep.new
75
- # image_rep.load_file("/path/to/image.jpg")
76
- # byte_string = image_rep.data
77
- # byte_string.each_byte { |byte| puts byte, ' ' }
78
- #
79
- # @note The byte order of the pixels are RGB(A) on macOS and BGR(A) on Windows.
80
- #
81
- # @return [String, nil]
82
- #
83
- # @version SketchUp 2018
84
- def data
85
- end
86
-
87
- # The {#height} method returns the height of an image.
88
- #
89
- # @example
90
- # image_rep = Sketchup::ImageRep.new
91
- # image_rep.load_file("/path/to/image.jpg")
92
- # image_rep.height
93
- #
94
- # @return [Integer]
95
- #
96
- # @version SketchUp 2018
97
- def height
98
- end
99
-
100
- # The {#initialize} method creates a new image object. The image object will
101
- # have no data if a path to the image is not provided.
102
- #
103
- # @example Default constructor
104
- # image_rep = Sketchup::ImageRep.new
105
- # # Use #set_data or #load_file to add image data.
106
- #
107
- # @example Construct from file
108
- # image_rep = Sketchup::ImageRep.new("/path/to/image.jpg")
109
- #
110
- # @overload initialize
111
- #
112
- #
113
- # @overload initialize(filepath)
114
- #
115
- # @param [String] filepath
116
- #
117
- # @raise [ArgumentError] if the file path or image is invalid.
118
- #
119
- # @return [Sketchup::ImageRep]
120
- #
121
- # @version SketchUp 2018
122
- def initialize(*args)
123
- end
124
-
125
- # The {#load_file} method loads image data from the specified file.
126
- #
127
- # @example
128
- # image_rep = Sketchup::ImageRep.new
129
- # image_rep.load_file("/path/to/image.jpg")
130
- #
131
- # @param [String] filepath
132
- #
133
- # @raise [ArgumentError] if the filepath or image is invalid.
134
- #
135
- # @version SketchUp 2018
136
- def load_file(filepath)
137
- end
138
-
139
- # The {#row_padding} method returns the size of the row padding of an image
140
- # in bytes.
141
- #
142
- # @example
143
- # image_rep = Sketchup::ImageRep.new
144
- # image_rep.load_file("/path/to/image.jpg")
145
- # image_rep.row_padding
146
- #
147
- # @return [Integer]
148
- #
149
- # @version SketchUp 2018
150
- def row_padding
151
- end
152
-
153
- # The {#save_file} method saves an image data object to an image file
154
- # specified by a path.
155
- #
156
- # @example
157
- # image_rep = Sketchup::ImageRep.new
158
- # image_rep.load_file("/path/to/image1.jpg")
159
- # # do stuff with the image representation
160
- # image_rep.save_file("/path/to/save/image2.jpg")
161
- #
162
- # @param [String] filepath
163
- #
164
- # @version SketchUp 2018
165
- def save_file(filepath)
166
- end
167
-
168
- # The {#set_data} method discards any existing data and sets new pixel data for
169
- # the {Sketchup::ImageRep}.
170
- #
171
- # @example Setting new data
172
- # image_rep = Sketchup::ImageRep.new
173
- # width = 800
174
- # height = 600
175
- # bpp = 24
176
- # pixel = [127, 127, 127].pack("C*")
177
- # pixels = pixel * width * height
178
- # image_rep.set_data(width, height, bpp, 0, pixels)
179
- # image_rep.save_file(UI.savepanel)
180
- #
181
- # @example Handling system color differences
182
- # # Generates red image on Mac and blue on Windows.
183
- # image_rep = Sketchup::ImageRep.new
184
- # color = Sketchup::Color.new("Red")
185
- # rgba = color.to_a # Red, green , blue, alpha
186
- # color_data = rgba.pack("C*")
187
- # image_rep.set_data(1, 1, 32, 0, color_data)
188
- # image_rep.save_file(UI.savepanel)
189
- #
190
- # # Generates red image on both systems.
191
- # image_rep = Sketchup::ImageRep.new
192
- # color = Sketchup::Color.new("Red")
193
- # color_code = color.to_a # Red, green, blue, alpha
194
- # if Sketchup.platform == :platform_win
195
- # # Change order to Blue, green, red, alpha on Windows.
196
- # color_code = color_code.values_at(2, 1, 0, 3)
197
- # end
198
- # color_data = color_code.pack("C*")
199
- # image_rep.set_data(1, 1, 32, 0, color_data)
200
- # image_rep.save_file(UI.savepanel)
201
- #
202
- # @note The byte order of the pixels are RGB(A) on macOS and BGR(A) on Windows.
203
- #
204
- # @note The encoding of the pixel_data {String} parameter should be ASCII-8BIT.
205
- # Any other encoding could corrupt the binary data. Using
206
- # `Array#pack("C*")` gives correct encoding.
207
- #
208
- # @param [Integer] width
209
- # The width of the pixel data. Must be greater than 0.
210
- #
211
- # @param [Integer] height
212
- # The height of the pixel data.
213
- # Must be greater than 0.
214
- #
215
- # @param [Integer] bits_per_pixel
216
- # The bits per pixel for the pixel data.
217
- # Must be either 8/24/32.
218
- #
219
- # @param [Integer] row_padding
220
- # The row padding for the pixel data which is
221
- # sized in bytes. Row padding is used to pad each row with zeros so that each
222
- # scanline on the pixel data will end on the data-type boundary.
223
- #
224
- # @param [String] pixel_data
225
- # The binary string containing the pixel data
226
- # representing the new image.
227
- #
228
- # @raise [ArgumentError] If width, height, bits_per_pixel or pixel_data are
229
- # invalid.
230
- #
231
- # @raise [TypeError] If width, height, bits_per_pixel or pixel_data are wrong
232
- # data types.
233
- #
234
- # @return [Sketchup::ImageRep]
235
- #
236
- # @version SketchUp 2018
237
- def set_data(width, height, bits_per_pixel, row_padding, pixel_data)
238
- end
239
-
240
- # The {#size} method gets the total size of the image data in bytes.
241
- #
242
- # @example
243
- # image_rep = Sketchup::ImageRep.new
244
- # image_rep.load_file("/path/to/image.jpg")
245
- # data_size = image_rep.size
246
- #
247
- # @return [Integer]
248
- #
249
- # @version SketchUp 2018
250
- def size
251
- end
252
-
253
- # The {#width} method returns the width of an image.
254
- #
255
- # @example
256
- # image_rep = Sketchup::ImageRep.new
257
- # image_rep.load_file("/path/to/image.jpg")
258
- # image_rep.width
259
- #
260
- # @return [Integer]
261
- #
262
- # @version SketchUp 2018
263
- def width
264
- end
265
-
266
- end
1
+ # Copyright:: Copyright 2023 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # References an image representation object.
5
+ #
6
+ # @example
7
+ # # Get the color of the center of the first material texture found in model.
8
+ # texture = Sketchup.active_model.materials.map(&:texture).compact.first
9
+ # image_rep = texture.image_rep
10
+ # color = image_rep.color_at_uv(0.5, 0.5)
11
+ #
12
+ # @version SketchUp 2018
13
+ class Sketchup::ImageRep
14
+
15
+ # Instance Methods
16
+
17
+ # The {#bits_per_pixel} method gets the number of bits per pixel in the
18
+ # image.
19
+ #
20
+ # @example
21
+ # image_rep = Sketchup::ImageRep.new
22
+ # image_rep.load_file("/path/to/image.jpg")
23
+ # bpp = image_rep.bits_per_pixel
24
+ #
25
+ # @return [Integer]
26
+ #
27
+ # @version SketchUp 2018
28
+ def bits_per_pixel
29
+ end
30
+
31
+ # The {#color_at_uv} method returns a color corresponding to the UV texture
32
+ # coordinates. +0.0, 0.0+ maps to the bottom left and +1.0, 1.0+ to the top
33
+ # right of the image.
34
+ #
35
+ # @example
36
+ # image_rep = Sketchup::ImageRep.new
37
+ # image_rep.load_file("/path/to/image.jpg")
38
+ # color = image_rep.color_at_uv(0.7, 0.5, false)
39
+ #
40
+ # @param [Float] u
41
+ # The U texture coordinate.
42
+ #
43
+ # @param [Float] v
44
+ # The V texture coordinate.
45
+ #
46
+ # @param [Boolean] bilinear
47
+ # Use bilinear texture filtering. This
48
+ # interpolates the colors instead of picking
49
+ # the nearest neighbor.
50
+ #
51
+ # @return [Sketchup::Color, nil]
52
+ #
53
+ # @version SketchUp 2018
54
+ def color_at_uv(u, v, bilinear = false)
55
+ end
56
+
57
+ # The {#colors} method returns an array of {Sketchup::Color} for each pixel in
58
+ # the image.
59
+ #
60
+ # @example
61
+ # image_rep = Sketchup::ImageRep.new
62
+ # image_rep.load_file("/path/to/image.jpg")
63
+ # colors = image_rep.colors
64
+ #
65
+ # @return [Array<Sketchup::Color>, nil]
66
+ #
67
+ # @version SketchUp 2018
68
+ def colors
69
+ end
70
+
71
+ # The {#data} method gets the pixel data for an image in a string of bytes.
72
+ #
73
+ # @example
74
+ # image_rep = Sketchup::ImageRep.new
75
+ # image_rep.load_file("/path/to/image.jpg")
76
+ # byte_string = image_rep.data
77
+ # byte_string.each_byte { |byte| puts byte, ' ' }
78
+ #
79
+ # @note The byte order of the pixels are RGB(A) on macOS and BGR(A) on Windows.
80
+ #
81
+ # @return [String, nil]
82
+ #
83
+ # @version SketchUp 2018
84
+ def data
85
+ end
86
+
87
+ # The {#height} method returns the height of an image.
88
+ #
89
+ # @example
90
+ # image_rep = Sketchup::ImageRep.new
91
+ # image_rep.load_file("/path/to/image.jpg")
92
+ # image_rep.height
93
+ #
94
+ # @return [Integer]
95
+ #
96
+ # @version SketchUp 2018
97
+ def height
98
+ end
99
+
100
+ # The {#initialize} method creates a new image object. The image object will
101
+ # have no data if a path to the image is not provided.
102
+ #
103
+ # @example Default constructor
104
+ # image_rep = Sketchup::ImageRep.new
105
+ # # Use #set_data or #load_file to add image data.
106
+ #
107
+ # @example Construct from file
108
+ # image_rep = Sketchup::ImageRep.new("/path/to/image.jpg")
109
+ #
110
+ # @overload initialize
111
+ #
112
+ #
113
+ # @overload initialize(filepath)
114
+ #
115
+ # @param [String] filepath
116
+ #
117
+ # @raise [ArgumentError] if the file path or image is invalid.
118
+ #
119
+ # @return [Sketchup::ImageRep]
120
+ #
121
+ # @version SketchUp 2018
122
+ def initialize(*args)
123
+ end
124
+
125
+ # The {#load_file} method loads image data from the specified file.
126
+ #
127
+ # @example
128
+ # image_rep = Sketchup::ImageRep.new
129
+ # image_rep.load_file("/path/to/image.jpg")
130
+ #
131
+ # @param [String] filepath
132
+ #
133
+ # @raise [ArgumentError] if the filepath or image is invalid.
134
+ #
135
+ # @version SketchUp 2018
136
+ def load_file(filepath)
137
+ end
138
+
139
+ # The {#row_padding} method returns the size of the row padding of an image
140
+ # in bytes.
141
+ #
142
+ # @example
143
+ # image_rep = Sketchup::ImageRep.new
144
+ # image_rep.load_file("/path/to/image.jpg")
145
+ # image_rep.row_padding
146
+ #
147
+ # @return [Integer]
148
+ #
149
+ # @version SketchUp 2018
150
+ def row_padding
151
+ end
152
+
153
+ # The {#save_file} method saves an image data object to an image file
154
+ # specified by a path.
155
+ #
156
+ # @example
157
+ # image_rep = Sketchup::ImageRep.new
158
+ # image_rep.load_file("/path/to/image1.jpg")
159
+ # # do stuff with the image representation
160
+ # image_rep.save_file("/path/to/save/image2.jpg")
161
+ #
162
+ # @param [String] filepath
163
+ #
164
+ # @version SketchUp 2018
165
+ def save_file(filepath)
166
+ end
167
+
168
+ # The {#set_data} method discards any existing data and sets new pixel data for
169
+ # the {Sketchup::ImageRep}.
170
+ #
171
+ # @example Setting new data
172
+ # image_rep = Sketchup::ImageRep.new
173
+ # width = 800
174
+ # height = 600
175
+ # bpp = 24
176
+ # pixel = [127, 127, 127].pack("C*")
177
+ # pixels = pixel * width * height
178
+ # image_rep.set_data(width, height, bpp, 0, pixels)
179
+ # image_rep.save_file(UI.savepanel)
180
+ #
181
+ # @example Handling system color differences
182
+ # # Generates red image on Mac and blue on Windows.
183
+ # image_rep = Sketchup::ImageRep.new
184
+ # color = Sketchup::Color.new("Red")
185
+ # rgba = color.to_a # Red, green , blue, alpha
186
+ # color_data = rgba.pack("C*")
187
+ # image_rep.set_data(1, 1, 32, 0, color_data)
188
+ # image_rep.save_file(UI.savepanel)
189
+ #
190
+ # # Generates red image on both systems.
191
+ # image_rep = Sketchup::ImageRep.new
192
+ # color = Sketchup::Color.new("Red")
193
+ # color_code = color.to_a # Red, green, blue, alpha
194
+ # if Sketchup.platform == :platform_win
195
+ # # Change order to Blue, green, red, alpha on Windows.
196
+ # color_code = color_code.values_at(2, 1, 0, 3)
197
+ # end
198
+ # color_data = color_code.pack("C*")
199
+ # image_rep.set_data(1, 1, 32, 0, color_data)
200
+ # image_rep.save_file(UI.savepanel)
201
+ #
202
+ # @note The byte order of the pixels are RGB(A) on macOS and BGR(A) on Windows.
203
+ #
204
+ # @note The encoding of the pixel_data {String} parameter should be ASCII-8BIT.
205
+ # Any other encoding could corrupt the binary data. Using
206
+ # `Array#pack("C*")` gives correct encoding.
207
+ #
208
+ # @param [Integer] width
209
+ # The width of the pixel data. Must be greater than 0.
210
+ #
211
+ # @param [Integer] height
212
+ # The height of the pixel data.
213
+ # Must be greater than 0.
214
+ #
215
+ # @param [Integer] bits_per_pixel
216
+ # The bits per pixel for the pixel data.
217
+ # Must be either 8/24/32.
218
+ #
219
+ # @param [Integer] row_padding
220
+ # The row padding for the pixel data which is
221
+ # sized in bytes. Row padding is used to pad each row with zeros so that each
222
+ # scanline on the pixel data will end on the data-type boundary.
223
+ #
224
+ # @param [String] pixel_data
225
+ # The binary string containing the pixel data
226
+ # representing the new image.
227
+ #
228
+ # @raise [ArgumentError] If width, height, bits_per_pixel or pixel_data are
229
+ # invalid.
230
+ #
231
+ # @raise [TypeError] If width, height, bits_per_pixel or pixel_data are wrong
232
+ # data types.
233
+ #
234
+ # @return [Sketchup::ImageRep]
235
+ #
236
+ # @version SketchUp 2018
237
+ def set_data(width, height, bits_per_pixel, row_padding, pixel_data)
238
+ end
239
+
240
+ # The {#size} method gets the total size of the image data in bytes.
241
+ #
242
+ # @example
243
+ # image_rep = Sketchup::ImageRep.new
244
+ # image_rep.load_file("/path/to/image.jpg")
245
+ # data_size = image_rep.size
246
+ #
247
+ # @return [Integer]
248
+ #
249
+ # @version SketchUp 2018
250
+ def size
251
+ end
252
+
253
+ # The {#width} method returns the width of an image.
254
+ #
255
+ # @example
256
+ # image_rep = Sketchup::ImageRep.new
257
+ # image_rep.load_file("/path/to/image.jpg")
258
+ # image_rep.width
259
+ #
260
+ # @return [Integer]
261
+ #
262
+ # @version SketchUp 2018
263
+ def width
264
+ end
265
+
266
+ end