sketchup-api-stubs 0.7.9 → 0.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +157 -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 +182 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +111 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +423 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +693 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +535 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +500 -476
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +267 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +133 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +547 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +678 -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 +751 -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/Dictionary.rb +234 -0
  23. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +683 -517
  24. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  26. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +464 -353
  27. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  28. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  29. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  30. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  31. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  33. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  34. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  35. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +614 -567
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  37. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  38. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +282 -183
  39. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +458 -387
  40. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  41. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +346 -344
  42. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  43. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
  44. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  45. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1565 -1519
  46. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  49. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  50. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  51. data/lib/sketchup-api-stubs/stubs/Length.rb +286 -278
  52. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +196 -144
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +145 -150
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +296 -302
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +473 -478
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +673 -659
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +600 -593
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +252 -257
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +443 -449
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +167 -165
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +403 -406
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1282 -1239
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Environment.rb +406 -0
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Environments.rb +185 -0
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/EnvironmentsObserver.rb +113 -0
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +122 -125
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +1006 -937
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +740 -750
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +289 -282
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +64 -62
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +405 -468
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +432 -406
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +307 -306
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +332 -326
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +380 -422
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +409 -427
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +241 -249
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +55 -48
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/LoadHandler.rb +70 -0
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +1115 -414
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +330 -317
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1714 -1652
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +372 -357
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +133 -130
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +463 -490
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +104 -116
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +939 -797
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +388 -361
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +501 -478
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +385 -361
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +451 -458
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +211 -212
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +259 -255
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Snap.rb +125 -0
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +88 -69
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +263 -217
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +283 -262
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +199 -217
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +924 -834
  143. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  144. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  145. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  146. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +143 -142
  147. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1566 -1311
  148. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +71 -45
  149. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1429 -1377
  150. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  151. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  152. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +399 -389
  153. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +580 -494
  154. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +280 -269
  155. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +258 -241
  156. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +636 -635
  157. data/lib/sketchup-api-stubs/stubs/UI.rb +791 -683
  158. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  159. data/lib/sketchup-api-stubs.rb +1 -1
  160. metadata +10 -24
@@ -1,266 +1,266 @@
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
1
+ # Copyright:: Copyright 2026 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