sketchup-api-stubs 0.7.4 → 0.7.5

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 (150) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs.rb +1 -1
  3. data/lib/sketchup-api-stubs/sketchup.rb +147 -145
  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 +498 -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 +691 -691
  16. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  17. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +573 -573
  18. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +411 -411
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +179 -174
  20. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  21. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +515 -514
  22. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  23. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  25. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -349
  26. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  27. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  28. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  29. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -371
  30. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  31. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -220
  33. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  34. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  36. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  37. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  38. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -204
  39. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  40. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  41. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +694 -694
  42. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  43. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  44. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  45. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  47. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
  48. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +157 -157
  49. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  50. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
  51. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +577 -562
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +604 -593
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +362 -329
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1126 -1119
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +751 -750
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +699 -697
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +285 -285
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +417 -409
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +405 -393
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +327 -285
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -456
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +257 -257
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +835 -829
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +71 -61
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1307 -1301
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
  135. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +317 -310
  136. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +387 -356
  137. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +255 -229
  138. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
  139. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -633
  140. data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
  141. data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
  142. data/lib/sketchup-api-stubs/stubs/geom.rb +351 -348
  143. data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
  144. data/lib/sketchup-api-stubs/stubs/length.rb +278 -278
  145. data/lib/sketchup-api-stubs/stubs/numeric.rb +249 -249
  146. data/lib/sketchup-api-stubs/stubs/sketchup.rb +1342 -1310
  147. data/lib/sketchup-api-stubs/stubs/sketchupextension.rb +353 -353
  148. data/lib/sketchup-api-stubs/stubs/string.rb +24 -24
  149. data/lib/sketchup-api-stubs/stubs/ui.rb +668 -667
  150. metadata +4 -2
