sketchup-api-stubs 0.7.4 → 0.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +148 -145
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → Array.rb} +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -318
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +523 -492
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -478
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -691
  16. data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -348
  17. data/lib/sketchup-api-stubs/stubs/{languagehandler.rb → LanguageHandler.rb} +93 -92
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -573
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +698 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -174
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +516 -514
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -349
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -371
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -220
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -204
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -694
  43. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  44. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  48. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  49. data/lib/sketchup-api-stubs/stubs/{length.rb → Length.rb} +278 -278
  50. data/lib/sketchup-api-stubs/stubs/{numeric.rb → Numeric.rb} +249 -249
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -157
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +619 -562
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -593
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +426 -329
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1205 -1119
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +272 -0
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -750
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -697
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +292 -285
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -409
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +407 -393
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -285
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +477 -456
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +260 -257
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +837 -829
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -61
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1317 -1301
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
  140. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1360 -1310
  141. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  142. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  143. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -310
  144. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +496 -356
  145. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -229
  146. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  147. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
  148. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -667
  149. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
  150. data/lib/sketchup-api-stubs.rb +1 -1
  151. metadata +15 -12
@@ -1,750 +1,937 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # Faces in SketchUp are flat, 2-sided polygons with 3 or more sides.
5
- #
6
- # @version SketchUp 6.0
7
- class Sketchup::Face < Sketchup::Drawingelement
8
-
9
- # Constants
10
-
11
- PointInside = nil # Stub value.
12
- PointNotOnPlane = nil # Stub value.
13
- PointOnEdge = nil # Stub value.
14
- PointOnFace = nil # Stub value.
15
- PointOnVertex = nil # Stub value.
16
- PointOutside = nil # Stub value.
17
- PointUnknown = nil # Stub value.
18
-
19
- # Instance Methods
20
-
21
- # The all_connected method retrieves all of the entities connected to a face.
22
- #
23
- # @example
24
- # depth = 100
25
- # width = 100
26
- # model = Sketchup.active_model
27
- # entities = model.active_entities
28
- # pts = []
29
- # pts[0] = [0, 0, 0]
30
- # pts[1] = [width, 0, 0]
31
- # pts[2] = [width, depth, 0]
32
- # pts[3] = [0, depth, 0]
33
- #
34
- # # Add the face to the entities in the model
35
- # face = entities.add_face(pts)
36
- # connected = face.all_connected
37
- #
38
- # @return [Array<Sketchup::Entity>] the entities connected to the face
39
- #
40
- # @version SketchUp 6.0
41
- def all_connected
42
- end
43
-
44
- # The area method is used to retrieve the area of a face in current units.
45
- #
46
- # You can pass in an optional Transformation (or an array that can represent a
47
- # transformation), to correct for a parent group's transformation. For example,
48
- # if a face is inside of a group that is scaled to 200%, the area method will
49
- # return the unscaled area of the face. So by passing a 200% transformation
50
- # object to this method, you can account for that to get the "visual" area
51
- # of the face.
52
- #
53
- # @example
54
- # depth = 100
55
- # width = 100
56
- # model = Sketchup.active_model
57
- # entities = model.active_entities
58
- # pts = []
59
- # pts[0] = [0, 0, 0]
60
- # pts[1] = [width, 0, 0]
61
- # pts[2] = [width, depth, 0]
62
- # pts[3] = [0, depth, 0]
63
- # # Add the face to the entities in the model
64
- # face = entities.add_face(pts)
65
- # area = face.area
66
- #
67
- # @overload area
68
- #
69
- # @return [Float] the area of the face in current units (if successful)
70
- #
71
- # @overload area(transform)
72
- #
73
- # @param transform [Geom::Transformation] A Transformation object or array
74
- # that can be interpreted as a Transformation object.
75
- # @return [Float] the area of the face in current units (if successful)
76
- #
77
- # @version SketchUp 6.0
78
- def area(*args)
79
- end
80
-
81
- # The back_material method is used to retrieve the material assigned to the
82
- # back side of the face.
83
- #
84
- # @example
85
- # depth = 100
86
- # width = 100
87
- # model = Sketchup.active_model
88
- # entities = model.active_entities
89
- # pts = []
90
- # pts[0] = [0, 0, 0]
91
- # pts[1] = [width, 0, 0]
92
- # pts[2] = [width, depth, 0]
93
- # pts[3] = [0, depth, 0]
94
- #
95
- # # Add the face to the entities in the model
96
- # face = entities.add_face(pts)
97
- #
98
- # # Add a material to the back face, then check to see that it was added
99
- # face.back_material = "red"
100
- # material = face.back_material
101
- #
102
- # @return [Sketchup::Material, nil] a Material object representing the material
103
- # on the back of the face (if successful)
104
- #
105
- # @version SketchUp 6.0
106
- def back_material
107
- end
108
-
109
- # The back_material= method is used to set the material assigned to the back
110
- # side of the face.
111
- #
112
- # @example
113
- # depth = 100
114
- # width = 100
115
- # model = Sketchup.active_model
116
- # entities = model.active_entities
117
- # pts = []
118
- # pts[0] = [0, 0, 0]
119
- # pts[1] = [width, 0, 0]
120
- # pts[2] = [width, depth, 0]
121
- # pts[3] = [0, depth, 0]
122
- # # Add the face to the entities in the model
123
- # face = entities.add_face(pts)
124
- # status = face.back_material = "red"
125
- #
126
- # @param [Sketchup::Material] material
127
- # A Material object or the name of a valid material.
128
- #
129
- # @return [Sketchup::Material] the name of the valid material or the new
130
- # Material object (if successful)
131
- #
132
- # @version SketchUp 6.0
133
- def back_material=(material)
134
- end
135
-
136
- # The classify_point method is used to determine if a given Point3d is on the
137
- # referenced Face.
138
- #
139
- # It is important that return value comparisons be made against the
140
- # symbolic constants (i.e. {Sketchup::Face::PointUnknown},
141
- # {Sketchup::Face::PointInside}, {Sketchup::Face::PointOnVertex}, etc.) rather
142
- # than the absolute integer values as these values may change from one
143
- # release to the next.
144
- #
145
- # @example
146
- # model = Sketchup.active_model
147
- # entities = model.active_entities
148
- # pts = []
149
- # pts[0] = [0, 0, 0]
150
- # pts[1] = [9, 0, 0]
151
- # pts[2] = [9, 9, 0]
152
- # pts[3] = [0, 9, 0]
153
- #
154
- # # Add the face to the entities in the model
155
- # face = entities.add_face(pts)
156
- #
157
- # # Check a point that should be outside the face.
158
- # pt = Geom::Point3d.new(50, 50, 0)
159
- # result = face.classify_point(pt)
160
- # if result == Sketchup::Face::PointOutside
161
- # puts "#{pt.to_s} is outside the face"
162
- # end
163
- #
164
- # # Check a point that should be outside inside the face.
165
- # pt = Geom::Point3d.new(1, 1, 0)
166
- # result = face.classify_point(pt)
167
- # if result == Sketchup::Face::PointInside
168
- # puts "#{pt.to_s} is inside the face"
169
- # end
170
- #
171
- # # Check a point that should be on the vertex of the face.
172
- # pt = Geom::Point3d.new(0, 0, 0)
173
- # result = face.classify_point(pt)
174
- # if result == Sketchup::Face::PointOnVertex
175
- # puts "#{pt.to_s} is on a vertex"
176
- # end
177
- #
178
- # # Check a point that should be on the edge of the face.
179
- # pt = Geom::Point3d.new(0, 1, 0)
180
- # result = face.classify_point(pt)
181
- # if result == Sketchup::Face::PointOnEdge
182
- # puts "#{pt.to_s} is on an edge of the face"
183
- # end
184
- #
185
- # # Check a point that should be off the plane of the face.
186
- # pt = Geom::Point3d.new(1, 1, 10)
187
- # result = face.classify_point(pt)
188
- # if result == Sketchup::Face::PointNotOnPlane
189
- # puts "#{pt.to_s} is not on the same plane as the face"
190
- # end
191
- #
192
- # @param [Geom::Point3d] point
193
- # A Point3d.
194
- #
195
- # @return [Integer] an integer describing where a Point3d is in
196
- # relation to the referenced Face.
197
- #
198
- # @version SketchUp 6.0
199
- def classify_point(point)
200
- end
201
-
202
- # The edges method is used to get an array of edges that bound the face.
203
- #
204
- # @example
205
- # depth = 100
206
- # width = 100
207
- # model = Sketchup.active_model
208
- # entities = model.active_entities
209
- # pts = []
210
- # pts[0] = [0, 0, 0]
211
- # pts[1] = [width, 0, 0]
212
- # pts[2] = [width, depth, 0]
213
- # pts[3] = [0, depth, 0]
214
- # # Add the face to the entities in the model
215
- # face = entities.add_face(pts)
216
- # edges = face.edges
217
- #
218
- # @return [Array<Sketchup::Edge>] an array of Edge objects (if successful)
219
- #
220
- # @version SketchUp 6.0
221
- def edges
222
- end
223
-
224
- # The {#followme} method is used to create a shape by making the face follow
225
- # along an array of edges.
226
- #
227
- # @example
228
- # model = Sketchup.active_model
229
- # entities = model.active_entities
230
- #
231
- # depth = 100
232
- # width = 100
233
- #
234
- # # Add the face to the entities in the model
235
- # points = [
236
- # Geom::Point3d.new(0, 0, 0),
237
- # Geom::Point3d.new(width, 0, 0),
238
- # Geom::Point3d.new(width, depth, 0),
239
- # Geom::Point3d.new(0, depth, 0)
240
- # ]
241
- # face = entities.add_face(points)
242
- #
243
- # # Add the line which we will "follow" to the entities in the model
244
- # point1 = Geom::Point3d.new(0, 0, 0)
245
- # point2 = Geom::Point3d.new(0, 0, 100)
246
- # edge = entities.add_line(point1, point2)
247
- # face.followme(edge)
248
- #
249
- # @overload followme(edges)
250
- #
251
- # @param [Array<Sketchup::Edge>] edges An array of edge objects to follow.
252
- # @return [Boolean]
253
- #
254
- # @overload followme(edge)
255
- #
256
- # @param [Sketchup::Edge] edge An edge to follow.
257
- # @return [Boolean]
258
- #
259
- # @version SketchUp 6.0
260
- def followme(*args)
261
- end
262
-
263
- # The get_UVHelper object is used to retrieve a UVHelper object for use in
264
- # texture manipulation on a face.
265
- #
266
- # @example
267
- # model = Sketchup.active_model
268
- # entities = model.active_entities
269
- # pts = []
270
- # pts[0] = [0, 0, 0]
271
- # pts[1] = [9, 0, 0]
272
- # pts[2] = [9, 9, 0]
273
- # pts[3] = [0, 9, 0]
274
- #
275
- # # Add the face to the entities in the model
276
- # face = entities.add_face(pts)
277
- # tw = Sketchup.create_texture_writer
278
- # uvHelp = face.get_UVHelper(true, true, tw)
279
- #
280
- # @overload get_UVHelper(front = true, back = true)
281
- #
282
- # @param [Boolean] front
283
- # True if you want the texture coordinates for the front
284
- # face, false if not.
285
- #
286
- # @param [Boolean] back
287
- # True if you want the texture coordinates for the back
288
- # face, false if not.
289
- #
290
- # @overload get_UVHelper(front = true, back = true, texturewriter)
291
- #
292
- # @param [Boolean] front
293
- # True if you want the texture coordinates for the front
294
- # face, false if not.
295
- #
296
- # @param [Boolean] back
297
- # True if you want the texture coordinates for the back
298
- # face, false if not.
299
- #
300
- # @param [Sketchup::TextureWriter] texturewriter
301
- # An optional TextureWriter object.
302
- #
303
- # @return [Sketchup::UVHelper]
304
- #
305
- # @version SketchUp 6.0
306
- def get_UVHelper(*args)
307
- end
308
-
309
- # The get_glued_instances method returns an Array any ComponentInstances
310
- # that are glued to the face.
311
- #
312
- # @example
313
- # # Create a series of points that define a new face.
314
- # model = Sketchup.active_model
315
- # entities = model.active_entities
316
- # pts = []
317
- # pts[0] = [0, 0, 0]
318
- # pts[1] = [9, 0, 0]
319
- # pts[2] = [9, 9, 0]
320
- # pts[3] = [0, 9, 0]
321
- #
322
- # # Add the face to the entities in the model
323
- # face = entities.add_face(pts)
324
- # glued_array = face.get_glued_instances
325
- #
326
- # @return [Array<Sketchup::ComponentInstance, Sketchup::Group, Sketchup::Image>] An array of ComponentInstance objects that
327
- # are currently glued to the face.
328
- #
329
- # @version SketchUp 7.0 M1
330
- def get_glued_instances
331
- end
332
-
333
- # The get_texture_projection method will return a vector representing the
334
- # projection for either the front or back side of the face.
335
- #
336
- # @example
337
- # model = Sketchup.active_model
338
- # entities = model.active_entities
339
- # materials = model.materials
340
- #
341
- # # Create a face and add it to the model entities
342
- # pts = []
343
- # pts[0] = [0, 0, 1]
344
- # pts[1] = [10, 0, 1]
345
- # pts[2] = [10, 10, 1]
346
- # face = entities.add_face(pts)
347
- #
348
- # # Export an image to use as a texture
349
- # path = Sketchup.temp_dir
350
- # full_name = File.join(path, "temp_image.jpg")
351
- # model.active_view.write_image(full_name, 500, 500, false, 0.0)
352
- #
353
- # # Create a material and assign the texture to it
354
- # material = materials.add("Test Material")
355
- # material.texture = full_name
356
- #
357
- # # Assign the new material to our face we created
358
- # face.material = material
359
- #
360
- # # Set the projection of the applied material
361
- # face.set_texture_projection(face.normal, true)
362
- #
363
- # # Get the projection of the applied material
364
- # vector = face.get_texture_projection(true)
365
- #
366
- # @param [Boolean] frontside
367
- # true for front side, false for back side.
368
- #
369
- # @return [Geom::Vector3d] a vector on success, nil on failure.
370
- #
371
- # @version SketchUp 2014
372
- def get_texture_projection(frontside)
373
- end
374
-
375
- # The loops method is used to get an array of all of the loops that bound the
376
- # face.
377
- #
378
- # @example
379
- # depth = 100
380
- # width = 100
381
- # model = Sketchup.active_model
382
- # entities = model.active_entities
383
- # pts = []
384
- # pts[0] = [0, 0, 0]
385
- # pts[1] = [width, 0, 0]
386
- # pts[2] = [width, depth, 0]
387
- # pts[3] = [0, depth, 0]
388
- #
389
- # # Add the face to the entities in the model
390
- # face = entities.add_face(pts)
391
- # loops = face.loops
392
- #
393
- # @return [Array<Sketchup::Loop>] an array of Loop objects if successful
394
- #
395
- # @version SketchUp 6.0
396
- def loops
397
- end
398
-
399
- # The material method is used to retrieve the material assigned to the
400
- # front of the face. (This method is inherited from the Drawingelement
401
- # parent class.)
402
- #
403
- # @example
404
- # depth = 100
405
- # width = 100
406
- # model = Sketchup.active_model
407
- # entities = model.active_entities
408
- # pts = []
409
- # pts[0] = [0, 0, 0]
410
- # pts[1] = [width, 0, 0]
411
- # pts[2] = [width, depth, 0]
412
- # pts[3] = [0, depth, 0]
413
- #
414
- # # Add the face to the entities in the model
415
- # face = entities.add_face(pts)
416
- #
417
- # # Add a material to the face, then check to see that it was added
418
- # face.material = "red"
419
- # material = face.material
420
- #
421
- # @return [Sketchup::Material, nil] a Material object representing the material
422
- # on the front of the face (if successful)
423
- #
424
- # @version SketchUp 6.0
425
- def material
426
- end
427
-
428
- # The material= method is used to set the material assigned to the front
429
- # side of the face. (This method is inherited from the Drawingelement
430
- # parent class.)
431
- #
432
- # @example
433
- # depth = 100
434
- # width = 100
435
- # model = Sketchup.active_model
436
- # entities = model.active_entities
437
- # pts = []
438
- # pts[0] = [0, 0, 0]
439
- # pts[1] = [width, 0, 0]
440
- # pts[2] = [width, depth, 0]
441
- # pts[3] = [0, depth, 0]
442
- # # Add the face to the entities in the model
443
- # face = entities.add_face(pts)
444
- # status = face.material = "red"
445
- #
446
- # @param [Sketchup::Material] material
447
- # A Material object or the name of a valid material.
448
- #
449
- # @return [Sketchup::Material] the name of the valid material or the new
450
- # Material object (if successful)
451
- #
452
- # @version SketchUp 6.0
453
- def material=(material)
454
- end
455
-
456
- # The mesh method creates a polygon mesh that represents the face. See the
457
- # {Geom::PolygonMesh} class for more information.
458
- #
459
- # Valid flags are:
460
- #
461
- # - +0+: Include PolygonMeshPoints,
462
- # - +1+: Include PolygonMeshUVQFront,
463
- # - +2+: Include PolygonMeshUVQBack,
464
- # - +4+: Include PolygonMeshNormals.
465
- #
466
- # Use bitwise OR to combine flags. A value of +7+ will include all
467
- # flags, for example.
468
- #
469
- # @example
470
- # depth = 100
471
- # width = 100
472
- # model = Sketchup.active_model
473
- # entities = model.active_entities
474
- # pts = []
475
- # pts[0] = [0, 0, 0]
476
- # pts[1] = [width, 0, 0]
477
- # pts[2] = [width, depth, 0]
478
- # pts[3] = [0, depth, 0]
479
- #
480
- # # Add the face to the entities in the model
481
- # face = entities.add_face(pts)
482
- #
483
- # kPoints = 0
484
- # kUVQFront = 1
485
- # kUVQBack = 2
486
- # kNormals = 4
487
- # flags = kPoints | kUVQFront | kUVQBack | kNormals # equals to 7
488
- # mesh = face.mesh(flags)
489
- #
490
- # @param [Integer] flags
491
- # One or more flags used to generate a mesh.
492
- #
493
- # @return [Geom::PolygonMesh]
494
- #
495
- # @version SketchUp 6.0
496
- def mesh(flags = 0)
497
- end
498
-
499
- # The normal method is used to retrieve the 3D vector normal to the face in
500
- # the front direction.
501
- #
502
- # @example
503
- # depth = 100
504
- # width = 100
505
- # model = Sketchup.active_model
506
- # entities = model.active_entities
507
- # pts = []
508
- # pts[0] = [0, 0, 0]
509
- # pts[1] = [width, 0, 0]
510
- # pts[2] = [width, depth, 0]
511
- # pts[3] = [0, depth, 0]
512
- #
513
- # # Add the face to the entities in the model
514
- # face = entities.add_face(pts)
515
- # normal = face.normal
516
- #
517
- # @return [Geom::Vector3d] a Vector3d object if successful
518
- #
519
- # @version SketchUp 6.0
520
- def normal
521
- end
522
-
523
- # This method is used to retrieve the outer loop that bounds the face.
524
- #
525
- # @example
526
- # # Create a series of points that define a new face.
527
- # model = Sketchup.active_model
528
- # entities = model.active_entities
529
- # pts = []
530
- # pts[0] = [0, 0, 0]
531
- # pts[1] = [9, 0, 0]
532
- # pts[2] = [9, 9, 0]
533
- # pts[3] = [0, 9, 0]
534
- #
535
- # # Add the face to the entities in the model
536
- # face = entities.add_face(pts)
537
- # loop = face.outer_loop
538
- #
539
- # @return [Sketchup::Loop] a Loop object representing the outer loop (if
540
- # successful)
541
- #
542
- # @version SketchUp 6.0
543
- def outer_loop
544
- end
545
-
546
- # The plane method is used to retrieve the plane of the face. See the Array
547
- # class for information on how planes are stored.
548
- #
549
- # @example
550
- # depth = 100
551
- # width = 100
552
- # model = Sketchup.active_model
553
- # entities = model.active_entities
554
- # pts = []
555
- # pts[0] = [0, 0, 0]
556
- # pts[1] = [width, 0, 0]
557
- # pts[2] = [width, depth, 0]
558
- # pts[3] = [0, depth, 0]
559
- #
560
- # # Add the face to the entities in the model
561
- # face = entities.add_face(pts)
562
- # plane = face.plane
563
- #
564
- # @return [Array(Float, Float, Float, Float)] a plane that contains the face (if successful)
565
- #
566
- # @version SketchUp 6.0
567
- def plane
568
- end
569
-
570
- # The position_material method is used to position a material on a face.
571
- #
572
- # The pt_array must contain 2, 4, 6 or 8 points. The points are used in pairs
573
- # to tell where a point in the texture image is positioned on the Face. The
574
- # first point in each pair is a 3D point in the model. It should be a point on
575
- # the Face. The second point in each pair of points is a 2D point that gives
576
- # the (u,v) coordinates of a point in the image to match up with the 3D point.
577
- #
578
- # @example
579
- # model = Sketchup.active_model
580
- # entities = model.active_entities
581
- #
582
- # # Create a face and add it to the model entities
583
- # pts = []
584
- # pts[0] = [0, 0, 1]
585
- # pts[1] = [9, 0, 1]
586
- # pts[2] = [9, 9, 1]
587
- # pts[3] = [0, 9, 1]
588
- # face = entities.add_face(pts)
589
- #
590
- # # Export an image to use as a texture
591
- # path = Sketchup.temp_dir
592
- # full_name = File.join(path, "temp_image.jpg")
593
- # model.active_view.write_image(full_name, 500, 500, false, 0.0)
594
- #
595
- # # Create a material and assign the texture to it
596
- # material = model.materials.add("Test Material")
597
- # material.texture = full_name
598
- #
599
- # # Assign the new material to our face we created
600
- # face.material = material
601
- #
602
- # pt_array = []
603
- # pt_array[0] = Geom::Point3d.new(3,0,0)
604
- # pt_array[1] = Geom::Point3d.new(0,0,0)
605
- # on_front = true
606
- # face.position_material(material, pt_array, on_front)
607
- #
608
- # @param [Sketchup::Material] material
609
- # a Material object.
610
- #
611
- # @param [Array<Geom::Point3d>] pt_array
612
- # An array of Point3d objects used to position the material.
613
- #
614
- # @param [Boolean] o_front
615
- # true to position the texture on the front of the Face or
616
- # false to position it on the back of the Face.
617
- #
618
- # @return [Sketchup::Face, false] the face upon success, false upon failure.
619
- #
620
- # @version SketchUp 6.0
621
- def position_material(material, pt_array, o_front)
622
- end
623
-
624
- # The pushpull method is used to perform a push/pull on a face.
625
- #
626
- # The distance is measured in the direction that the face normal is pointing.
627
- #
628
- # @example
629
- # depth = 100
630
- # width = 100
631
- # model = Sketchup.active_model
632
- # entities = model.active_entities
633
- # pts = []
634
- # pts[0] = [0, 0, 0]
635
- # pts[1] = [width, 0, 0]
636
- # pts[2] = [width, depth, 0]
637
- # pts[3] = [0, depth, 0]
638
- # # Add the face to the entities in the model
639
- # face = entities.add_face(pts)
640
- # status = face.pushpull(100, true)
641
- #
642
- # @param [Numeric] distance
643
- # The distance, in current units, to push/pull the face.
644
- #
645
- # @param [Boolean] copy
646
- # Create a new push/pull starting face if true (equivalent
647
- # of pressing CTRL while in SketchUp), do not create a
648
- # push/pull starting face if false.
649
- #
650
- # @return [nil]
651
- #
652
- # @version SketchUp 6.0
653
- def pushpull(distance, copy = false)
654
- end
655
-
656
- # The reverse! method is used to reverse the face's orientation, meaning the
657
- # front becomes the back.
658
- #
659
- # @example
660
- # depth = 100
661
- # width = 100
662
- # model = Sketchup.active_model
663
- # entities = model.active_entities
664
- # pts = []
665
- # pts[0] = [0, 0, 0]
666
- # pts[1] = [width, 0, 0]
667
- # pts[2] = [width, depth, 0]
668
- # pts[3] = [0, depth, 0]
669
- # # Add the face to the entities in the model
670
- # face = entities.add_face(pts)
671
- # status = face.reverse!
672
- #
673
- # @return [Sketchup::Face, false] the reversed Face object if successful, false if
674
- # unsuccessful
675
- #
676
- # @version SketchUp 6.0
677
- def reverse!
678
- end
679
-
680
- # The set_texture_projection method is used to set the texture projection
681
- # direction.
682
- #
683
- # @deprecated This function never worked right. It's not possible to control
684
- # the position and orientation of the texture.
685
- #
686
- # @example
687
- # model = Sketchup.active_model
688
- # entities = model.active_entities
689
- # materials = model.materials
690
- #
691
- # # Create a face and add it to the model entities
692
- # pts = []
693
- # pts[0] = [0, 0, 1]
694
- # pts[1] = [10, 0, 1]
695
- # pts[2] = [10, 10, 1]
696
- # face = entities.add_face(pts)
697
- #
698
- # # Export an image to use as a texture
699
- # path = Sketchup.temp_dir
700
- # full_name = File.join(path, "temp_image.jpg")
701
- # model.active_view.write_image(full_name, 500, 500, false, 0.0)
702
- #
703
- # # Create a material and assign the testure to it.
704
- # material = materials.add("Test Material")
705
- # material.texture = full_name
706
- #
707
- # # Assign the new material to our face we created
708
- # face.material = material
709
- #
710
- # # Returns nil if not successful, path if successful
711
- # result = face.set_texture_projection(face.normal, true)
712
- #
713
- # @param [Geom::Vector3d] vector
714
- # representing the direction of the projection. Use nil
715
- # to remove the projection.
716
- #
717
- # @param [Boolean] frontside
718
- # true for front side, false for back side.
719
- #
720
- # @return [Boolean] true on success
721
- #
722
- # @version SketchUp 2014
723
- def set_texture_projection(vector, frontside)
724
- end
725
-
726
- # The vertices method is used to get an array of all of the vertices that
727
- # bound the face.
728
- #
729
- # @example
730
- # depth = 100
731
- # width = 100
732
- # model = Sketchup.active_model
733
- # entities = model.active_entities
734
- # pts = []
735
- # pts[0] = [0, 0, 0]
736
- # pts[1] = [width, 0, 0]
737
- # pts[2] = [width, depth, 0]
738
- # pts[3] = [0, depth, 0]
739
- #
740
- # # Add the face to the entities in the model
741
- # face = entities.add_face(pts)
742
- # vertices = face.vertices
743
- #
744
- # @return [Array<Sketchup::Vertex>] an array of Vertex objects if successful
745
- #
746
- # @version SketchUp 6.0
747
- def vertices
748
- end
749
-
750
- end
1
+ # Copyright:: Copyright 2022 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # Faces in SketchUp are flat, 2-sided polygons with 3 or more sides.
5
+ #
6
+ # @version SketchUp 6.0
7
+ class Sketchup::Face < Sketchup::Drawingelement
8
+
9
+ # Constants
10
+
11
+ PointInside = nil # Stub value.
12
+ PointNotOnPlane = nil # Stub value.
13
+ PointOnEdge = nil # Stub value.
14
+ PointOnFace = nil # Stub value.
15
+ PointOnVertex = nil # Stub value.
16
+ PointOutside = nil # Stub value.
17
+ PointUnknown = nil # Stub value.
18
+
19
+ # Instance Methods
20
+
21
+ # The all_connected method retrieves all of the entities connected to a face.
22
+ #
23
+ # @example
24
+ # depth = 100
25
+ # width = 100
26
+ # model = Sketchup.active_model
27
+ # entities = model.active_entities
28
+ # pts = []
29
+ # pts[0] = [0, 0, 0]
30
+ # pts[1] = [width, 0, 0]
31
+ # pts[2] = [width, depth, 0]
32
+ # pts[3] = [0, depth, 0]
33
+ #
34
+ # # Add the face to the entities in the model
35
+ # face = entities.add_face(pts)
36
+ # connected = face.all_connected
37
+ #
38
+ # @return [Array<Sketchup::Entity>] the entities connected to the face
39
+ #
40
+ # @version SketchUp 6.0
41
+ def all_connected
42
+ end
43
+
44
+ # The area method is used to retrieve the area of a face.
45
+ #
46
+ # You can pass in an optional Transformation (or an array that can represent a
47
+ # transformation), to correct for a parent group's transformation. For example,
48
+ # if a face is inside of a group that is scaled to 200%, the area method will
49
+ # return the unscaled area of the face. So by passing a 200% transformation
50
+ # object to this method, you can account for that to get the "visual" area
51
+ # of the face.
52
+ #
53
+ # @example
54
+ # depth = 100
55
+ # width = 100
56
+ # model = Sketchup.active_model
57
+ # entities = model.active_entities
58
+ # pts = []
59
+ # pts[0] = [0, 0, 0]
60
+ # pts[1] = [width, 0, 0]
61
+ # pts[2] = [width, depth, 0]
62
+ # pts[3] = [0, depth, 0]
63
+ # # Add the face to the entities in the model
64
+ # face = entities.add_face(pts)
65
+ # area = face.area
66
+ #
67
+ # @overload area
68
+ #
69
+ # @return [Float] the area of the face in square inches.
70
+ #
71
+ # @overload area(transform)
72
+ #
73
+ # @param [Geom::Transformation] transform
74
+ # A Transformation object or array that can be interpreted as a
75
+ # Transformation object.
76
+ # @return [Float] the area of the face in square inches.
77
+ #
78
+ # @version SketchUp 6.0
79
+ def area(*args)
80
+ end
81
+
82
+ # The back_material method is used to retrieve the material assigned to the
83
+ # back side of the face.
84
+ #
85
+ # @example
86
+ # depth = 100
87
+ # width = 100
88
+ # model = Sketchup.active_model
89
+ # entities = model.active_entities
90
+ # pts = []
91
+ # pts[0] = [0, 0, 0]
92
+ # pts[1] = [width, 0, 0]
93
+ # pts[2] = [width, depth, 0]
94
+ # pts[3] = [0, depth, 0]
95
+ #
96
+ # # Add the face to the entities in the model
97
+ # face = entities.add_face(pts)
98
+ #
99
+ # # Add a material to the back face, then check to see that it was added
100
+ # face.back_material = "red"
101
+ # material = face.back_material
102
+ #
103
+ # @return [Sketchup::Material, nil] a Material object representing the material
104
+ # on the back of the face (if successful)
105
+ #
106
+ # @version SketchUp 6.0
107
+ def back_material
108
+ end
109
+
110
+ # The back_material= method is used to set the material assigned to the back
111
+ # side of the face.
112
+ #
113
+ # @example
114
+ # depth = 100
115
+ # width = 100
116
+ # model = Sketchup.active_model
117
+ # entities = model.active_entities
118
+ # pts = []
119
+ # pts[0] = [0, 0, 0]
120
+ # pts[1] = [width, 0, 0]
121
+ # pts[2] = [width, depth, 0]
122
+ # pts[3] = [0, depth, 0]
123
+ # # Add the face to the entities in the model
124
+ # face = entities.add_face(pts)
125
+ # status = face.back_material = "red"
126
+ #
127
+ # @param [Sketchup::Material] material
128
+ # A Material object or the name of a valid material.
129
+ #
130
+ # @return [Sketchup::Material] the name of the valid material or the new
131
+ # Material object (if successful)
132
+ #
133
+ # @version SketchUp 6.0
134
+ def back_material=(material)
135
+ end
136
+
137
+ # The classify_point method is used to determine if a given Point3d is on the
138
+ # referenced Face.
139
+ #
140
+ # It is important that return value comparisons be made against the
141
+ # symbolic constants (i.e. {Sketchup::Face::PointUnknown},
142
+ # {Sketchup::Face::PointInside}, {Sketchup::Face::PointOnVertex}, etc.) rather
143
+ # than the absolute integer values as these values may change from one
144
+ # release to the next.
145
+ #
146
+ # @example
147
+ # model = Sketchup.active_model
148
+ # entities = model.active_entities
149
+ # pts = []
150
+ # pts[0] = [0, 0, 0]
151
+ # pts[1] = [9, 0, 0]
152
+ # pts[2] = [9, 9, 0]
153
+ # pts[3] = [0, 9, 0]
154
+ #
155
+ # # Add the face to the entities in the model
156
+ # face = entities.add_face(pts)
157
+ #
158
+ # # Check a point that should be outside the face.
159
+ # pt = Geom::Point3d.new(50, 50, 0)
160
+ # result = face.classify_point(pt)
161
+ # if result == Sketchup::Face::PointOutside
162
+ # puts "#{pt.to_s} is outside the face"
163
+ # end
164
+ #
165
+ # # Check a point that should be outside inside the face.
166
+ # pt = Geom::Point3d.new(1, 1, 0)
167
+ # result = face.classify_point(pt)
168
+ # if result == Sketchup::Face::PointInside
169
+ # puts "#{pt.to_s} is inside the face"
170
+ # end
171
+ #
172
+ # # Check a point that should be on the vertex of the face.
173
+ # pt = Geom::Point3d.new(0, 0, 0)
174
+ # result = face.classify_point(pt)
175
+ # if result == Sketchup::Face::PointOnVertex
176
+ # puts "#{pt.to_s} is on a vertex"
177
+ # end
178
+ #
179
+ # # Check a point that should be on the edge of the face.
180
+ # pt = Geom::Point3d.new(0, 1, 0)
181
+ # result = face.classify_point(pt)
182
+ # if result == Sketchup::Face::PointOnEdge
183
+ # puts "#{pt.to_s} is on an edge of the face"
184
+ # end
185
+ #
186
+ # # Check a point that should be off the plane of the face.
187
+ # pt = Geom::Point3d.new(1, 1, 10)
188
+ # result = face.classify_point(pt)
189
+ # if result == Sketchup::Face::PointNotOnPlane
190
+ # puts "#{pt.to_s} is not on the same plane as the face"
191
+ # end
192
+ #
193
+ # @param [Geom::Point3d] point
194
+ # A Point3d.
195
+ #
196
+ # @return [Integer] an integer describing where a Point3d is in
197
+ # relation to the referenced Face.
198
+ #
199
+ # @version SketchUp 6.0
200
+ def classify_point(point)
201
+ end
202
+
203
+ # The {#clear_texture_position} method is used to remove any explicit
204
+ # texture positioning for a face and have SketchUp display it with the
205
+ # default texture positioning.
206
+ #
207
+ # @param [Boolean] front
208
+ # +true+ Clears on the front side of the face, +false+
209
+ # the back side.
210
+ #
211
+ # @version SketchUp 2022.0
212
+ def clear_texture_position(front)
213
+ end
214
+
215
+ # The {#clear_texture_projection} method is used to clear the texture
216
+ # projection. This is similar to toggling off Projection from the Position
217
+ # Texture tool in the UI.
218
+ #
219
+ # @param [Boolean] frontside
220
+ # +true+ for front side, +false+ for back side.
221
+ #
222
+ # @see #position_material
223
+ #
224
+ # @see #get_texture_projection
225
+ #
226
+ # @version SketchUp 2021.1
227
+ def clear_texture_projection(frontside)
228
+ end
229
+
230
+ # The edges method is used to get an array of edges that bound the face.
231
+ #
232
+ # @example
233
+ # depth = 100
234
+ # width = 100
235
+ # model = Sketchup.active_model
236
+ # entities = model.active_entities
237
+ # pts = []
238
+ # pts[0] = [0, 0, 0]
239
+ # pts[1] = [width, 0, 0]
240
+ # pts[2] = [width, depth, 0]
241
+ # pts[3] = [0, depth, 0]
242
+ # # Add the face to the entities in the model
243
+ # face = entities.add_face(pts)
244
+ # edges = face.edges
245
+ #
246
+ # @return [Array<Sketchup::Edge>] an array of Edge objects (if successful)
247
+ #
248
+ # @version SketchUp 6.0
249
+ def edges
250
+ end
251
+
252
+ # The {#followme} method is used to create a shape by making the face follow
253
+ # along an array of edges.
254
+ #
255
+ # @example
256
+ # model = Sketchup.active_model
257
+ # entities = model.active_entities
258
+ #
259
+ # depth = 100
260
+ # width = 100
261
+ #
262
+ # # Add the face to the entities in the model
263
+ # points = [
264
+ # Geom::Point3d.new(0, 0, 0),
265
+ # Geom::Point3d.new(width, 0, 0),
266
+ # Geom::Point3d.new(width, depth, 0),
267
+ # Geom::Point3d.new(0, depth, 0)
268
+ # ]
269
+ # face = entities.add_face(points)
270
+ #
271
+ # # Add the line which we will "follow" to the entities in the model
272
+ # point1 = Geom::Point3d.new(0, 0, 0)
273
+ # point2 = Geom::Point3d.new(0, 0, 100)
274
+ # edge = entities.add_line(point1, point2)
275
+ # face.followme(edge)
276
+ #
277
+ # @overload followme(edges)
278
+ #
279
+ # @param [Array<Sketchup::Edge>] edges An array of edge objects to follow.
280
+ # @return [Boolean]
281
+ #
282
+ # @overload followme(edge)
283
+ #
284
+ # @param [Sketchup::Edge] edge An edge to follow.
285
+ # @return [Boolean]
286
+ #
287
+ # @version SketchUp 6.0
288
+ def followme(*args)
289
+ end
290
+
291
+ # The get_UVHelper object is used to retrieve a UVHelper object for use in
292
+ # texture manipulation on a face.
293
+ #
294
+ # @example
295
+ # model = Sketchup.active_model
296
+ # entities = model.active_entities
297
+ # pts = []
298
+ # pts[0] = [0, 0, 0]
299
+ # pts[1] = [9, 0, 0]
300
+ # pts[2] = [9, 9, 0]
301
+ # pts[3] = [0, 9, 0]
302
+ #
303
+ # # Add the face to the entities in the model
304
+ # face = entities.add_face(pts)
305
+ # tw = Sketchup.create_texture_writer
306
+ # uvHelp = face.get_UVHelper(true, true, tw)
307
+ #
308
+ # @overload get_UVHelper(front = true, back = true)
309
+ #
310
+ # @param [Boolean] front
311
+ # True if you want the texture coordinates for the front
312
+ # face, false if not.
313
+ #
314
+ # @param [Boolean] back
315
+ # True if you want the texture coordinates for the back
316
+ # face, false if not.
317
+ #
318
+ # @overload get_UVHelper(front = true, back = true, texturewriter)
319
+ #
320
+ # @param [Boolean] front
321
+ # True if you want the texture coordinates for the front
322
+ # face, false if not.
323
+ #
324
+ # @param [Boolean] back
325
+ # True if you want the texture coordinates for the back
326
+ # face, false if not.
327
+ #
328
+ # @param [Sketchup::TextureWriter] texturewriter
329
+ # An optional TextureWriter object.
330
+ #
331
+ # @return [Sketchup::UVHelper]
332
+ #
333
+ # @version SketchUp 6.0
334
+ def get_UVHelper(*args)
335
+ end
336
+
337
+ # The get_glued_instances method returns an Array any ComponentInstances
338
+ # that are glued to the face.
339
+ #
340
+ # ComponentInstance objects that are currently glued to the face.
341
+ #
342
+ # @example
343
+ # # Create a series of points that define a new face.
344
+ # model = Sketchup.active_model
345
+ # entities = model.active_entities
346
+ # pts = []
347
+ # pts[0] = [0, 0, 0]
348
+ # pts[1] = [9, 0, 0]
349
+ # pts[2] = [9, 9, 0]
350
+ # pts[3] = [0, 9, 0]
351
+ #
352
+ # # Add the face to the entities in the model
353
+ # face = entities.add_face(pts)
354
+ # glued_array = face.get_glued_instances
355
+ #
356
+ # @return [Array<Sketchup::ComponentInstance, Sketchup::Group, Sketchup::Image>] An array of
357
+ #
358
+ # @version SketchUp 7.0 M1
359
+ def get_glued_instances
360
+ end
361
+
362
+ # The {#get_texture_projection} method will return a vector representing the
363
+ # projection for either the front or back side of the face.
364
+ #
365
+ # @example
366
+ # model = Sketchup.active_model
367
+ # entities = model.active_entities
368
+ # materials = model.materials
369
+ #
370
+ # # Create a face and add it to the model entities
371
+ # pts = []
372
+ # pts[0] = [0, 0, 1]
373
+ # pts[1] = [10, 0, 1]
374
+ # pts[2] = [10, 10, 1]
375
+ # face = entities.add_face(pts)
376
+ #
377
+ # # Export an image to use as a texture
378
+ # path = Sketchup.temp_dir
379
+ # full_name = File.join(path, "temp_image.jpg")
380
+ # model.active_view.write_image(full_name, 500, 500, false, 0.0)
381
+ #
382
+ # # Create a material and assign the texture to it
383
+ # material = materials.add("Test Material")
384
+ # material.texture = full_name
385
+ #
386
+ # # Assign the new material to our face we created
387
+ # face.material = material
388
+ #
389
+ # # Set the projection of the applied material
390
+ # face.set_texture_projection(face.normal, true)
391
+ #
392
+ # # Get the projection of the applied material
393
+ # vector = face.get_texture_projection(true)
394
+ #
395
+ # @param [Boolean] frontside
396
+ # +true+ for front side, +false+ for back side.
397
+ #
398
+ # @return [Geom::Vector3d, nil] a vector on success, +nil+ if face is not
399
+ # textured with a projected texture mapping.
400
+ #
401
+ # @see #position_material
402
+ #
403
+ # @see #texture_projected?
404
+ #
405
+ # @version SketchUp 2014
406
+ def get_texture_projection(frontside)
407
+ end
408
+
409
+ # The loops method is used to get an array of all of the loops that bound the
410
+ # face.
411
+ #
412
+ # @example
413
+ # depth = 100
414
+ # width = 100
415
+ # model = Sketchup.active_model
416
+ # entities = model.active_entities
417
+ # pts = []
418
+ # pts[0] = [0, 0, 0]
419
+ # pts[1] = [width, 0, 0]
420
+ # pts[2] = [width, depth, 0]
421
+ # pts[3] = [0, depth, 0]
422
+ #
423
+ # # Add the face to the entities in the model
424
+ # face = entities.add_face(pts)
425
+ # loops = face.loops
426
+ #
427
+ # @return [Array<Sketchup::Loop>] an array of Loop objects if successful
428
+ #
429
+ # @version SketchUp 6.0
430
+ def loops
431
+ end
432
+
433
+ # The material method is used to retrieve the material assigned to the
434
+ # front of the face. (This method is inherited from the Drawingelement
435
+ # parent class.)
436
+ #
437
+ # @example
438
+ # depth = 100
439
+ # width = 100
440
+ # model = Sketchup.active_model
441
+ # entities = model.active_entities
442
+ # pts = []
443
+ # pts[0] = [0, 0, 0]
444
+ # pts[1] = [width, 0, 0]
445
+ # pts[2] = [width, depth, 0]
446
+ # pts[3] = [0, depth, 0]
447
+ #
448
+ # # Add the face to the entities in the model
449
+ # face = entities.add_face(pts)
450
+ #
451
+ # # Add a material to the face, then check to see that it was added
452
+ # face.material = "red"
453
+ # material = face.material
454
+ #
455
+ # @return [Sketchup::Material, nil] a Material object representing the material
456
+ # on the front of the face (if successful)
457
+ #
458
+ # @version SketchUp 6.0
459
+ def material
460
+ end
461
+
462
+ # The material= method is used to set the material assigned to the front
463
+ # side of the face. (This method is inherited from the Drawingelement
464
+ # parent class.)
465
+ #
466
+ # @example
467
+ # depth = 100
468
+ # width = 100
469
+ # model = Sketchup.active_model
470
+ # entities = model.active_entities
471
+ # pts = []
472
+ # pts[0] = [0, 0, 0]
473
+ # pts[1] = [width, 0, 0]
474
+ # pts[2] = [width, depth, 0]
475
+ # pts[3] = [0, depth, 0]
476
+ # # Add the face to the entities in the model
477
+ # face = entities.add_face(pts)
478
+ # status = face.material = "red"
479
+ #
480
+ # @param [Sketchup::Material] material
481
+ # A Material object or the name of a valid material.
482
+ #
483
+ # @return [Sketchup::Material] the name of the valid material or the new
484
+ # Material object (if successful)
485
+ #
486
+ # @version SketchUp 6.0
487
+ def material=(material)
488
+ end
489
+
490
+ # The mesh method creates a polygon mesh that represents the face. See the
491
+ # {Geom::PolygonMesh} class for more information.
492
+ #
493
+ # Valid flags are:
494
+ #
495
+ # - +0+: Include PolygonMeshPoints,
496
+ # - +1+: Include PolygonMeshUVQFront,
497
+ # - +2+: Include PolygonMeshUVQBack,
498
+ # - +4+: Include PolygonMeshNormals.
499
+ #
500
+ # Use bitwise OR to combine flags. A value of +7+ will include all
501
+ # flags, for example.
502
+ #
503
+ # @example
504
+ # depth = 100
505
+ # width = 100
506
+ # model = Sketchup.active_model
507
+ # entities = model.active_entities
508
+ # pts = []
509
+ # pts[0] = [0, 0, 0]
510
+ # pts[1] = [width, 0, 0]
511
+ # pts[2] = [width, depth, 0]
512
+ # pts[3] = [0, depth, 0]
513
+ #
514
+ # # Add the face to the entities in the model
515
+ # face = entities.add_face(pts)
516
+ #
517
+ # kPoints = 0
518
+ # kUVQFront = 1
519
+ # kUVQBack = 2
520
+ # kNormals = 4
521
+ # flags = kPoints | kUVQFront | kUVQBack | kNormals # equals to 7
522
+ # mesh = face.mesh(flags)
523
+ #
524
+ # @param [Integer] flags
525
+ # One or more flags used to generate a mesh.
526
+ #
527
+ # @return [Geom::PolygonMesh]
528
+ #
529
+ # @version SketchUp 6.0
530
+ def mesh(flags = 0)
531
+ end
532
+
533
+ # The normal method is used to retrieve the 3D vector normal to the face in
534
+ # the front direction.
535
+ #
536
+ # @example
537
+ # depth = 100
538
+ # width = 100
539
+ # model = Sketchup.active_model
540
+ # entities = model.active_entities
541
+ # pts = []
542
+ # pts[0] = [0, 0, 0]
543
+ # pts[1] = [width, 0, 0]
544
+ # pts[2] = [width, depth, 0]
545
+ # pts[3] = [0, depth, 0]
546
+ #
547
+ # # Add the face to the entities in the model
548
+ # face = entities.add_face(pts)
549
+ # normal = face.normal
550
+ #
551
+ # @return [Geom::Vector3d] a Vector3d object if successful
552
+ #
553
+ # @version SketchUp 6.0
554
+ def normal
555
+ end
556
+
557
+ # This method is used to retrieve the outer loop that bounds the face.
558
+ #
559
+ # @example
560
+ # # Create a series of points that define a new face.
561
+ # model = Sketchup.active_model
562
+ # entities = model.active_entities
563
+ # pts = []
564
+ # pts[0] = [0, 0, 0]
565
+ # pts[1] = [9, 0, 0]
566
+ # pts[2] = [9, 9, 0]
567
+ # pts[3] = [0, 9, 0]
568
+ #
569
+ # # Add the face to the entities in the model
570
+ # face = entities.add_face(pts)
571
+ # loop = face.outer_loop
572
+ #
573
+ # @return [Sketchup::Loop] a Loop object representing the outer loop (if
574
+ # successful)
575
+ #
576
+ # @version SketchUp 6.0
577
+ def outer_loop
578
+ end
579
+
580
+ # The plane method is used to retrieve the plane of the face. See the Array
581
+ # class for information on how planes are stored.
582
+ #
583
+ # @example
584
+ # depth = 100
585
+ # width = 100
586
+ # model = Sketchup.active_model
587
+ # entities = model.active_entities
588
+ # pts = []
589
+ # pts[0] = [0, 0, 0]
590
+ # pts[1] = [width, 0, 0]
591
+ # pts[2] = [width, depth, 0]
592
+ # pts[3] = [0, depth, 0]
593
+ #
594
+ # # Add the face to the entities in the model
595
+ # face = entities.add_face(pts)
596
+ # plane = face.plane
597
+ #
598
+ # @return [Array(Float, Float, Float, Float)] a plane that contains the face (if successful)
599
+ #
600
+ # @version SketchUp 6.0
601
+ def plane
602
+ end
603
+
604
+ # The {#position_material} method is used to position a material on a face.
605
+ #
606
+ # The +points+ argument must contain 2, 4, 6 or 8 points. The points are used
607
+ # in pairs to describe where a point in the texture image is positioned on the
608
+ # Face. The first point in each pair is a 3D point in the model. The second
609
+ # point in each pair of points is a 2D point that gives the (u,v) coordinates
610
+ # of a point in the image to match up with the 3D point.
611
+ #
612
+ # @example
613
+ # model = Sketchup.active_model
614
+ # entities = model.active_entities
615
+ #
616
+ # # Create a face and add it to the model entities
617
+ # points = [
618
+ # Geom::Point3d.new(0, 0, 1),
619
+ # Geom::Point3d.new(9, 0, 1),
620
+ # Geom::Point3d.new(9, 9, 1),
621
+ # Geom::Point3d.new(0, 9, 1),
622
+ # ]
623
+ # face = entities.add_face(points)
624
+ #
625
+ # # Export an image to use as a texture
626
+ # path = Sketchup.temp_dir
627
+ # full_name = File.join(path, "temp_image.jpg")
628
+ # model.active_view.write_image(full_name, 500, 500, false, 0.0)
629
+ #
630
+ # # Create a material and assign the texture to it
631
+ # material = model.materials.add("Test Material")
632
+ # material.texture = full_name
633
+ #
634
+ # # Assign the new material to our face we created
635
+ # face.material = material
636
+ #
637
+ # mapping = [
638
+ # Geom::Point3d.new(3,0,0), # Model coordinate
639
+ # Geom::Point3d.new(0,0,0), # UV coordinate
640
+ # ]
641
+ # on_front = true
642
+ # face.position_material(material, mapping, on_front)
643
+ #
644
+ # @overload position_material(material, points, on_front)
645
+ #
646
+ # This variant positions a material on the face's plane without projection.
647
+ #
648
+ # @param [Sketchup::Material] material
649
+ #
650
+ # @param [Array<Geom::Point3d>] points
651
+ # An array of Point3d objects used to position the material.
652
+ # The points should be on the plane of the face. If they are not they will
653
+ # be projected to the face's plane.
654
+ #
655
+ # @param [Boolean] on_front
656
+ # +true+ to position the texture on the front of the Face or
657
+ # +false+ to position it on the back of the Face.
658
+ #
659
+ # @overload position_material(material, points, on_front, projection)
660
+ #
661
+ # @version SketchUp 2021.1
662
+ #
663
+ # This variant positions a material on the face's plane with projection.
664
+ #
665
+ # @param [Sketchup::Material] material
666
+ #
667
+ # @param [Array<Geom::Point3d>] points
668
+ # An array of Point3d objects used to position the material.
669
+ # The points should be on the same plane. The plane should be parallel to
670
+ # the +projection+ vector. If they are not on a plane parallel to the
671
+ # projection vector they will be projected to such a plane.
672
+ #
673
+ # @param [Boolean] on_front
674
+ # +true+ to position the texture on the front of the Face or
675
+ # +false+ to position it on the back of the Face.
676
+ #
677
+ # @param [Geom::Vector3d] projection_vector
678
+ # The direction of the texture projection.
679
+ #
680
+ # @raise ArgumentError if the provided points are not in the size of 2, 4, 6 or 8.
681
+ #
682
+ # @raise ArgumentError if the provided points could not be computed to a valid UV mapping.
683
+ #
684
+ # @return [Sketchup::Face, false] the face upon success, +false+ if material or
685
+ # texture if not valid.
686
+ #
687
+ # @see #texture_positioned?
688
+ #
689
+ # @see #texture_projected?
690
+ #
691
+ # @see #get_texture_projection
692
+ #
693
+ # @see #clear_texture_projection
694
+ #
695
+ # @version SketchUp 6.0
696
+ def position_material(*args)
697
+ end
698
+
699
+ # The pushpull method is used to perform a push/pull on a face.
700
+ #
701
+ # The distance is measured in the direction that the face normal is pointing.
702
+ #
703
+ # @example
704
+ # depth = 100
705
+ # width = 100
706
+ # model = Sketchup.active_model
707
+ # entities = model.active_entities
708
+ # pts = []
709
+ # pts[0] = [0, 0, 0]
710
+ # pts[1] = [width, 0, 0]
711
+ # pts[2] = [width, depth, 0]
712
+ # pts[3] = [0, depth, 0]
713
+ # # Add the face to the entities in the model
714
+ # face = entities.add_face(pts)
715
+ # status = face.pushpull(100, true)
716
+ #
717
+ # @param [Length] distance
718
+ # The distance to push/pull the face.
719
+ #
720
+ # @param [Boolean] copy
721
+ # Create a new push/pull starting face if true (equivalent
722
+ # of pressing CTRL while in SketchUp), do not create a
723
+ # push/pull starting face if false.
724
+ #
725
+ # @return [nil]
726
+ #
727
+ # @version SketchUp 6.0
728
+ def pushpull(distance, copy = false)
729
+ end
730
+
731
+ # The reverse! method is used to reverse the face's orientation, meaning the
732
+ # front becomes the back.
733
+ #
734
+ # @example
735
+ # depth = 100
736
+ # width = 100
737
+ # model = Sketchup.active_model
738
+ # entities = model.active_entities
739
+ # pts = []
740
+ # pts[0] = [0, 0, 0]
741
+ # pts[1] = [width, 0, 0]
742
+ # pts[2] = [width, depth, 0]
743
+ # pts[3] = [0, depth, 0]
744
+ # # Add the face to the entities in the model
745
+ # face = entities.add_face(pts)
746
+ # status = face.reverse!
747
+ #
748
+ # @return [Sketchup::Face, false] the reversed Face object if successful, false if
749
+ # unsuccessful
750
+ #
751
+ # @version SketchUp 6.0
752
+ def reverse!
753
+ end
754
+
755
+ # The {#set_texture_projection} method is used to set the texture projection
756
+ # direction.
757
+ #
758
+ # @deprecated This function never worked correctly. It's not capable of
759
+ # controlling the position and orientation of the texture. In some cases it
760
+ # produced an invalid model. As of SketchUp 2021.1 the method simply raises
761
+ # +NotImplementedError+.
762
+ #
763
+ # @param [Geom::Vector3d] vector
764
+ # representing the direction of the projection. Use +nil+ to remove the
765
+ # projection.
766
+ #
767
+ # @param [Boolean] frontside
768
+ # +true+ for front side, +false+ for back side.
769
+ #
770
+ # @return [Boolean]
771
+ #
772
+ # @see #position_material
773
+ #
774
+ # @see #clear_texture_projection
775
+ #
776
+ # @version SketchUp 2014
777
+ def set_texture_projection(vector, frontside)
778
+ end
779
+
780
+ # The {#texture_positioned?} method is used to check if the face has a
781
+ # texture that is positioned.
782
+ #
783
+ # A texture is positioned when it's not using the default texture coordinates.
784
+ #
785
+ # When a user uses the Paint Bucket Tool to apply a material sampled from the
786
+ # Material Browser it will use default texture coordinates and not be
787
+ # positioned. It will be positioned if the user uses the Position Texture Tool.
788
+ #
789
+ # When an API user uses {Sketchup::Drawinglement#material=} the texture is not
790
+ # positioned. It will be positioned when the API user uses
791
+ # {Sketchup::Face#position_material}. It it also positioned of the face was
792
+ # crafted via {Geom::PolygonMesh}.
793
+ #
794
+ # @example
795
+ # model = Sketchup.active_model
796
+ # entities = model.active_entities
797
+ # faces = entities.grep(Sketchup::Face).select { |face|
798
+ # face.texture_positioned?(true) || face.texture_positioned?(false)
799
+ # }
800
+ #
801
+ # @param [Boolean] front
802
+ # +true+ Checks the front side of the face, +false+
803
+ # the back side.
804
+ #
805
+ # @return [Boolean]
806
+ #
807
+ # @see #position_material
808
+ #
809
+ # @see #material=
810
+ #
811
+ # @see #back_material=
812
+ #
813
+ # @version SketchUp 2021.1
814
+ def texture_positioned?(front)
815
+ end
816
+
817
+ # The {#texture_projected?} method is used to check if the face has a
818
+ # texture that is projected.
819
+ #
820
+ # A texture is projected when the user enables this property via the
821
+ # Position Texture Tool.
822
+ #
823
+ # It is also projected when the API user passes a projection vector to
824
+ # {#position_material}.
825
+ #
826
+ # @param [Boolean] front
827
+ # +true+ Checks the front side of the face, +false+
828
+ # the back side.
829
+ #
830
+ # @return [Boolean]
831
+ #
832
+ # @see #get_texture_projection
833
+ #
834
+ # @see #clear_texture_projection
835
+ #
836
+ # @see #position_material
837
+ #
838
+ # @version SketchUp 2021.1
839
+ def texture_projected?(front)
840
+ end
841
+
842
+ # The {#uv_tile_at} method is used to get the corner positions (model and UV)
843
+ # of a UV tile.
844
+ #
845
+ # The UV tile bounds the given reference point on the plane of the face. If the
846
+ # reference isn't on the plane of the face it will be projected onto it.
847
+ #
848
+ # The world coordinates are on the plane of the face unless the texture is
849
+ # projected. When the texture is projected the the world points are on an
850
+ # arbitrary plane that is perpendicular to the projection direction.
851
+ #
852
+ # The returned coordinates are arranged to be compatible with {#position_material}.
853
+ #
854
+ # <b>Getting the bounds of the UV tile under the cursor:</b>
855
+ #
856
+ # <i>The red quadrilateral represents the model points returned.</i>
857
+ #
858
+ # rdoc-image:../images/face-uv-tile-at.png
859
+ #
860
+ # @bug Fixed in SketchUp 2022.0: If the +position+ argument should line up exact
861
+ # U or V axes of the UV coordinate system the returned set of points won't
862
+ # be correct. A workaround for older SketchUp versions would be to slightly
863
+ # offset the +position+ argument.
864
+ #
865
+ # @example Copy material from front to back
866
+ # model = Sketchup.active_model
867
+ # model.active_entities.grep(Sketchup::Face) { |face|
868
+ # material = face.material
869
+ #
870
+ # if material&.texture.nil?
871
+ # face.back_material = material
872
+ # end
873
+ #
874
+ # reference = face.vertices.first.position
875
+ # mapping = face.uv_tile_at(reference, true)
876
+ # if face.texture_projected?(true)
877
+ # projection = face.get_texture_projection(true)
878
+ # face.position_material(material, mapping, false, projection)
879
+ # else
880
+ # face.position_material(material, mapping, false)
881
+ # end
882
+ # }
883
+ #
884
+ # @example Iterate each set of world and UV coordinates
885
+ # model = Sketchup.active_model
886
+ # faces = model.active_entities.grep(Sketchup::Face)
887
+ # face = faces.find { |face| face.material&.texture }
888
+ # reference = face.vertices.first.position
889
+ # mapping = face.uv_tile_at(reference, true)
890
+ # mapping.each_slice(2) { |position, uv|
891
+ # puts "World: #{position.inspect} - UV: #{uv.inspect}"
892
+ # }
893
+ #
894
+ # @param [Geom::Point3d] position
895
+ # Model position on the face's plane that will be
896
+ # bounded by the UV tile.
897
+ #
898
+ # @param [Boolean] front
899
+ # +true+ Checks the front side of the face, +false+
900
+ # the back side.
901
+ #
902
+ # @return [Array<Geom::Point3d>, nil] A set of 8 points. Each stride of two is
903
+ # first a model space point, the second a UV
904
+ # coordinate. +nil+ if the face doesn't have
905
+ # a texture on the given side.
906
+ #
907
+ # @see #position_material
908
+ #
909
+ # @version SketchUp 2021.1
910
+ def uv_tile_at(position, front)
911
+ end
912
+
913
+ # The vertices method is used to get an array of all of the vertices that
914
+ # bound the face.
915
+ #
916
+ # @example
917
+ # depth = 100
918
+ # width = 100
919
+ # model = Sketchup.active_model
920
+ # entities = model.active_entities
921
+ # pts = []
922
+ # pts[0] = [0, 0, 0]
923
+ # pts[1] = [width, 0, 0]
924
+ # pts[2] = [width, depth, 0]
925
+ # pts[3] = [0, depth, 0]
926
+ #
927
+ # # Add the face to the entities in the model
928
+ # face = entities.add_face(pts)
929
+ # vertices = face.vertices
930
+ #
931
+ # @return [Array<Sketchup::Vertex>] an array of Vertex objects if successful
932
+ #
933
+ # @version SketchUp 6.0
934
+ def vertices
935
+ end
936
+
937
+ end