@@ -1,59 +1,60 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # This observer interface is implemented to react to entity events. To
5
- # implement this observer, create a Ruby class of this type, override the
6
- # desired methods, and add an instance of the observer to the entity of
7
- # interests.
8
- #
9
- # @example
10
- # class MyEntityObserver < Sketchup::EntityObserver
11
- # def onEraseEntity(entity)
12
- # puts "onEraseEntity: #{entity}"
13
- # end
14
- # end
15
- #
16
- # # Attach the observer. (Assumes there is an entity in the model.)
17
- # Sketchup.active_model.entities[0].add_observer(MyEntityObserver.new)
18
- #
19
- # @note The methods of this observer fire in such a way that making changes
20
- # to the model while inside of them is dangerous. If you experience sudden
21
- # crashes, it could be because of this observer. A potential workaround is to
22
- # use a {Sketchup::ToolsObserver} to watch what the user is doing instead.
23
- #
24
- # @version SketchUp 6.0
25
- class Sketchup::EntityObserver
26
-
27
- # Instance Methods
28
-
29
- # The {#onChangeEntity} method is invoked when your entity is modified.
30
- #
31
- # @example
32
- # def onChangeEntity(entity)
33
- # puts "onChangeEntity: #{entity}"
34
- # end
35
- #
36
- # @param [Sketchup::Entity] entity
37
- #
38
- # @return [nil]
39
- #
40
- # @version SketchUp 6.0
41
- def onChangeEntity(entity)
42
- end
43
-
44
- # The {#onEraseEntity} method is invoked when your entity is erased.
45
- #
46
- # @example
47
- # def onEraseEntity(entity)
48
- # puts "onEraseEntity: #{entity}"
49
- # end
50
- #
51
- # @param [Sketchup::Entity] entity
52
- #
53
- # @return [nil]
54
- #
55
- # @version SketchUp 6.0
56
- def onEraseEntity(entity)
57
- end
58
-
59
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # This observer interface is implemented to react to entity events.
5
+ #
6
+ # @abstract To implement this observer, create a Ruby class of this type, override the
7
+ # desired methods, and add an instance of the observer to the entity of
8
+ # interests.
9
+ #
10
+ # @example
11
+ # class MyEntityObserver < Sketchup::EntityObserver
12
+ # def onEraseEntity(entity)
13
+ # puts "onEraseEntity: #{entity}"
14
+ # end
15
+ # end
16
+ #
17
+ # # Attach the observer. (Assumes there is an entity in the model.)
18
+ # Sketchup.active_model.entities[0].add_observer(MyEntityObserver.new)
19
+ #
20
+ # @note The methods of this observer fire in such a way that making changes
21
+ # to the model while inside of them is dangerous. If you experience sudden
22
+ # crashes, it could be because of this observer. A potential workaround is to
23
+ # use a {Sketchup::ToolsObserver} to watch what the user is doing instead.
24
+ #
25
+ # @version SketchUp 6.0
26
+ class Sketchup::EntityObserver
27
+
28
+ # Instance Methods
29
+
30
+ # The {#onChangeEntity} method is invoked when your entity is modified.
31
+ #
32
+ # @example
33
+ # def onChangeEntity(entity)
34
+ # puts "onChangeEntity: #{entity}"
35
+ # end
36
+ #
37
+ # @param [Sketchup::Entity] entity
38
+ #
39
+ # @return [nil]
40
+ #
41
+ # @version SketchUp 6.0
42
+ def onChangeEntity(entity)
43
+ end
44
+
45
+ # The {#onEraseEntity} method is invoked when your entity is erased.
46
+ #
47
+ # @example
48
+ # def onEraseEntity(entity)
49
+ # puts "onEraseEntity: #{entity}"
50
+ # end
51
+ #
52
+ # @param [Sketchup::Entity] entity
53
+ #
54
+ # @return [nil]
55
+ #
56
+ # @version SketchUp 6.0
57
+ def onEraseEntity(entity)
58
+ end
59
+
60
+ end
@@ -1,125 +1,126 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The ExtensionsManager class provides a way of accessing the
5
- # SketchupExtensions that have been registered via the
6
- # Sketchup.register_extension method.
7
- #
8
- # There is only one ExtensionsManager available. You access it via the
9
- # Sketchup.extensions method.
10
- #
11
- # @version SketchUp 8.0 M2
12
- class Sketchup::ExtensionsManager
13
-
14
- # Includes
15
-
16
- include Enumerable
17
-
18
- # Instance Methods
19
-
20
- # The [] method is used to get an extension by name, index or ID.
21
- #
22
- # @example
23
- # manager = Sketchup.extensions
24
- # extension = manager[0]
25
- # if (extension)
26
- # UI.messagebox extension.name
27
- # else
28
- # UI.messagebox "Failure"
29
- # end
30
- #
31
- # # You can also get extensions by name.
32
- # solarnorth = manager['Solar North Toolbar']
33
- #
34
- # # You can also get extensions by ID.
35
- # my_extension = manager['2475A758-6503-46D5-AC5E-16AEA0A3162A']
36
- #
37
- # @param index_or_name
38
- # The index, name or ID of the SketchupExtension object.
39
- #
40
- # @return extension - an SketchupExtension object if
41
- # successful, otherwise nil.
42
- #
43
- # @version SketchUp 8.0 M2
44
- def [](index_or_name)
45
- end
46
-
47
- #
48
- # @example
49
- # manager = Sketchup.extensions
50
- # number = manager.count
51
- #
52
- # @note Since SketchUp 2014 the count method is inherited from Ruby's
53
- # +Enumable+ mix-in module. Prior to that the {#count} method is an alias
54
- # for {#length}.
55
- #
56
- # @return [Integer]
57
- #
58
- # @see #length
59
- #
60
- # @version SketchUp 8.0 M2
61
- def count
62
- end
63
-
64
- # The each method is used to iterate through extensions.
65
- #
66
- # @example
67
- # manager = Sketchup.extensions
68
- # # Retrieves each extension
69
- # manager.each { |extension| UI.messagebox extension.name }
70
- #
71
- # @return nil
72
- #
73
- # @version SketchUp 8.0 M2
74
- #
75
- # @yield [extension] A variable that will hold each SketchupExtension object
76
- # as they are found.
77
- def each
78
- end
79
-
80
- # The keys method is used to get a list of keys in the ExtensionsManager,
81
- # which are the same as the names of the extensions.
82
- #
83
- # @example
84
- # manager = Sketchup.extensions
85
- # keys = manager.keys
86
- # for key in keys
87
- # UI.messagebox('The next extension is named: ' + key)
88
- # end
89
- #
90
- # @return keys - Array of string keys
91
- #
92
- # @version SketchUp 8.0 M2
93
- def keys
94
- end
95
-
96
- # The {#length} method returns the number of {SketchupExtension} objects inside
97
- # this ExtensionsManager.
98
- #
99
- # @example
100
- # manager = Sketchup.extensions
101
- # number = manager.length
102
- #
103
- # @return [Integer]
104
- #
105
- # @see #size
106
- #
107
- # @version SketchUp 8.0 M2
108
- def length
109
- end
110
-
111
- # The {#size} method is an alias of {#length}.
112
- #
113
- # @example
114
- # manager = Sketchup.extensions
115
- # number = manager.size
116
- #
117
- # @return [Integer]
118
- #
119
- # @see #length
120
- #
121
- # @version SketchUp 8.0 M2
122
- def size
123
- end
124
-
125
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The ExtensionsManager class provides a way of accessing the
5
+ # SketchupExtensions that have been registered via the
6
+ # Sketchup.register_extension method.
7
+ #
8
+ # There is only one ExtensionsManager available. You access it via the
9
+ # Sketchup.extensions method.
10
+ #
11
+ # @version SketchUp 8.0 M2
12
+ class Sketchup::ExtensionsManager
13
+
14
+ # Includes
15
+
16
+ include Enumerable
17
+
18
+ # Instance Methods
19
+
20
+ # The [] method is used to get an extension by name, index or ID.
21
+ #
22
+ # @example
23
+ # manager = Sketchup.extensions
24
+ # extension = manager[1]
25
+ # if (extension)
26
+ # puts extension.name
27
+ # else
28
+ # puts "No Extensions installed"
29
+ # end
30
+ #
31
+ # # You can also get extensions by name.
32
+ # solarnorth = manager['Solar North Toolbar']
33
+ #
34
+ # # You can also get extensions by ID.
35
+ # my_extension = manager['2475A758-6503-46D5-AC5E-16AEA0A3162A']
36
+ #
37
+ # @note Index starts at 1.
38
+ #
39
+ # @param [Integer, String] index_or_name
40
+ # The index, name or ID of the SketchupExtension object.
41
+ #
42
+ # @return [SketchupExtension, nil]
43
+ #
44
+ # @version SketchUp 8.0 M2
45
+ def [](index_or_name)
46
+ end
47
+
48
+ #
49
+ # @example
50
+ # manager = Sketchup.extensions
51
+ # number = manager.count
52
+ #
53
+ # @note Since SketchUp 2014 the count method is inherited from Ruby's
54
+ # +Enumable+ mix-in module. Prior to that the {#count} method is an alias
55
+ # for {#length}.
56
+ #
57
+ # @return [Integer]
58
+ #
59
+ # @see #length
60
+ #
61
+ # @version SketchUp 8.0 M2
62
+ def count
63
+ end
64
+
65
+ # The each method is used to iterate through extensions.
66
+ #
67
+ # @example
68
+ # manager = Sketchup.extensions
69
+ # # Retrieves each extension
70
+ # manager.each { |extension| puts extension.name }
71
+ #
72
+ # @return nil
73
+ #
74
+ # @version SketchUp 8.0 M2
75
+ #
76
+ # @yield [extension] A variable that will hold each SketchupExtension object
77
+ # as they are found.
78
+ def each
79
+ end
80
+
81
+ # The keys method is used to get a list of keys in the ExtensionsManager,
82
+ # which are the same as the names of the extensions.
83
+ #
84
+ # @example
85
+ # manager = Sketchup.extensions
86
+ # keys = manager.keys
87
+ # for key in keys
88
+ # UI.messagebox('The next extension is named: ' + key)
89
+ # end
90
+ #
91
+ # @return keys - Array of string keys
92
+ #
93
+ # @version SketchUp 8.0 M2
94
+ def keys
95
+ end
96
+
97
+ # The {#length} method returns the number of {SketchupExtension} objects inside
98
+ # this ExtensionsManager.
99
+ #
100
+ # @example
101
+ # manager = Sketchup.extensions
102
+ # number = manager.length
103
+ #
104
+ # @return [Integer]
105
+ #
106
+ # @see #size
107
+ #
108
+ # @version SketchUp 8.0 M2
109
+ def length
110
+ end
111
+
112
+ # The {#size} method is an alias of {#length}.
113
+ #
114
+ # @example
115
+ # manager = Sketchup.extensions
116
+ # number = manager.size
117
+ #
118
+ # @return [Integer]
119
+ #
120
+ # @see #length
121
+ #
122
+ # @version SketchUp 8.0 M2
123
+ def size
124
+ end
125
+
126
+ end
@@ -1,750 +1,751 @@
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 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.
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 edges method is used to get an array of edges that bound the face.
204
+ #
205
+ # @example
206
+ # depth = 100
207
+ # width = 100
208
+ # model = Sketchup.active_model
209
+ # entities = model.active_entities
210
+ # pts = []
211
+ # pts[0] = [0, 0, 0]
212
+ # pts[1] = [width, 0, 0]
213
+ # pts[2] = [width, depth, 0]
214
+ # pts[3] = [0, depth, 0]
215
+ # # Add the face to the entities in the model
216
+ # face = entities.add_face(pts)
217
+ # edges = face.edges
218
+ #
219
+ # @return [Array<Sketchup::Edge>] an array of Edge objects (if successful)
220
+ #
221
+ # @version SketchUp 6.0
222
+ def edges
223
+ end
224
+
225
+ # The {#followme} method is used to create a shape by making the face follow
226
+ # along an array of edges.
227
+ #
228
+ # @example
229
+ # model = Sketchup.active_model
230
+ # entities = model.active_entities
231
+ #
232
+ # depth = 100
233
+ # width = 100
234
+ #
235
+ # # Add the face to the entities in the model
236
+ # points = [
237
+ # Geom::Point3d.new(0, 0, 0),
238
+ # Geom::Point3d.new(width, 0, 0),
239
+ # Geom::Point3d.new(width, depth, 0),
240
+ # Geom::Point3d.new(0, depth, 0)
241
+ # ]
242
+ # face = entities.add_face(points)
243
+ #
244
+ # # Add the line which we will "follow" to the entities in the model
245
+ # point1 = Geom::Point3d.new(0, 0, 0)
246
+ # point2 = Geom::Point3d.new(0, 0, 100)
247
+ # edge = entities.add_line(point1, point2)
248
+ # face.followme(edge)
249
+ #
250
+ # @overload followme(edges)
251
+ #
252
+ # @param [Array<Sketchup::Edge>] edges An array of edge objects to follow.
253
+ # @return [Boolean]
254
+ #
255
+ # @overload followme(edge)
256
+ #
257
+ # @param [Sketchup::Edge] edge An edge to follow.
258
+ # @return [Boolean]
259
+ #
260
+ # @version SketchUp 6.0
261
+ def followme(*args)
262
+ end
263
+
264
+ # The get_UVHelper object is used to retrieve a UVHelper object for use in
265
+ # texture manipulation on a face.
266
+ #
267
+ # @example
268
+ # model = Sketchup.active_model
269
+ # entities = model.active_entities
270
+ # pts = []
271
+ # pts[0] = [0, 0, 0]
272
+ # pts[1] = [9, 0, 0]
273
+ # pts[2] = [9, 9, 0]
274
+ # pts[3] = [0, 9, 0]
275
+ #
276
+ # # Add the face to the entities in the model
277
+ # face = entities.add_face(pts)
278
+ # tw = Sketchup.create_texture_writer
279
+ # uvHelp = face.get_UVHelper(true, true, tw)
280
+ #
281
+ # @overload get_UVHelper(front = true, back = true)
282
+ #
283
+ # @param [Boolean] front
284
+ # True if you want the texture coordinates for the front
285
+ # face, false if not.
286
+ #
287
+ # @param [Boolean] back
288
+ # True if you want the texture coordinates for the back
289
+ # face, false if not.
290
+ #
291
+ # @overload get_UVHelper(front = true, back = true, texturewriter)
292
+ #
293
+ # @param [Boolean] front
294
+ # True if you want the texture coordinates for the front
295
+ # face, false if not.
296
+ #
297
+ # @param [Boolean] back
298
+ # True if you want the texture coordinates for the back
299
+ # face, false if not.
300
+ #
301
+ # @param [Sketchup::TextureWriter] texturewriter
302
+ # An optional TextureWriter object.
303
+ #
304
+ # @return [Sketchup::UVHelper]
305
+ #
306
+ # @version SketchUp 6.0
307
+ def get_UVHelper(*args)
308
+ end
309
+
310
+ # The get_glued_instances method returns an Array any ComponentInstances
311
+ # that are glued to the face.
312
+ #
313
+ # @example
314
+ # # Create a series of points that define a new face.
315
+ # model = Sketchup.active_model
316
+ # entities = model.active_entities
317
+ # pts = []
318
+ # pts[0] = [0, 0, 0]
319
+ # pts[1] = [9, 0, 0]
320
+ # pts[2] = [9, 9, 0]
321
+ # pts[3] = [0, 9, 0]
322
+ #
323
+ # # Add the face to the entities in the model
324
+ # face = entities.add_face(pts)
325
+ # glued_array = face.get_glued_instances
326
+ #
327
+ # @return [Array<Sketchup::ComponentInstance, Sketchup::Group, Sketchup::Image>] An array of ComponentInstance objects that
328
+ # are currently glued to the face.
329
+ #
330
+ # @version SketchUp 7.0 M1
331
+ def get_glued_instances
332
+ end
333
+
334
+ # The get_texture_projection method will return a vector representing the
335
+ # projection for either the front or back side of the face.
336
+ #
337
+ # @example
338
+ # model = Sketchup.active_model
339
+ # entities = model.active_entities
340
+ # materials = model.materials
341
+ #
342
+ # # Create a face and add it to the model entities
343
+ # pts = []
344
+ # pts[0] = [0, 0, 1]
345
+ # pts[1] = [10, 0, 1]
346
+ # pts[2] = [10, 10, 1]
347
+ # face = entities.add_face(pts)
348
+ #
349
+ # # Export an image to use as a texture
350
+ # path = Sketchup.temp_dir
351
+ # full_name = File.join(path, "temp_image.jpg")
352
+ # model.active_view.write_image(full_name, 500, 500, false, 0.0)
353
+ #
354
+ # # Create a material and assign the texture to it
355
+ # material = materials.add("Test Material")
356
+ # material.texture = full_name
357
+ #
358
+ # # Assign the new material to our face we created
359
+ # face.material = material
360
+ #
361
+ # # Set the projection of the applied material
362
+ # face.set_texture_projection(face.normal, true)
363
+ #
364
+ # # Get the projection of the applied material
365
+ # vector = face.get_texture_projection(true)
366
+ #
367
+ # @param [Boolean] frontside
368
+ # true for front side, false for back side.
369
+ #
370
+ # @return [Geom::Vector3d] a vector on success, nil on failure.
371
+ #
372
+ # @version SketchUp 2014
373
+ def get_texture_projection(frontside)
374
+ end
375
+
376
+ # The loops method is used to get an array of all of the loops that bound the
377
+ # face.
378
+ #
379
+ # @example
380
+ # depth = 100
381
+ # width = 100
382
+ # model = Sketchup.active_model
383
+ # entities = model.active_entities
384
+ # pts = []
385
+ # pts[0] = [0, 0, 0]
386
+ # pts[1] = [width, 0, 0]
387
+ # pts[2] = [width, depth, 0]
388
+ # pts[3] = [0, depth, 0]
389
+ #
390
+ # # Add the face to the entities in the model
391
+ # face = entities.add_face(pts)
392
+ # loops = face.loops
393
+ #
394
+ # @return [Array<Sketchup::Loop>] an array of Loop objects if successful
395
+ #
396
+ # @version SketchUp 6.0
397
+ def loops
398
+ end
399
+
400
+ # The material method is used to retrieve the material assigned to the
401
+ # front of the face. (This method is inherited from the Drawingelement
402
+ # parent class.)
403
+ #
404
+ # @example
405
+ # depth = 100
406
+ # width = 100
407
+ # model = Sketchup.active_model
408
+ # entities = model.active_entities
409
+ # pts = []
410
+ # pts[0] = [0, 0, 0]
411
+ # pts[1] = [width, 0, 0]
412
+ # pts[2] = [width, depth, 0]
413
+ # pts[3] = [0, depth, 0]
414
+ #
415
+ # # Add the face to the entities in the model
416
+ # face = entities.add_face(pts)
417
+ #
418
+ # # Add a material to the face, then check to see that it was added
419
+ # face.material = "red"
420
+ # material = face.material
421
+ #
422
+ # @return [Sketchup::Material, nil] a Material object representing the material
423
+ # on the front of the face (if successful)
424
+ #
425
+ # @version SketchUp 6.0
426
+ def material
427
+ end
428
+
429
+ # The material= method is used to set the material assigned to the front
430
+ # side of the face. (This method is inherited from the Drawingelement
431
+ # parent class.)
432
+ #
433
+ # @example
434
+ # depth = 100
435
+ # width = 100
436
+ # model = Sketchup.active_model
437
+ # entities = model.active_entities
438
+ # pts = []
439
+ # pts[0] = [0, 0, 0]
440
+ # pts[1] = [width, 0, 0]
441
+ # pts[2] = [width, depth, 0]
442
+ # pts[3] = [0, depth, 0]
443
+ # # Add the face to the entities in the model
444
+ # face = entities.add_face(pts)
445
+ # status = face.material = "red"
446
+ #
447
+ # @param [Sketchup::Material] material
448
+ # A Material object or the name of a valid material.
449
+ #
450
+ # @return [Sketchup::Material] the name of the valid material or the new
451
+ # Material object (if successful)
452
+ #
453
+ # @version SketchUp 6.0
454
+ def material=(material)
455
+ end
456
+
457
+ # The mesh method creates a polygon mesh that represents the face. See the
458
+ # {Geom::PolygonMesh} class for more information.
459
+ #
460
+ # Valid flags are:
461
+ #
462
+ # - +0+: Include PolygonMeshPoints,
463
+ # - +1+: Include PolygonMeshUVQFront,
464
+ # - +2+: Include PolygonMeshUVQBack,
465
+ # - +4+: Include PolygonMeshNormals.
466
+ #
467
+ # Use bitwise OR to combine flags. A value of +7+ will include all
468
+ # flags, for example.
469
+ #
470
+ # @example
471
+ # depth = 100
472
+ # width = 100
473
+ # model = Sketchup.active_model
474
+ # entities = model.active_entities
475
+ # pts = []
476
+ # pts[0] = [0, 0, 0]
477
+ # pts[1] = [width, 0, 0]
478
+ # pts[2] = [width, depth, 0]
479
+ # pts[3] = [0, depth, 0]
480
+ #
481
+ # # Add the face to the entities in the model
482
+ # face = entities.add_face(pts)
483
+ #
484
+ # kPoints = 0
485
+ # kUVQFront = 1
486
+ # kUVQBack = 2
487
+ # kNormals = 4
488
+ # flags = kPoints | kUVQFront | kUVQBack | kNormals # equals to 7
489
+ # mesh = face.mesh(flags)
490
+ #
491
+ # @param [Integer] flags
492
+ # One or more flags used to generate a mesh.
493
+ #
494
+ # @return [Geom::PolygonMesh]
495
+ #
496
+ # @version SketchUp 6.0
497
+ def mesh(flags = 0)
498
+ end
499
+
500
+ # The normal method is used to retrieve the 3D vector normal to the face in
501
+ # the front direction.
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
+ # normal = face.normal
517
+ #
518
+ # @return [Geom::Vector3d] a Vector3d object if successful
519
+ #
520
+ # @version SketchUp 6.0
521
+ def normal
522
+ end
523
+
524
+ # This method is used to retrieve the outer loop that bounds the face.
525
+ #
526
+ # @example
527
+ # # Create a series of points that define a new face.
528
+ # model = Sketchup.active_model
529
+ # entities = model.active_entities
530
+ # pts = []
531
+ # pts[0] = [0, 0, 0]
532
+ # pts[1] = [9, 0, 0]
533
+ # pts[2] = [9, 9, 0]
534
+ # pts[3] = [0, 9, 0]
535
+ #
536
+ # # Add the face to the entities in the model
537
+ # face = entities.add_face(pts)
538
+ # loop = face.outer_loop
539
+ #
540
+ # @return [Sketchup::Loop] a Loop object representing the outer loop (if
541
+ # successful)
542
+ #
543
+ # @version SketchUp 6.0
544
+ def outer_loop
545
+ end
546
+
547
+ # The plane method is used to retrieve the plane of the face. See the Array
548
+ # class for information on how planes are stored.
549
+ #
550
+ # @example
551
+ # depth = 100
552
+ # width = 100
553
+ # model = Sketchup.active_model
554
+ # entities = model.active_entities
555
+ # pts = []
556
+ # pts[0] = [0, 0, 0]
557
+ # pts[1] = [width, 0, 0]
558
+ # pts[2] = [width, depth, 0]
559
+ # pts[3] = [0, depth, 0]
560
+ #
561
+ # # Add the face to the entities in the model
562
+ # face = entities.add_face(pts)
563
+ # plane = face.plane
564
+ #
565
+ # @return [Array(Float, Float, Float, Float)] a plane that contains the face (if successful)
566
+ #
567
+ # @version SketchUp 6.0
568
+ def plane
569
+ end
570
+
571
+ # The position_material method is used to position a material on a face.
572
+ #
573
+ # The pt_array must contain 2, 4, 6 or 8 points. The points are used in pairs
574
+ # to tell where a point in the texture image is positioned on the Face. The
575
+ # first point in each pair is a 3D point in the model. It should be a point on
576
+ # the Face. The second point in each pair of points is a 2D point that gives
577
+ # the (u,v) coordinates of a point in the image to match up with the 3D point.
578
+ #
579
+ # @example
580
+ # model = Sketchup.active_model
581
+ # entities = model.active_entities
582
+ #
583
+ # # Create a face and add it to the model entities
584
+ # pts = []
585
+ # pts[0] = [0, 0, 1]
586
+ # pts[1] = [9, 0, 1]
587
+ # pts[2] = [9, 9, 1]
588
+ # pts[3] = [0, 9, 1]
589
+ # face = entities.add_face(pts)
590
+ #
591
+ # # Export an image to use as a texture
592
+ # path = Sketchup.temp_dir
593
+ # full_name = File.join(path, "temp_image.jpg")
594
+ # model.active_view.write_image(full_name, 500, 500, false, 0.0)
595
+ #
596
+ # # Create a material and assign the texture to it
597
+ # material = model.materials.add("Test Material")
598
+ # material.texture = full_name
599
+ #
600
+ # # Assign the new material to our face we created
601
+ # face.material = material
602
+ #
603
+ # pt_array = []
604
+ # pt_array[0] = Geom::Point3d.new(3,0,0)
605
+ # pt_array[1] = Geom::Point3d.new(0,0,0)
606
+ # on_front = true
607
+ # face.position_material(material, pt_array, on_front)
608
+ #
609
+ # @param [Sketchup::Material] material
610
+ # a Material object.
611
+ #
612
+ # @param [Array<Geom::Point3d>] pt_array
613
+ # An array of Point3d objects used to position the material.
614
+ #
615
+ # @param [Boolean] o_front
616
+ # true to position the texture on the front of the Face or
617
+ # false to position it on the back of the Face.
618
+ #
619
+ # @return [Sketchup::Face, false] the face upon success, false upon failure.
620
+ #
621
+ # @version SketchUp 6.0
622
+ def position_material(material, pt_array, o_front)
623
+ end
624
+
625
+ # The pushpull method is used to perform a push/pull on a face.
626
+ #
627
+ # The distance is measured in the direction that the face normal is pointing.
628
+ #
629
+ # @example
630
+ # depth = 100
631
+ # width = 100
632
+ # model = Sketchup.active_model
633
+ # entities = model.active_entities
634
+ # pts = []
635
+ # pts[0] = [0, 0, 0]
636
+ # pts[1] = [width, 0, 0]
637
+ # pts[2] = [width, depth, 0]
638
+ # pts[3] = [0, depth, 0]
639
+ # # Add the face to the entities in the model
640
+ # face = entities.add_face(pts)
641
+ # status = face.pushpull(100, true)
642
+ #
643
+ # @param [Length] distance
644
+ # The distance to push/pull the face.
645
+ #
646
+ # @param [Boolean] copy
647
+ # Create a new push/pull starting face if true (equivalent
648
+ # of pressing CTRL while in SketchUp), do not create a
649
+ # push/pull starting face if false.
650
+ #
651
+ # @return [nil]
652
+ #
653
+ # @version SketchUp 6.0
654
+ def pushpull(distance, copy = false)
655
+ end
656
+
657
+ # The reverse! method is used to reverse the face's orientation, meaning the
658
+ # front becomes the back.
659
+ #
660
+ # @example
661
+ # depth = 100
662
+ # width = 100
663
+ # model = Sketchup.active_model
664
+ # entities = model.active_entities
665
+ # pts = []
666
+ # pts[0] = [0, 0, 0]
667
+ # pts[1] = [width, 0, 0]
668
+ # pts[2] = [width, depth, 0]
669
+ # pts[3] = [0, depth, 0]
670
+ # # Add the face to the entities in the model
671
+ # face = entities.add_face(pts)
672
+ # status = face.reverse!
673
+ #
674
+ # @return [Sketchup::Face, false] the reversed Face object if successful, false if
675
+ # unsuccessful
676
+ #
677
+ # @version SketchUp 6.0
678
+ def reverse!
679
+ end
680
+
681
+ # The set_texture_projection method is used to set the texture projection
682
+ # direction.
683
+ #
684
+ # @deprecated This function never worked right. It's not possible to control
685
+ # the position and orientation of the texture.
686
+ #
687
+ # @example
688
+ # model = Sketchup.active_model
689
+ # entities = model.active_entities
690
+ # materials = model.materials
691
+ #
692
+ # # Create a face and add it to the model entities
693
+ # pts = []
694
+ # pts[0] = [0, 0, 1]
695
+ # pts[1] = [10, 0, 1]
696
+ # pts[2] = [10, 10, 1]
697
+ # face = entities.add_face(pts)
698
+ #
699
+ # # Export an image to use as a texture
700
+ # path = Sketchup.temp_dir
701
+ # full_name = File.join(path, "temp_image.jpg")
702
+ # model.active_view.write_image(full_name, 500, 500, false, 0.0)
703
+ #
704
+ # # Create a material and assign the testure to it.
705
+ # material = materials.add("Test Material")
706
+ # material.texture = full_name
707
+ #
708
+ # # Assign the new material to our face we created
709
+ # face.material = material
710
+ #
711
+ # # Returns nil if not successful, path if successful
712
+ # result = face.set_texture_projection(face.normal, true)
713
+ #
714
+ # @param [Geom::Vector3d] vector
715
+ # representing the direction of the projection. Use nil
716
+ # to remove the projection.
717
+ #
718
+ # @param [Boolean] frontside
719
+ # true for front side, false for back side.
720
+ #
721
+ # @return [Boolean] true on success
722
+ #
723
+ # @version SketchUp 2014
724
+ def set_texture_projection(vector, frontside)
725
+ end
726
+
727
+ # The vertices method is used to get an array of all of the vertices that
728
+ # bound the face.
729
+ #
730
+ # @example
731
+ # depth = 100
732
+ # width = 100
733
+ # model = Sketchup.active_model
734
+ # entities = model.active_entities
735
+ # pts = []
736
+ # pts[0] = [0, 0, 0]
737
+ # pts[1] = [width, 0, 0]
738
+ # pts[2] = [width, depth, 0]
739
+ # pts[3] = [0, depth, 0]
740
+ #
741
+ # # Add the face to the entities in the model
742
+ # face = entities.add_face(pts)
743
+ # vertices = face.vertices
744
+ #
745
+ # @return [Array<Sketchup::Vertex>] an array of Vertex objects if successful
746
+ #
747
+ # @version SketchUp 6.0
748
+ def vertices
749
+ end
750
+
751
+ end