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,61 +1,71 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The UV Helper class contains methods allowing you to determine the location
5
- # (UV coordinates) of a texture on a face. This class is particularly useful
6
- # in determining how textures that have been manipulated using the Texture
7
- # Tweaker should appear when exported to another file type
8
- #
9
- # Use the Face.get_UVHelper method to create a UVHelper for a given face.
10
- # See the TextureWriter class as well.
11
- #
12
- # @version SketchUp 6.0
13
- class Sketchup::UVHelper
14
-
15
- # Instance Methods
16
-
17
- # The get_back_UVQ method is used to get the UV coordinates for the back of a
18
- # face.
19
- #
20
- # @example
21
- # uv_helper = face.get_UVHelper true, true, my_texture_writer
22
- # face.outer_loop.vertices.each do |vert|
23
- # uvq = uv_help.get_back_UVQ(vert.position)
24
- # puts "u=" + uvq.x.to_s + " v=" + uvq.y.to_s
25
- # end
26
- #
27
- # @param point
28
- # A Point3d object containing one of the 3D vertexes of
29
- # the face.
30
- #
31
- # @return point - a Point3d containing the UV coordinates where
32
- # the X value is the U value, the Y value is the V value
33
- # and the Z value is a Q value (which is not used).
34
- #
35
- # @version SketchUp 6.0
36
- def get_back_UVQ(point)
37
- end
38
-
39
- # The get_front_UVQ method is used to get the UV coordinates for a front of a
40
- # face.
41
- #
42
- # @example
43
- # uv_helper = face.get_UVHelper true, true, my_texture_writer
44
- # face.outer_loop.vertices.each do |vert|
45
- # uvq = uv_helper.get_front_UVQ(vert.position)
46
- # puts "u=" + uvq.x.to_s + " v=" + uvq.y.to_s
47
- # end
48
- #
49
- # @param point
50
- # A Point3d object containing one of the 3D vertexes of
51
- # the face.
52
- #
53
- # @return point - a Point3d containing the UV coordinates where
54
- # the X value is the U value, the Y value is the V value
55
- # and the Z value is a Q value (which is not used).
56
- #
57
- # @version SketchUp 6.0
58
- def get_front_UVQ(point)
59
- end
60
-
61
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The UV Helper class contains methods allowing you to determine the location
5
+ # (UV coordinates) of a texture on a face. This class is particularly useful
6
+ # in determining how textures that have been manipulated using the Texture
7
+ # Tweaker should appear when exported to another file type
8
+ #
9
+ # Use the Face.get_UVHelper method to create a UVHelper for a given face.
10
+ # See the TextureWriter class as well.
11
+ #
12
+ # @version SketchUp 6.0
13
+ class Sketchup::UVHelper
14
+
15
+ # Instance Methods
16
+
17
+ # The {#get_back_UVQ} method is used to get the UV texture coordinates on the
18
+ # back of a face.
19
+ #
20
+ # @example
21
+ # uv_helper = face.get_UVHelper(true, true, my_texture_writer)
22
+ # face.outer_loop.vertices.each do |vert|
23
+ # uvq = uv_helper.get_back_UVQ(vert.position)
24
+ # # "Normalize" UVQ to UV.
25
+ # u = uvq.u / unq.q
26
+ # v = uvq.v / unq.q
27
+ # puts "u=#{u} v=#{v}""
28
+ # end
29
+ #
30
+ # @note To convert UVQ coordinates to UV,
31
+ # divide U and V by Q.
32
+ # u = uvq.u / uvq.q
33
+ # v = uvq.v / uvq.q
34
+ #
35
+ # @param [Geom::Point3d] point
36
+ # A point on the face.
37
+ #
38
+ # @return [Geom::Point3d] Point where X represents U, Y represents V and Z represents Q.
39
+ #
40
+ # @version SketchUp 6.0
41
+ def get_back_UVQ(point)
42
+ end
43
+
44
+ # The {#get_front_UVQ} method is used to get the UV texture coordinates on the
45
+ # front of a face.
46
+ #
47
+ # @example
48
+ # uv_helper = face.get_UVHelper(true, true, my_texture_writer)
49
+ # face.outer_loop.vertices.each do |vert|
50
+ # uvq = uv_helper.get_front_UVQ(vert.position)
51
+ # # "Normalize" UVQ to UV.
52
+ # u = uvq.u / unq.q
53
+ # v = uvq.v / unq.q
54
+ # puts "u=#{u} v=#{v}""
55
+ # end
56
+ #
57
+ # @note To convert UVQ coordinates to UV,
58
+ # divide U and V by Q.
59
+ # u = uvq.u / uvq.q
60
+ # v = uvq.v / uvq.q
61
+ #
62
+ # @param [Geom::Point3d] point
63
+ # A point on the face.
64
+ #
65
+ # @return [Geom::Point3d] Point where X represents U, Y represents V and Z represents Q.
66
+ #
67
+ # @version SketchUp 6.0
68
+ def get_front_UVQ(point)
69
+ end
70
+
71
+ end
@@ -1,142 +1,142 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # A Vertex. A Vertex represents the end of an Edge or a point inside a Face.
5
- #
6
- # @version SketchUp 6.0
7
- class Sketchup::Vertex < Sketchup::Entity
8
-
9
- # Instance Methods
10
-
11
- # The common_edge method is used to find a common edge that is defined by this
12
- # vertex and another vertex
13
- #
14
- # @example
15
- # edge = entities[0]
16
- # # returns array of vertices that make up the line
17
- # verticies = edge.vertices
18
- # vertex1 = verticies[0]
19
- # vertex2 = verticies[1]
20
- # edge = vertex1.common_edge vertex2
21
- # if (edge)
22
- # UI.messagebox edge
23
- # else
24
- # UI.messagebox "Failure"
25
- # end
26
- #
27
- # @param [Sketchup::Vertex] vertex2
28
- # A Vertex object.
29
- #
30
- # @return [Sketchup::Edge, nil] an Edge object common to both vertices if
31
- # successful. Returns nil if there is no edge between the
32
- # two vertices.
33
- #
34
- # @version SketchUp 6.0
35
- def common_edge(vertex2)
36
- end
37
-
38
- # The {#curve_interior?} method is used to determine if this vertex is on the
39
- # interior of a Curve.
40
- #
41
- # @example
42
- # edge = entities[0]
43
- # # returns array of vertices that make up the line
44
- # verticies = edge.vertices
45
- # vertex1 = verticies[0]
46
- # status = vertex1.curve_interior?
47
- # if (status)
48
- # UI.messagebox status
49
- # else
50
- # #returns nil if vertex is not on interior of a Curve
51
- # UI.messagebox "Failure"
52
- # end
53
- #
54
- # @note This method doesn't actually return a boolean as the question mark
55
- # post-fix would normally indicate. But the result still evaluates to
56
- # truthy or falsy.
57
- #
58
- # @return [Boolean]
59
- #
60
- # @version SketchUp 6.0
61
- def curve_interior?
62
- end
63
-
64
- # The edges method is used to retrieve an Array of edges that use the Vertex.
65
- #
66
- # @example
67
- # edge = entities[0]
68
- # # Returns array of vertices that make up the line.
69
- # verticies = edge.vertices
70
- # vertex1 = verticies[0]
71
- # edges = vertex1.edges
72
- #
73
- # @return [Array<Sketchup::Edge>] an Array of edge objects if successful
74
- #
75
- # @version SketchUp 6.0
76
- def edges
77
- end
78
-
79
- # The faces method is used to retrieve an Array of faces that use the vertex.
80
- #
81
- # @example
82
- # edge = entities[0]
83
- # # Returns array of vertices that make up the line.
84
- # verticies = edge.vertices
85
- # vertex1 = verticies[0]
86
- # faces = vertex1.faces
87
- #
88
- # @return [Array<Sketchup::Face>] an Array of faces that use the vertex if
89
- # successful
90
- #
91
- # @version SketchUp 6.0
92
- def faces
93
- end
94
-
95
- # The loops method is used to retrieve an Array of loops that use the vertex.
96
- #
97
- # @example
98
- # edge = entities[0]
99
- # # Returns array of vertices that make up the line.
100
- # verticies = edge.vertices
101
- # vertex1 = verticies[0]
102
- # loops = vertex1.loops
103
- #
104
- # @return [Array<Sketchup::Loop>] an Array of loops that use the vertex if
105
- # successful
106
- #
107
- # @version SketchUp 6.0
108
- def loops
109
- end
110
-
111
- # The position method is used to retrieve the Point3d position of a vertex.
112
- #
113
- # @example
114
- # edge = entities[0]
115
- # # Returns array of vertices that make up the line.
116
- # verticies = edge.vertices
117
- # vertex1 = verticies[0]
118
- # position = vertex1.position
119
- #
120
- # @return [Geom::Point3d] a Point3d object representing the position of
121
- # the vertex if successful
122
- #
123
- # @version SketchUp 6.0
124
- def position
125
- end
126
-
127
- # The used_by? method is used to determine if the Vertex is used by a given
128
- # Edge or Face.
129
- #
130
- # @example
131
- # used = vertex1.used_by? my_face
132
- #
133
- # @param [Sketchup::Edge, Sketchup::Face] face_or_edge
134
- # A Face or Edge ot test against.
135
- #
136
- # @return [Boolean]
137
- #
138
- # @version SketchUp 6.0
139
- def used_by?(face_or_edge)
140
- end
141
-
142
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # A Vertex. A Vertex represents the end of an Edge or a point inside a Face.
5
+ #
6
+ # @version SketchUp 6.0
7
+ class Sketchup::Vertex < Sketchup::Entity
8
+
9
+ # Instance Methods
10
+
11
+ # The common_edge method is used to find a common edge that is defined by this
12
+ # vertex and another vertex
13
+ #
14
+ # @example
15
+ # edge = entities[0]
16
+ # # returns array of vertices that make up the line
17
+ # verticies = edge.vertices
18
+ # vertex1 = verticies[0]
19
+ # vertex2 = verticies[1]
20
+ # edge = vertex1.common_edge vertex2
21
+ # if (edge)
22
+ # UI.messagebox edge
23
+ # else
24
+ # UI.messagebox "Failure"
25
+ # end
26
+ #
27
+ # @param [Sketchup::Vertex] vertex2
28
+ # A Vertex object.
29
+ #
30
+ # @return [Sketchup::Edge, nil] an Edge object common to both vertices if
31
+ # successful. Returns nil if there is no edge between the
32
+ # two vertices.
33
+ #
34
+ # @version SketchUp 6.0
35
+ def common_edge(vertex2)
36
+ end
37
+
38
+ # The {#curve_interior?} method is used to determine if this vertex is on the
39
+ # interior of a Curve.
40
+ #
41
+ # @example
42
+ # edge = entities[0]
43
+ # # returns array of vertices that make up the line
44
+ # verticies = edge.vertices
45
+ # vertex1 = verticies[0]
46
+ # status = vertex1.curve_interior?
47
+ # if (status)
48
+ # UI.messagebox status
49
+ # else
50
+ # #returns nil if vertex is not on interior of a Curve
51
+ # UI.messagebox "Failure"
52
+ # end
53
+ #
54
+ # @note This method doesn't actually return a boolean as the question mark
55
+ # post-fix would normally indicate. But the result still evaluates to
56
+ # truthy or falsy.
57
+ #
58
+ # @return [Boolean]
59
+ #
60
+ # @version SketchUp 6.0
61
+ def curve_interior?
62
+ end
63
+
64
+ # The edges method is used to retrieve an Array of edges that use the Vertex.
65
+ #
66
+ # @example
67
+ # edge = entities[0]
68
+ # # Returns array of vertices that make up the line.
69
+ # verticies = edge.vertices
70
+ # vertex1 = verticies[0]
71
+ # edges = vertex1.edges
72
+ #
73
+ # @return [Array<Sketchup::Edge>] an Array of edge objects if successful
74
+ #
75
+ # @version SketchUp 6.0
76
+ def edges
77
+ end
78
+
79
+ # The faces method is used to retrieve an Array of faces that use the vertex.
80
+ #
81
+ # @example
82
+ # edge = entities[0]
83
+ # # Returns array of vertices that make up the line.
84
+ # verticies = edge.vertices
85
+ # vertex1 = verticies[0]
86
+ # faces = vertex1.faces
87
+ #
88
+ # @return [Array<Sketchup::Face>] an Array of faces that use the vertex if
89
+ # successful
90
+ #
91
+ # @version SketchUp 6.0
92
+ def faces
93
+ end
94
+
95
+ # The loops method is used to retrieve an Array of loops that use the vertex.
96
+ #
97
+ # @example
98
+ # edge = entities[0]
99
+ # # Returns array of vertices that make up the line.
100
+ # verticies = edge.vertices
101
+ # vertex1 = verticies[0]
102
+ # loops = vertex1.loops
103
+ #
104
+ # @return [Array<Sketchup::Loop>] an Array of loops that use the vertex if
105
+ # successful
106
+ #
107
+ # @version SketchUp 6.0
108
+ def loops
109
+ end
110
+
111
+ # The position method is used to retrieve the Point3d position of a vertex.
112
+ #
113
+ # @example
114
+ # edge = entities[0]
115
+ # # Returns array of vertices that make up the line.
116
+ # verticies = edge.vertices
117
+ # vertex1 = verticies[0]
118
+ # position = vertex1.position
119
+ #
120
+ # @return [Geom::Point3d] a Point3d object representing the position of
121
+ # the vertex if successful
122
+ #
123
+ # @version SketchUp 6.0
124
+ def position
125
+ end
126
+
127
+ # The used_by? method is used to determine if the Vertex is used by a given
128
+ # Edge or Face.
129
+ #
130
+ # @example
131
+ # used = vertex1.used_by? my_face
132
+ #
133
+ # @param [Sketchup::Edge, Sketchup::Face] face_or_edge
134
+ # A Face or Edge ot test against.
135
+ #
136
+ # @return [Boolean]
137
+ #
138
+ # @version SketchUp 6.0
139
+ def used_by?(face_or_edge)
140
+ end
141
+
142
+ end
@@ -1,1301 +1,1307 @@
1
- # Copyright:: Copyright 2020 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # This class contains methods to manipulate the current point of view of the
5
- # model. The drawing methods here (draw_line, draw_polyline, etc) are meant to
6
- # be invoked within a tool's Tool.draw method. Calling them outside Tool.draw
7
- # will have no effect.
8
- #
9
- # You access the View by calling the Model.active_view method.
10
- #
11
- # @example
12
- # view = Sketchup.active_model.active_view
13
- #
14
- # @version SketchUp 6.0
15
- class Sketchup::View
16
-
17
- # Instance Methods
18
-
19
- # The add_observer method is used to add an observer to the current object.
20
- #
21
- # @example
22
- # view = Sketchup.active_model.active_view
23
- # status = view.add_observer observer
24
- #
25
- # @param [Object] observer
26
- # An observer.
27
- #
28
- # @return [Boolean] true if successful, false if unsuccessful.
29
- #
30
- # @version SketchUp 6.0
31
- def add_observer(observer)
32
- end
33
-
34
- # The animation= method is used to set an animation that is displayed for a
35
- # view. See Animation for details on how to create an animation object.
36
- #
37
- # @example
38
- # animation = ViewSpinner.new
39
- # model = Sketchup.active_model
40
- # view = model.active_view
41
- # anim = view.animation=animation
42
- # if (anim)
43
- # UI.messagebox anim
44
- # else
45
- # UI.messagebox "Failure"
46
- # end
47
- #
48
- # @param [#nextFrame] animation
49
- # An Animation object.
50
- #
51
- # @return [#nextFrame] the newly set Animation object
52
- #
53
- # @version SketchUp 6.0
54
- def animation=(animation)
55
- end
56
-
57
- # The average_refresh_time is used to set the average time used to refresh the
58
- # current model in the view. This can be used to estimate the frame rate for
59
- # an animation.
60
- #
61
- # @example
62
- # model = Sketchup.active_model
63
- # view = model.active_view
64
- # time = view.average_refresh_time
65
- #
66
- # @return [Float] the time in seconds
67
- #
68
- # @version SketchUp 6.0
69
- def average_refresh_time
70
- end
71
-
72
- # The camera method is used to retrieve the camera for the view.
73
- #
74
- # @example
75
- # camera = view.camera
76
- #
77
- # @return [Sketchup::Camera] a Camera object
78
- #
79
- # @version SketchUp 6.0
80
- def camera
81
- end
82
-
83
- # The {#camera=} method is used to set the camera for the view. If a transition
84
- # time is given, then it will animate the transition from the current camera
85
- # to the new one.
86
- #
87
- # @example
88
- # camera = Sketchup::Camera.new([5, 5, 9], [5, 10, 0], Z_AXIS)
89
- # view = Sketchup.active_model.active_view
90
- # view.camera = camera
91
- #
92
- # @overload camera=(camera)
93
- #
94
- # @param camera [Sketchup::Camera] The new Camera object.
95
- # @return [Sketchup::Camera]
96
- #
97
- # @overload camera=(camera_and_transition)
98
- #
99
- # @param camera_and_transition [Array(Sketchup::Camera, Float)]
100
- # The second item in the array represents the transition time from the
101
- # existing camera to the new one
102
- # @return [Array(Sketchup::Camera, Float)]
103
- #
104
- # @version SketchUp 6.0
105
- def camera=(arg)
106
- end
107
-
108
- # The center method is used to retrieve the coordinates of the center of the
109
- # view in pixels. It is returned as an array of 2 values for x and y.
110
- #
111
- # @example
112
- # model = Sketchup.active_model
113
- # view = model.active_view
114
- # c = view.center
115
- #
116
- # @return [Geom::Point3d] the center of the view
117
- #
118
- # @version SketchUp 6.0
119
- def center
120
- end
121
-
122
- # The corner method is used to retrieve the coordinates of one of the corners
123
- # of the view. The argument is an index between 0 and 3 that identifies which
124
- # corner you want. This method returns an array with two integers which are
125
- # the coordinates of the corner of the view in the view space. If the view
126
- # uses a Camera with a fixed aspect ratio, then the corners are the corners of
127
- # the viewing are of the camera which might be different than the actual
128
- # corners of the view itself.
129
- #
130
- # The index numbers are as follows:
131
- # - 0: top left,
132
- # - 1: top right,
133
- # - 2: bottom left,
134
- # - 3: bottom right.
135
- #
136
- # @example
137
- # point = view.corner index
138
- #
139
- # @param [Integer] index
140
- # A value between (or including) 0 and 3 identifying the
141
- # corner whose coordinate you want to retrieve.
142
- #
143
- # @return [Array(Integer, Integer)] a 2d array [w,h] representing the screen point
144
- #
145
- # @version SketchUp 6.0
146
- def corner(index)
147
- end
148
-
149
- # The {#draw} method is used to do basic drawing. This method can only be
150
- # called from within the {Tool#draw} method of a tool that you implement in
151
- # Ruby.
152
- #
153
- # The following constants are all OpenGL terms and have been externalized to
154
- # Ruby. Here is a summary of their meanings:
155
- #
156
- # [GL_POINTS]
157
- # Treats each vertex as a single point. Vertex n defines point n. N
158
- # points are drawn.
159
- #
160
- # [GL_LINES]
161
- # Treats each pair of vertices as
162
- # an independent line segment. Vertices 2n-1 and 2n define line n. N/2 lines
163
- # are drawn.
164
- #
165
- # [GL_LINE_STRIP]
166
- # Draws a connected group of line
167
- # segments from the first vertex to the last. Vertices n and n+1 define
168
- # line n. N-1 lines are drawn.
169
- #
170
- # [GL_LINE_LOOP]
171
- # Draws a connected group of line segments from the first vertex to the last,
172
- # then back to the first. Vertices n and n+1 define line n. The last line,
173
- # however, is defined by vertices N and 1. N lines are drawn.
174
- #
175
- # [GL_TRIANGLES]
176
- # Treats each triplet of vertices as an independent
177
- # triangle. Vertices 3n-2, 3n-1, and 3n define triangle n. N/3 triangles are
178
- # drawn.
179
- #
180
- # [GL_TRIANGLE_STRIP]
181
- # Draws a connected group of triangles. One triangle is defined for each
182
- # vertex presented after the first two vertices. For odd n, vertices n, n+1,
183
- # and n+2 define triangle n. For even n, vertices n+1, n, and n+2 define
184
- # triangle n. N-2 triangles are drawn.
185
- #
186
- # [GL_TRIANGLE_FAN]
187
- # Draws a connected group of triangles.
188
- # One triangle is defined for each vertex presented after the first two
189
- # vertices. Vertices 1, n+1, and n+2 define triangle n. N-2 triangles are
190
- # drawn.
191
- #
192
- # [GL_QUADS]
193
- # Treats each group of four vertices as an
194
- # independent quadrilateral. Vertices 4n-3, 4n-2, 4n-1, and 4n define
195
- # quadrilateral n. N/4 quadrilaterals are drawn.
196
- #
197
- # [GL_QUAD_STRIP]
198
- # Draws a connected group of quadrilaterals. One quadrilateral is
199
- # defined for each pair of vertices presented after the first pair.
200
- # Vertices 2n-1, 2n, 2n+2, and 2n+1 define quadrilateral n. N/2-1
201
- # quadrilaterals are drawn. Note that the order in which vertices are used to
202
- # construct a quadrilateral from strip data is different from that used with
203
- # independent data.
204
- #
205
- # [GL_POLYGON]
206
- # Draws a single, convex polygon. Vertices 1
207
- # through N define this polygon.
208
- #
209
- # @example
210
- # points = [
211
- # Geom::Point3d.new(0, 0, 0),
212
- # Geom::Point3d.new(9, 0, 0),
213
- # Geom::Point3d.new(9, 9, 0),
214
- # Geom::Point3d.new(0, 9, 0)
215
- # ]
216
- # view.draw(GL_LINE_LOOP, points)
217
- #
218
- # @note If you draw outside the model bounds you need to implement
219
- # {Tool#getExtents} which returns a bounding box large enough to include the
220
- # points you draw. Otherwise your drawing will be clipped.
221
- #
222
- # @overload draw(openglenum, points)
223
- #
224
- # @param [Integer] openglenum
225
- # The item you are going to draw, one of the constants
226
- # from the comments, such as +GL_LINES+.
227
- # @param [Array<Geom::Point3d>] points
228
- #
229
- # @overload draw(openglenum, *points)
230
- #
231
- # @param [Integer] openglenum
232
- # The item you are going to draw, one of the constants
233
- # from the comments, such as +GL_LINES+.
234
- # @param [Array<Geom::Point3d>] points
235
- #
236
- # @overload draw(openglenum, points, **options)
237
- #
238
- # @version SketchUp 2020.0
239
- # @param [Integer] openglenum
240
- # The item you are going to draw, one of the constants
241
- # from the comments, such as +GL_LINES+.
242
- # @param [Array<Geom::Point3d>] points
243
- # @param [Hash] options
244
- # @option options [Array<Geom::Vector3d>] :normals
245
- # Without normals the polygons will be rendered with flat shading. No
246
- # light will affect it. By providing an array of vertex normals lighting
247
- # is turned on and will use the model's current light. Note that the number
248
- # of normals must match the number of points provided.
249
- # @option options [Integer] :texture_id
250
- # A texture id provided by {#load_texture}.
251
- # @option options [Array<Geom::Vector3d>] :uvs
252
- # Set of UV (Not UVQ) coordinates matching the number of points provided.
253
- # This must be used along with the +:texture_id+ option.
254
- #
255
- # @overload draw(openglenum, *points, **options)
256
- #
257
- # @version SketchUp 2020.0
258
- # @param [Integer] openglenum
259
- # The item you are going to draw, one of the constants
260
- # from the comments, such as +GL_LINES+.
261
- # @param [Array<Geom::Point3d>] points
262
- # @param [Hash] options
263
- # @option options [Array<Geom::Vector3d>] :normals ([])
264
- # Without normals the polygons will be rendered with flat shading. No
265
- # light will affect it. By providing an array of vertex normals lighting
266
- # is turned on and will use the model's current light. Note that the number
267
- # of normals must match the number of points provided.
268
- # @option options [Integer] :texture_id
269
- # A texture id provided by {#load_texture}.
270
- # @option options [Array<Geom::Vector3d>] :uvs
271
- # Set of UV (Not UVQ) coordinates matching the number of points provided.
272
- # This must be used along with the +:texture_id+ option.
273
- #
274
- # @return [Sketchup::View]
275
- #
276
- # @see Tool#getExtents
277
- #
278
- # @version SketchUp 6.0
279
- def draw(*args)
280
- end
281
-
282
- # The {#draw2d} method is used to draw in screen space (using 2D screen
283
- # coordinates) instead of 3D space.
284
- #
285
- # The second parameter is an {Array} of {Geom::Point3d} objects (or several
286
- # individual {Geom::Point3d} objects). These {Geom::Point3d} objects are in
287
- # screen space, not 3D space.
288
- # The X value corresponds to the number of pixels from the left edge of the
289
- # drawing area. The Y value corresponds to the number of pixels down from
290
- # the top of the drawing area. The Z value is not used.
291
- #
292
- # @example
293
- # points = [
294
- # Geom::Point3d.new(0, 0, 0),
295
- # Geom::Point3d.new(8, 0, 0),
296
- # Geom::Point3d.new(8, 4, 0),
297
- # Geom::Point3d.new(0, 4, 0)
298
- # ]
299
- # view.draw2d(GL_LINE_STRIP, points)
300
- #
301
- # @overload draw2d(openglenum, points)
302
- #
303
- # @param [Integer] openglenum
304
- # The item you are going to draw, one of the constants
305
- # from the comments, such as +GL_LINES+.
306
- # @param [Array<Geom::Point3d>] points
307
- #
308
- # @overload draw2d(openglenum, *points)
309
- #
310
- # @param [Integer] openglenum
311
- # The item you are going to draw, one of the constants
312
- # from the comments, such as +GL_LINES+.
313
- # @param [Array<Geom::Point3d>] points
314
- #
315
- # @overload draw2d(openglenum, points, **options)
316
- #
317
- # @version SketchUp 2020.0
318
- # @param [Integer] openglenum
319
- # The item you are going to draw, one of the constants
320
- # from the comments, such as +GL_LINES+.
321
- # @param [Array<Geom::Point3d>] points
322
- # @param [Hash] options
323
- # @option options [Integer] :texture_id
324
- # A texture id provided by {#load_texture}.
325
- # @option options [Array<Geom::Vector3d>] :uvs
326
- # Set of UV (Not UVQ) coordinates matching the number of points provided.
327
- # This must be used along with the +:texture_id+ option.
328
- #
329
- # @overload draw2d(openglenum, *points, **options)
330
- #
331
- # @version SketchUp 2020.0
332
- # @param [Integer] openglenum
333
- # The item you are going to draw, one of the constants
334
- # from the comments, such as +GL_LINES+.
335
- # @param [Array<Geom::Point3d>] points
336
- # @param [Hash] options
337
- # @option options [Integer] :texture_id
338
- # A texture id provided by {#load_texture}.
339
- # @option options [Array<Geom::Vector3d>] :uvs
340
- # Set of UV (Not UVQ) coordinates matching the number of points provided.
341
- # This must be used along with the +:texture_id+ option.
342
- #
343
- # @return [Sketchup::View]
344
- #
345
- # @see #draw
346
- #
347
- # @see UI.scale_factor
348
- #
349
- # @version SketchUp 6.0
350
- def draw2d(*args)
351
- end
352
-
353
- # The draw_lines method is used to draw disconnected lines.
354
- #
355
- # You must have an even number of points. This method is usually invoked
356
- # within the draw method of a tool.
357
- #
358
- # @example
359
- # point4 = Geom::Point3d.new 0,0,0
360
- # point5 = Geom::Point3d.new 100,100,100
361
- # # returns a view
362
- # status = view.drawing_color="red"
363
- # status = view.draw_lines point4, point5
364
- #
365
- # @overload draw_lines(point_list, ...)
366
- #
367
- # @param point_list [Array<Geom::Point3d>] An even number of Point3d objects.
368
- # @return [Sketchup::View] returns the View object
369
- #
370
- # @overload draw_lines(pts)
371
- #
372
- # @param pts [Array<Geom::Point3d>] An array of Point3d objects.
373
- # @return [Sketchup::View] returns the View object
374
- #
375
- # @version SketchUp 6.0
376
- def draw_line(*args)
377
- end
378
-
379
- # The draw_lines method is used to draw disconnected lines.
380
- #
381
- # You must have an even number of points. This method is usually invoked
382
- # within the draw method of a tool.
383
- #
384
- # @example
385
- # point4 = Geom::Point3d.new 0,0,0
386
- # point5 = Geom::Point3d.new 100,100,100
387
- # # returns a view
388
- # status = view.drawing_color="red"
389
- # status = view.draw_lines point4, point5
390
- #
391
- # @overload draw_lines(point_list, ...)
392
- #
393
- # @param point_list [Array<Geom::Point3d>] An even number of Point3d objects.
394
- # @return [Sketchup::View] returns the View object
395
- #
396
- # @overload draw_lines(pts)
397
- #
398
- # @param pts [Array<Geom::Point3d>] An array of Point3d objects.
399
- # @return [Sketchup::View] returns the View object
400
- #
401
- # @version SketchUp 6.0
402
- def draw_lines(*args)
403
- end
404
-
405
- # This method is used to draw points.
406
- #
407
- # This method is usually invoked within the draw method of a tool.
408
- #
409
- # @example
410
- # point3 = Geom::Point3d.new 0,0,0
411
- # # returns a view
412
- # status = view.draw_points point3, 10, 1, "red"
413
- #
414
- # @param [Array<Geom::Point3d>] pts
415
- # An array of Point3d objects.
416
- #
417
- # @param [Integer] pointsize
418
- # Size of the point in pixels.
419
- #
420
- # @param [Sketchup::Color] pointcolor
421
- # Color of the point.
422
- #
423
- # @param [Integer] pointstyle
424
- # Style of the point. 1 = open square,
425
- # 2 = filled square, 3 = "+", 4 = "X", 5 = "*",
426
- # 6 = open triangle, 7 = filled triangle.
427
- #
428
- # @return [Sketchup::View] a View object
429
- #
430
- # @version SketchUp 6.0
431
- def draw_points(pts, pointsize = 6, pointstyle = 3, pointcolor = 'black')
432
- end
433
-
434
- # The draw_polyline method is used to draw a series of connected line segments
435
- # from pt1 to pt2 to pt3, and so on.
436
- #
437
- # This method is usually invoked within the draw method of a tool.
438
- #
439
- # @example
440
- # point12 = Geom::Point3d.new 0,0,0
441
- # point13 = Geom::Point3d.new 10,10,10
442
- # point14 = Geom::Point3d.new 20,20,20
443
- # point15 = Geom::Point3d.new 30,30,30
444
- # status = view.draw_polyline point12, point13, point14, point15
445
- #
446
- # @overload draw_polyline(point_list, ...)
447
- #
448
- # @param point_list [Array<Geom::Point3d>] An even number of Point3d objects.
449
- # @return [Sketchup::View] a View object
450
- #
451
- # @overload draw_polyline(pts)
452
- #
453
- # @param pts [Array<Geom::Point3d>] An array of Point3d objects.
454
- # @return [Sketchup::View] a View object
455
- #
456
- # @version SketchUp 6.0
457
- def draw_polyline(*args)
458
- end
459
-
460
- # This method is used to draw text on the screen and is usually invoked within
461
- # the draw method of a tool.
462
- #
463
- # The {TextVerticalAlignCenter} option will align the text to the center of the
464
- # height of the first line, not the whole boundingbox of the text. To align
465
- # around the full bounds of the text, use {#text_bounds} to compute the
466
- # desired alignment.
467
- #
468
- # <b>Example of different vertical alignment and text bounds:</b>
469
- #
470
- # rdoc-image:../images/view-draw-text-with-bounds.png
471
- #
472
- # @example
473
- # class ExampleTool
474
- # def draw(view)
475
- # # This works in all SketchUp versions and draws the text using the
476
- # # default font, color and size.
477
- # point = Geom::Point3d.new(200, 100, 0)
478
- # view.draw_text(point, "This is a test")
479
- #
480
- # # This works in SketchUp 2016 and up.
481
- # options = {
482
- # :font => "Arial",
483
- # :size => 20,
484
- # :bold => true,
485
- # :align => TextAlignRight
486
- # }
487
- # point = Geom::Point3d.new(200, 200, 0)
488
- # view.draw_text(point, "This is another\ntest", options)
489
- #
490
- # # You can also use Ruby 2.0's named arguments:
491
- # point = Geom::Point3d.new(200, 200, 0)
492
- # view.draw_text(point, "Hello world!", color: "Red")
493
- # end
494
- # end
495
- #
496
- # @example Cross Platform Font Size
497
- # class ExampleTool
498
- # IS_WIN = Sketchup.platform == :platform_win
499
- #
500
- # def draw(view)
501
- # draw_text(view, [100, 200, 0], "Hello World", size: 20)
502
- # end
503
- #
504
- # private
505
- #
506
- # # This will ensure text is drawn with consistent size across platforms,
507
- # # using pixels as size units.
508
- # def draw_text(view, position, text, **options)
509
- # native_options = options.dup
510
- # if IS_WIN && options.key?(:size)
511
- # native_options[:size] = pixels_to_points(size)
512
- # end
513
- # view.draw_text(position, text, **native_options)
514
- # end
515
- #
516
- # def pixels_to_points(pixels)
517
- # ((pixels.to_f / 96.0) * 72.0).round
518
- # end
519
- # end
520
- #
521
- # @note Under Windows the font name must be less than 32 characters - due to
522
- # system limitations.
523
- #
524
- # @note As of SU2017 this will automatically scale the font-size by the same
525
- # factor as {UI.scale_factor}.
526
- #
527
- # @note The font size is platform dependent. On Windows the method expects
528
- # points, where on Mac it's pixels. See "Cross Platform Font Size" example
529
- # for details.
530
- #
531
- # @overload draw_text(point, text)
532
- #
533
- # @param [Geom::Point3d] point A Point3d object representing a 2D coordinate
534
- # in view space.
535
- # @param [String] text The text string to draw.
536
- #
537
- # @overload draw_text(point, text, options = {})
538
- #
539
- # @version SketchUp 2016
540
- # @param [Geom::Point3d] point A Point3d object representing a 2D coordinate
541
- # in view space.
542
- # @param [String] text The text string to draw.
543
- # @param [Hash] options The text can be customized by providing a hash or
544
- # named arguments of options.
545
- # @option options [String] :font The name of the font to use. If it does not
546
- # exist on the system, a default font will be used instead.
547
- # @option options [Integer] :size The size of the font in points
548
- # @option options [Boolean] :bold Controls the Bold property of the font.
549
- # @option options [Boolean] :italic Controls the Italic property of the font.
550
- # @option options [Sketchup::Color] :color The color to draw the text with.
551
- # @option options [Integer] :align The text alignment, one of the following
552
- # constants: {TextAlignLeft}, {TextAlignCenter} or {TextAlignRight}.
553
- # @option options [Integer] :vertical_align <b>Added SketchUp 2020.0.</b>
554
- # The vertical text alignment, one of the following constants:
555
- # {TextVerticalAlignBoundsTop}, {TextVerticalAlignBaseline},
556
- # {TextVerticalAlignCapHeight} or {TextVerticalAlignCenter}. Note that
557
- # some fonts on Mac might not align as expected due to the system
558
- # reporting incorrect font metrics.
559
- #
560
- # @return [Sketchup::View]
561
- #
562
- # @version SketchUp 6.0
563
- def draw_text(*args)
564
- end
565
-
566
- # The drawing_color method is used to set the color that is used for drawing
567
- # to the view.
568
- #
569
- # This method is usually invoked within the draw method of a tool.
570
- #
571
- # @example
572
- # view = view.drawing_color = color
573
- #
574
- # @param [Sketchup::Color, String] color
575
- # A Color object.
576
- #
577
- # @return [Sketchup::View]
578
- #
579
- # @version SketchUp 6.0
580
- def drawing_color=(color)
581
- end
582
-
583
- # The dynamic= method allows you to degrade visual quality while improving
584
- # performance when a model is large and view refresh time is slow. For
585
- # example, if you were using a Ruby script to animate the camera through
586
- # a large scene, you may want to set dynamic to true during that time.
587
- #
588
- # See also camera.rb which is part of the film and stage ruby
589
- # scripts.
590
- #
591
- # @deprecated This method is no longer doing anything.
592
- #
593
- # @example
594
- # view.dynamic = true
595
- #
596
- # @param [Boolean] value
597
- #
598
- # @return [Boolean]
599
- #
600
- # @version SketchUp 6.0
601
- def dynamic=(value)
602
- end
603
-
604
- # The field_of_view method is used get the view's field of view setting, in
605
- # degrees.
606
- #
607
- # @example
608
- # fov = Sketchup.active_model.active_view.field_of_view
609
- #
610
- # @return [Float] the field of view
611
- #
612
- # @version SketchUp 6.0
613
- def field_of_view
614
- end
615
-
616
- # The field_of_view= method is used set the view's field of view setting,
617
- # in degrees.
618
- #
619
- # @example
620
- # my_view = Sketchup.active_model.active_view
621
- # my_view.field_of_view = 45
622
- # my_view.invalidate
623
- #
624
- # @param [Numeric] fov
625
- # the field of view
626
- #
627
- # @return [Numeric]
628
- #
629
- # @version SketchUp 6.0
630
- def field_of_view=(fov)
631
- end
632
-
633
- # The guess_target method is used to guess at what the user is looking at when
634
- # you have a perspective view.
635
- #
636
- # This method is useful when writing a viewing tool. See also camera.rb which
637
- # is part of the film and stage ruby scripts.
638
- #
639
- # @example
640
- # target = view.guess_target
641
- #
642
- # @return [Geom::Point3d] a Point3d object representing the point in the
643
- # model that the user is likely interested in.
644
- #
645
- # @version SketchUp 6.0
646
- def guess_target(*args)
647
- end
648
-
649
- # The inference_locked? method is used to determine if inference locking is on
650
- # for the view.
651
- #
652
- # @example
653
- # model = Sketchup.active_model
654
- # view = model.active_view
655
- # status = view.inference_locked
656
- #
657
- # @return [Boolean]
658
- #
659
- # @version SketchUp 6.0
660
- def inference_locked?
661
- end
662
-
663
- # The inputpoint method is used to retrieve an input point.
664
- #
665
- # This will normally be used inside one of the mouse event handling methods in
666
- # a tool. Usually, it is preferable to create the InputPoint first and then
667
- # use the pick method on it.
668
- #
669
- # @example
670
- # inputpoint = view.inputpoint x, y, inputpoint1
671
- #
672
- # @param [Numeric] x
673
- # A x value.
674
- #
675
- # @param [Numeric] y
676
- # A y value.
677
- #
678
- # @param [Sketchup::InputPoint] inputpoint1
679
- # An InputPoint object.
680
- #
681
- # @return [Sketchup::InputPoint]
682
- #
683
- # @version SketchUp 6.0
684
- def inputpoint(x, y, inputpoint1)
685
- end
686
-
687
- # The invalidate method is used mark the view as in need of a redraw.
688
- #
689
- # @example
690
- # model = Sketchup.active_model
691
- # view = model.active_view
692
- # invalidated_view = view.invalidate
693
- #
694
- # @note This is the preferred method to update the viewport. Use this before
695
- # trying to use {#refresh}.
696
- #
697
- # @return [Sketchup::View] the invalidated View object
698
- #
699
- # @version SketchUp 6.0
700
- def invalidate
701
- end
702
-
703
- # The last_refresh_time method is used to retrieve the time for the last full
704
- # view refresh.
705
- #
706
- # @example
707
- # time = view.last_refresh_time
708
- #
709
- # @return [Float] time in milliseconds
710
- #
711
- # @version SketchUp 6.0
712
- def last_refresh_time(*args)
713
- end
714
-
715
- # The line_stipple= method is used to set the line pattern to use for drawing.
716
- # The stipple pattern is given as a string.
717
- # Valid strings are:
718
- # "." (Dotted Line),
719
- # "-" (Short Dashes Line),
720
- # "_" (Long Dashes Line),
721
- # "-.-" (Dash Dot Dash Line),
722
- # "" (Solid Line).
723
- #
724
- # This method is usually invoked within the draw method of a tool.
725
- #
726
- # @example
727
- # point8 = Geom::Point3d.new 0,0,0
728
- # point9 = Geom::Point3d.new 100,100,100
729
- # view.line_stipple = "-.-"
730
- # view = view.draw_lines point8, point9
731
- #
732
- # @param [String] pattern
733
- # A string stipple pattern, such as "-.-"
734
- #
735
- # @return [Sketchup::View] the View object
736
- #
737
- # @version SketchUp 6.0
738
- def line_stipple=(pattern)
739
- end
740
-
741
- # The line_width= method is used to set the line width to use for drawing. The
742
- # value is a Double indicating the desired width in pixels.
743
- #
744
- # This method is usually invoked within the draw method of a tool.
745
- #
746
- # @example
747
- # view.line_width = width
748
- #
749
- # @note As of SU2017 this will automatically scale the line width by the same
750
- # factor as {UI.scale_factor}.
751
- #
752
- # @param [Integer] width
753
- # The width in pixels.
754
- #
755
- # @return [Integer]
756
- #
757
- # @version SketchUp 6.0
758
- def line_width=(width)
759
- end
760
-
761
- # Loads a texture to be drawn with {#draw} or {#draw2d}.
762
- #
763
- # @example
764
- # module Example
765
- # class MyTool
766
- #
767
- # def activate
768
- # view = Sketchup.active_model.active_view
769
- # image_rep = view.model.materials.current.texture.image_rep
770
- # @texture_id = view.load_texture(image_rep)
771
- # end
772
- #
773
- # def deactivate(view)
774
- # view.release_texture(@texture_id)
775
- # end
776
- #
777
- # def draw(view)
778
- # points = [ [0, 0, 0], [9, 0, 0], [9, 9, 0], [0, 9, 0] ]
779
- # uvs = [ [0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0] ]
780
- # view.draw(points, texture_id: @texture_id, uvs: uvs)
781
- # end
782
- #
783
- # end
784
- # end
785
- # Sketchup.active_model.select_tool(Example::MyTool.new)
786
- #
787
- # @note To conserve resources on the user's machine, textures can be loaded
788
- # only when there is a Ruby tool on the tool stack. Make sure to release the
789
- # texture when it's no longer needed. Any textures not already released
790
- # when the last Ruby tool on the tool stack is removed will be automatically
791
- # released by SketchUp.
792
- #
793
- # @note Avoid loading and releasing textures within the {Sketchup::Tool#draw}
794
- # event as that is not efficient.
795
- #
796
- # @param [Sketchup::ImageRep] image_rep
797
- #
798
- # @raise [ArgumentError] if the provided {Sketchup::ImageRep} is not valid.
799
- #
800
- # @raise [RuntimeError] if a Ruby tool was not on the tool stack.
801
- #
802
- # @return [Integer] A resource ID referring to the image loaded.
803
- #
804
- # @see #release_texture
805
- #
806
- # @see #draw
807
- def load_texture(image_rep)
808
- end
809
-
810
- # The lock_inference method is used to lock or unlock an inference.
811
- #
812
- # This method will typically be called from inside a tool class when the user
813
- # presses the shift key.
814
- #
815
- # With no arguments it unlocks all inferences. With one or two arguments, it
816
- # locks the inference based on the given InputPoint(s).
817
- #
818
- # @example
819
- # view = view.lock_inference
820
- # view = view.lock_inference(inputpoint)
821
- # view = view.lock_inference(inputpoint1, inputpoint2)
822
- #
823
- # @overload lock_inference
824
- #
825
- #
826
- # @overload lock_inference(inputpoint)
827
- #
828
- # @param [Sketchup::InputPoint] inputpoint
829
- # 1st InputPoint to inference to.
830
- #
831
- # @overload lock_inference(inputpoint, inputpoint2)
832
- #
833
- # @param [Sketchup::InputPoint] inputpoint
834
- # 1st InputPoint to inference to.
835
- # @param [Sketchup::InputPoint] inputpoint2
836
- # 2nd InputPoint to inference to.
837
- #
838
- # @return [Sketchup::View] a View object
839
- #
840
- # @version SketchUp 6.0
841
- def lock_inference(*args)
842
- end
843
-
844
- # The model method is used to retrieve the model for the current view.
845
- #
846
- # @example
847
- # model = view.model
848
- #
849
- # @return [Sketchup::Model] the model for this view
850
- #
851
- # @version SketchUp 6.0
852
- def model
853
- end
854
-
855
- # The pick_helper method is used to retrieve a pick helper for the view. See
856
- # the PickHelper class for information on pick helpers.
857
- #
858
- # This call returns an initialized PickHelper.
859
- #
860
- # @example
861
- # model = Sketchup.active_model
862
- # view = model.active_view
863
- # ph = view.pick_helper
864
- #
865
- # @overload pick_helper
866
- #
867
- # @return [Sketchup::PickHelper] a PickHelper object
868
- #
869
- # @overload pick_helper(x, y, aperture = 0)
870
- #
871
- # @param [Integer] x
872
- # @param [Integer] y
873
- # @param [Integer] aperture
874
- # @return [Sketchup::PickHelper] a PickHelper object
875
- #
876
- # @version SketchUp 6.0
877
- def pick_helper(*args)
878
- end
879
-
880
- # The pickray method is used to retrieve a ray passing through a given screen
881
- # position in the viewing direction.
882
- #
883
- # @example
884
- # ray = view.pickray x, y
885
- #
886
- # @overload pickray(screen_point)
887
- #
888
- # @param [Array(Integer, Integer)] screen_point
889
- # @return [Array(Geom::Point3d, Geom::Vector3d)] a ray
890
- #
891
- # @overload pickray(x, y)
892
- #
893
- # @param [Integer] x
894
- # @param [Integer] y
895
- # @return [Array(Geom::Point3d, Geom::Vector3d)] a ray
896
- #
897
- # @version SketchUp 6.0
898
- def pickray(*args)
899
- end
900
-
901
- # The pixels_to_model method is used to compute a model size from a pixel size
902
- # at a given point.
903
- #
904
- # This method is useful for deciding how big to draw something based on a
905
- # desired size in pixels.
906
- #
907
- # @example
908
- # size = view.pixels_to_model(pixels, point)
909
- #
910
- # @note As of SU2017 this will automatically scale the pixel-size by the same
911
- # factor as {UI.scale_factor}.
912
- #
913
- # @param [Numeric] pixels
914
- # The pixel size.
915
- #
916
- # @param [Geom::Point3d] point
917
- # A Point3d object where the size will be calculated from.
918
- #
919
- # @return [Float] the model size
920
- #
921
- # @version SketchUp 6.0
922
- def pixels_to_model(pixels, point)
923
- end
924
-
925
- # The refresh method is used to immediately force a redraw of the view.
926
- #
927
- # @example
928
- # model = Sketchup.active_model
929
- # view = model.active_view
930
- # refreshed_view = view.refresh
931
- #
932
- # @note This method might impact performance and if used incorrectly cause
933
- # instability or crashes. Don't use this unless you have verified that
934
- # you cannot use {#invalidate} instead.
935
- #
936
- # @return [Sketchup::View] the refreshed View object
937
- #
938
- # @version SketchUp 7.1
939
- def refresh
940
- end
941
-
942
- # Releases a texture loaded via {#load_texture}, freeing up it's memory.
943
- # It's good practice to do so whenever there is no longer any need for the
944
- # resource.
945
- #
946
- # For example, when your tool deactivates you probably want to release your
947
- # resources as you don't know if your tool will be used again.
948
- #
949
- # @example
950
- # module Example
951
- # class MyTool
952
- #
953
- # def activate
954
- # view = Sketchup.active_model.active_view
955
- # image_rep = view.model.materials.current.texture.image_rep
956
- # @texture_id = view.load_texture(image_rep)
957
- # end
958
- #
959
- # def deactivate(view)
960
- # view.release_texture(@texture_id)
961
- # end
962
- #
963
- # def draw(view)
964
- # points = [ [0, 0, 0], [9, 0, 0], [9, 9, 0], [0, 9, 0] ]
965
- # uvs = [ [0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0] ]
966
- # view.draw(points, texture_id: @texture_id, uvs: uvs)
967
- # end
968
- #
969
- # end
970
- # end
971
- # Sketchup.active_model.select_tool(Example::MyTool.new)
972
- #
973
- # @param [Integer] texture_id
974
- #
975
- # @return [Boolean] +true+ if texture was released. +false+ otherwise.
976
- #
977
- # @see #load_texture
978
- def release_texture(texture_id)
979
- end
980
-
981
- # The remove_observer method is used to remove an observer from the current
982
- # object.
983
- #
984
- # @example
985
- # view = Sketchup.active_model.active_view
986
- # status = view.remove_observer observer
987
- #
988
- # @param [Object] observer
989
- # An observer.
990
- #
991
- # @return [Boolean] true if successful, false if unsuccessful.
992
- #
993
- # @version SketchUp 6.0
994
- def remove_observer(observer)
995
- end
996
-
997
- # The screen_coords method is used to retrieve the screen coordinates of the
998
- # given point on the screen.
999
- #
1000
- # The x and y values returned correspond to the x and y screen coordinates.
1001
- # Ignore the z values. If the referenced point is not in the current
1002
- # viewport, the x and/or y value may be negative.
1003
- #
1004
- # @example
1005
- # point = view.screen_coords(ORIGIN)
1006
- #
1007
- # @param [Geom::Point3d] point3d
1008
- # A Point3d object.
1009
- #
1010
- # @return [Geom::Point3d] A Point3d containing the screen position
1011
- #
1012
- # @version SketchUp 6.0
1013
- def screen_coords(point3d)
1014
- end
1015
-
1016
- # Set the drawing color for the view based on the direction of a line that you
1017
- # want to draw. These colors will match the axes colors in the SketchUp model
1018
- # (typically blue for straight up and down, etc.)
1019
- #
1020
- # This method is usually invoked within the draw method of a tool.
1021
- #
1022
- # @example
1023
- # view = view.set_color_from_line point1, point2
1024
- #
1025
- # @param [Geom::Point3d] point1
1026
- # Point3d object representing first point in the line.
1027
- #
1028
- # @param [Geom::Point3d] point2
1029
- # Point3d object representing the second point in the line.
1030
- #
1031
- # @return [Sketchup::View] a View object
1032
- #
1033
- # @version SketchUp 6.0
1034
- def set_color_from_line(point1, point2)
1035
- end
1036
-
1037
- # The show_frame method is used to show a frame of an Animation object in the
1038
- # current view.
1039
- #
1040
- # You can supply an optional delay in seconds to wait before showing the next
1041
- # frame. This can be useful to control the speed at which the animation runs.
1042
- #
1043
- # @example
1044
- # status = view.show_frame delay
1045
- #
1046
- # @param [Numeric] delay
1047
- # An optional delay in seconds.
1048
- #
1049
- # @return [Sketchup::View]
1050
- #
1051
- # @version SketchUp 6.0
1052
- def show_frame(delay)
1053
- end
1054
-
1055
- # This method is used to compute the bounds of the text when
1056
- # using {#draw_text}. The bounds are not a tight fit around the top and bottom
1057
- # as they include varying amount of line spacing depending on the font used.
1058
- #
1059
- # The {TextVerticalAlignCenter} option will align the text to the center of the
1060
- # height of the first line, not the whole boundingbox of the text.
1061
- #
1062
- # <b>Example of different vertical alignment and text bounds:</b>
1063
- #
1064
- # rdoc-image:../images/view-draw-text-with-bounds.png
1065
- #
1066
- # @example
1067
- # class ExampleTool
1068
- # TEXT_OPTIONS = {
1069
- # :font => "Arial",
1070
- # :size => 20,
1071
- # :bold => true,
1072
- # :align => TextAlignRight,
1073
- # :align => TextVerticalAlignBaseline
1074
- # }
1075
- #
1076
- # # Since `draw` is called frequently it can be useful to pre-compute and
1077
- # # cache values used by `draw`.
1078
- # def activate
1079
- # @text = "Hello SketchUp"
1080
- # @position = Geom::Point3d.new(200, 200, 0)
1081
- #
1082
- # # Compute text bounds
1083
- # view = Sketchup.active_model.active_view
1084
- # bounds = view.text_bounds(@position, @text, TEXT_OPTIONS)
1085
- #
1086
- # # Compute polygon for the text bounds
1087
- # x1, y1 = bounds.upper_left.to_a
1088
- # x2, y2 = bounds.lower_right.to_a
1089
- # @points = [
1090
- # Geom::Point3d.new(x1, y1),
1091
- # Geom::Point3d.new(x1, y2),
1092
- # Geom::Point3d.new(x2, y2),
1093
- # Geom::Point3d.new(x2, y1),
1094
- # ]
1095
- # end
1096
- #
1097
- # def draw(view)
1098
- # # Draw text bounds
1099
- # view.drawing_color = Sketchup::Color.new(255, 0, 0, 64)
1100
- # view.draw2d(GL_QUADS, @points)
1101
- #
1102
- # # Draw text
1103
- # view.draw_text(@position, @text, TEXT_OPTIONS)
1104
- # end
1105
- # end
1106
- #
1107
- # @note Under Windows the font name must be less than 32 characters - due to
1108
- # system limitations.
1109
- #
1110
- # @option options [String] :font The name of the font to use. If it does not
1111
- # exist on the system, a default font will be used instead.
1112
- #
1113
- # @option options [Integer] :size The size of the font in points
1114
- #
1115
- # @option options [Boolean] :bold Controls the Bold property of the font.
1116
- #
1117
- # @option options [Boolean] :italic Controls the Italic property of the font.
1118
- #
1119
- # @option options [Integer] :align The text alignment, one of the following
1120
- # constants: {TextAlignLeft}, {TextAlignCenter} or {TextAlignRight}.
1121
- #
1122
- # @option options [Integer] :vertical_align The vertical text alignment
1123
- # one of the following constants:
1124
- # {TextVerticalAlignBoundsTop}, {TextVerticalAlignBaseline},
1125
- # {TextVerticalAlignCapHeight} or {TextVerticalAlignCenter}.
1126
- #
1127
- # @param [Geom::Point3d] point
1128
- # A Point3d object representing a 2D coordinate
1129
- # in view space.
1130
- #
1131
- # @param [String] text
1132
- # The text string to draw.
1133
- #
1134
- # @param [Hash] options
1135
- # The text can be customized by providing a hash or
1136
- # named arguments of options.
1137
- #
1138
- # @return [Geom::Bounds2d]
1139
- #
1140
- # @see #draw_text
1141
- #
1142
- # @version SketchUp 2020.0
1143
- def text_bounds(point, text, options = {})
1144
- end
1145
-
1146
- # Set a tooltip to display in the view. This is useful for displaying tooltips
1147
- # in a tool that you write in Ruby.
1148
- #
1149
- # @example
1150
- # tooltip = view.tooltip = string
1151
- #
1152
- # @param [String] string
1153
- # The string tooltip.
1154
- #
1155
- # @return [String] the new tooltip string
1156
- #
1157
- # @version SketchUp 6.0
1158
- def tooltip=(string)
1159
- end
1160
-
1161
- # The vpheight method is used to retrieve the height of the viewport for the
1162
- # view.
1163
- #
1164
- # @example
1165
- # model = Sketchup.active_model
1166
- # view = model.active_view
1167
- # height = view.vpheight
1168
- #
1169
- # @return [Integer] the height of the viewport in pixels.
1170
- #
1171
- # @version SketchUp 6.0
1172
- def vpheight
1173
- end
1174
-
1175
- # The vpwidth method is used to retrieve the width of the viewport for the
1176
- # view.
1177
- #
1178
- # @example
1179
- # width = view.vpwidth
1180
- #
1181
- # @return [Integer] the width of the viewport in pixels.
1182
- #
1183
- # @version SketchUp 6.0
1184
- def vpwidth
1185
- end
1186
-
1187
- # The {#write_image} method is used to write the current view to an image file.
1188
- #
1189
- # @overload write_image(filename, width = view.vpwidth, height = view.vpheight, antialias = false, compression = 1.0)
1190
- #
1191
- # @note Prefer the overload with option hash instead of this variant. This
1192
- # overload is not updated with new options.
1193
- #
1194
- # @example
1195
- # filename => "c:/tmp/write_image.png"
1196
- # antialias => false
1197
- # compression => 0.9
1198
- # model = Sketchup.active_model
1199
- # view = model.active_view
1200
- # view.write_image(filename, 640, 480, antialias, compression)
1201
- #
1202
- # @param [String] filename
1203
- # The filename for the saved image
1204
- # @param [Integer] width
1205
- # Width in pixels, defaults to the current viewport width {#vpwidth}.
1206
- # @param [Integer] height
1207
- # Height in pixels, defaults to the current viewport height {#vpheight}.
1208
- # @param [Boolean] antialias
1209
- # @param [Float] compression
1210
- # Compression factor for JPEG images, between +0.0+ and +1.0+.
1211
- #
1212
- # @overload write_image(options)
1213
- #
1214
- # @example
1215
- # options = {
1216
- # :filename => "c:/tmp/write_image.png",
1217
- # :width => 640,
1218
- # :height => 480,
1219
- # :antialias => false,
1220
- # :compression => 0.9,
1221
- # :transparent => true
1222
- # }
1223
- # model = Sketchup.active_model
1224
- # view = model.active_view
1225
- # view.write_image(options)
1226
- #
1227
- # @version SketchUp 7
1228
- # @param [Hash] options
1229
- # @option options [String] filename The filename for the saved image.
1230
- # @option options [Integer] width (#vpwidth) Width in pixels (max +1600+).
1231
- # @option options [Integer] height (#vpheight) Height in pixels (max +16000+).
1232
- # @option options [Float] scale_factor (1.0) Scaling factor for
1233
- # elements that are viewport dependent, such as text heights, arrow heads,
1234
- # line widths, stipple patterns, etc. (Added in SketchUp 2019.2)
1235
- # @option options [Boolean] antialias (false)
1236
- # @option options [Float] compression (1.0) Compression factor for JPEG,
1237
- # images between +0.0+ and +1.0+.
1238
- # @option options [Boolean] transparent (false) Added in SketchUp 8.
1239
- #
1240
- # @overload write_image(options)
1241
- #
1242
- # It is possible to dump the framebuffer to file by setting +:source+ to
1243
- # +:framebuffer+. When saving the framebuffer only the following options are
1244
- # valid.
1245
- #
1246
- # @example
1247
- # options = {
1248
- # :filename => "c:/tmp/write_image.png",
1249
- # :source => :framebuffer,
1250
- # :compression => 0.9,
1251
- # }
1252
- # model = Sketchup.active_model
1253
- # view = model.active_view
1254
- # view.write_image(options)
1255
- #
1256
- # @version SketchUp 7
1257
- # @param [Hash] options
1258
- # @option options [String] filename The filename for the saved image.
1259
- # @option options [Boolean] source (:image) Set to +:framebuffer+ to dump the
1260
- # current framebuffer.
1261
- # @option options [Float] compression (1.0) Compression factor for JPEG,
1262
- # images between +0.0+ and +1.0+.
1263
- #
1264
- # @return [Boolean]
1265
- #
1266
- # @version SketchUp 6.0
1267
- def write_image(*args)
1268
- end
1269
-
1270
- # The zoom method is used to zoom in or out by some zoom factor.
1271
- #
1272
- # @example
1273
- # view = view.zoom factor
1274
- # view = view.zoom selection
1275
- # view = view.zoom entity
1276
- # view = view.zoom array_of_entities
1277
- #
1278
- # @param [Numeric, Sketchup::Selection, Sketchup::Entity, Array<Sketchup::Entity>] zoom_or_ents
1279
- # A Float zoom factor from 1.0 or larger or an Array or
1280
- # collection of entities to "zoom extents" around.
1281
- #
1282
- # @return [Sketchup::View] the zoomed View object
1283
- #
1284
- # @version SketchUp 6.0
1285
- def zoom(zoom_or_ents)
1286
- end
1287
-
1288
- # The zoom_extents method is used to zoom to the extents about the entire
1289
- # model, as if the user has selected the zoom extents command from the menu.
1290
- #
1291
- # @example
1292
- # view = Sketchup.active_model.active_view
1293
- # new_view = view.zoom_extents
1294
- #
1295
- # @return [Sketchup::View] the zoomed View object
1296
- #
1297
- # @version SketchUp 6.0
1298
- def zoom_extents
1299
- end
1300
-
1301
- end
1
+ # Copyright:: Copyright 2020 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # This class contains methods to manipulate the current point of view of the
5
+ # model. The drawing methods here (draw_line, draw_polyline, etc) are meant to
6
+ # be invoked within a tool's Tool.draw method. Calling them outside Tool.draw
7
+ # will have no effect.
8
+ #
9
+ # You access the View by calling the Model.active_view method.
10
+ #
11
+ # @example
12
+ # view = Sketchup.active_model.active_view
13
+ #
14
+ # @version SketchUp 6.0
15
+ class Sketchup::View
16
+
17
+ # Instance Methods
18
+
19
+ # The add_observer method is used to add an observer to the current object.
20
+ #
21
+ # @example
22
+ # view = Sketchup.active_model.active_view
23
+ # status = view.add_observer observer
24
+ #
25
+ # @param [Object] observer
26
+ # An observer.
27
+ #
28
+ # @return [Boolean] true if successful, false if unsuccessful.
29
+ #
30
+ # @version SketchUp 6.0
31
+ def add_observer(observer)
32
+ end
33
+
34
+ # The animation= method is used to set an animation that is displayed for a
35
+ # view. See Animation for details on how to create an animation object.
36
+ #
37
+ # @example
38
+ # animation = ViewSpinner.new
39
+ # model = Sketchup.active_model
40
+ # view = model.active_view
41
+ # anim = view.animation=animation
42
+ # if (anim)
43
+ # UI.messagebox anim
44
+ # else
45
+ # UI.messagebox "Failure"
46
+ # end
47
+ #
48
+ # @param [#nextFrame] animation
49
+ # An Animation object.
50
+ #
51
+ # @return [#nextFrame] the newly set Animation object
52
+ #
53
+ # @version SketchUp 6.0
54
+ def animation=(animation)
55
+ end
56
+
57
+ # The average_refresh_time is used to set the average time used to refresh the
58
+ # current model in the view. This can be used to estimate the frame rate for
59
+ # an animation.
60
+ #
61
+ # @example
62
+ # model = Sketchup.active_model
63
+ # view = model.active_view
64
+ # time = view.average_refresh_time
65
+ #
66
+ # @return [Float] the time in seconds
67
+ #
68
+ # @version SketchUp 6.0
69
+ def average_refresh_time
70
+ end
71
+
72
+ # The camera method is used to retrieve the camera for the view.
73
+ #
74
+ # @example
75
+ # camera = view.camera
76
+ #
77
+ # @return [Sketchup::Camera] a Camera object
78
+ #
79
+ # @version SketchUp 6.0
80
+ def camera
81
+ end
82
+
83
+ # The {#camera=} method is used to set the camera for the view. If a transition
84
+ # time is given, then it will animate the transition from the current camera
85
+ # to the new one.
86
+ #
87
+ # @example
88
+ # camera = Sketchup::Camera.new([5, 5, 9], [5, 10, 0], Z_AXIS)
89
+ # view = Sketchup.active_model.active_view
90
+ # view.camera = camera
91
+ #
92
+ # @overload camera=(camera)
93
+ #
94
+ # @param [Sketchup::Camera] camera The new camera object.
95
+ #
96
+ # @overload camera=(camera_and_transition)
97
+ #
98
+ # @param [Array(Sketchup::Camera, Float)] camera_and_transition
99
+ # The second item in the array represents the transition time from the
100
+ # existing camera to the new one.
101
+ #
102
+ # @version SketchUp 6.0
103
+ def camera=(arg)
104
+ end
105
+
106
+ # The center method is used to retrieve the coordinates of the center of the
107
+ # view in pixels. It is returned as an array of 2 values for x and y.
108
+ #
109
+ # @example
110
+ # model = Sketchup.active_model
111
+ # view = model.active_view
112
+ # c = view.center
113
+ #
114
+ # @return [Geom::Point3d] the center of the view
115
+ #
116
+ # @version SketchUp 6.0
117
+ def center
118
+ end
119
+
120
+ # The corner method is used to retrieve the coordinates of one of the corners
121
+ # of the view. The argument is an index between 0 and 3 that identifies which
122
+ # corner you want. This method returns an array with two integers which are
123
+ # the coordinates of the corner of the view in the view space. If the view
124
+ # uses a Camera with a fixed aspect ratio, then the corners are the corners of
125
+ # the viewing are of the camera which might be different than the actual
126
+ # corners of the view itself.
127
+ #
128
+ # The index numbers are as follows:
129
+ # - 0: top left,
130
+ # - 1: top right,
131
+ # - 2: bottom left,
132
+ # - 3: bottom right.
133
+ #
134
+ # @example
135
+ # point = view.corner index
136
+ #
137
+ # @param [Integer] index
138
+ # A value between (or including) 0 and 3 identifying the
139
+ # corner whose coordinate you want to retrieve.
140
+ #
141
+ # @return [Array(Integer, Integer)] a 2d array [w,h] representing the screen point
142
+ #
143
+ # @version SketchUp 6.0
144
+ def corner(index)
145
+ end
146
+
147
+ # The {#draw} method is used to do basic drawing. This method can only be
148
+ # called from within the {Tool#draw} method of a tool that you implement in
149
+ # Ruby.
150
+ #
151
+ # The following constants are all OpenGL terms and have been externalized to
152
+ # Ruby. Here is a summary of their meanings:
153
+ #
154
+ # [GL_POINTS]
155
+ # Treats each vertex as a single point. Vertex n defines point n. N
156
+ # points are drawn.
157
+ #
158
+ # [GL_LINES]
159
+ # Treats each pair of vertices as
160
+ # an independent line segment. Vertices 2n-1 and 2n define line n. N/2 lines
161
+ # are drawn.
162
+ #
163
+ # [GL_LINE_STRIP]
164
+ # Draws a connected group of line
165
+ # segments from the first vertex to the last. Vertices n and n+1 define
166
+ # line n. N-1 lines are drawn.
167
+ #
168
+ # [GL_LINE_LOOP]
169
+ # Draws a connected group of line segments from the first vertex to the last,
170
+ # then back to the first. Vertices n and n+1 define line n. The last line,
171
+ # however, is defined by vertices N and 1. N lines are drawn.
172
+ #
173
+ # [GL_TRIANGLES]
174
+ # Treats each triplet of vertices as an independent
175
+ # triangle. Vertices 3n-2, 3n-1, and 3n define triangle n. N/3 triangles are
176
+ # drawn.
177
+ #
178
+ # [GL_TRIANGLE_STRIP]
179
+ # Draws a connected group of triangles. One triangle is defined for each
180
+ # vertex presented after the first two vertices. For odd n, vertices n, n+1,
181
+ # and n+2 define triangle n. For even n, vertices n+1, n, and n+2 define
182
+ # triangle n. N-2 triangles are drawn.
183
+ #
184
+ # [GL_TRIANGLE_FAN]
185
+ # Draws a connected group of triangles.
186
+ # One triangle is defined for each vertex presented after the first two
187
+ # vertices. Vertices 1, n+1, and n+2 define triangle n. N-2 triangles are
188
+ # drawn.
189
+ #
190
+ # [GL_QUADS]
191
+ # Treats each group of four vertices as an
192
+ # independent quadrilateral. Vertices 4n-3, 4n-2, 4n-1, and 4n define
193
+ # quadrilateral n. N/4 quadrilaterals are drawn.
194
+ #
195
+ # [GL_QUAD_STRIP]
196
+ # Draws a connected group of quadrilaterals. One quadrilateral is
197
+ # defined for each pair of vertices presented after the first pair.
198
+ # Vertices 2n-1, 2n, 2n+2, and 2n+1 define quadrilateral n. N/2-1
199
+ # quadrilaterals are drawn. Note that the order in which vertices are used to
200
+ # construct a quadrilateral from strip data is different from that used with
201
+ # independent data.
202
+ #
203
+ # [GL_POLYGON]
204
+ # Draws a single, convex polygon. Vertices 1
205
+ # through N define this polygon.
206
+ #
207
+ # @example
208
+ # points = [
209
+ # Geom::Point3d.new(0, 0, 0),
210
+ # Geom::Point3d.new(9, 0, 0),
211
+ # Geom::Point3d.new(9, 9, 0),
212
+ # Geom::Point3d.new(0, 9, 0)
213
+ # ]
214
+ # view.draw(GL_LINE_LOOP, points)
215
+ #
216
+ # @note If you draw outside the model bounds you need to implement
217
+ # {Tool#getExtents} which returns a bounding box large enough to include the
218
+ # points you draw. Otherwise your drawing will be clipped.
219
+ #
220
+ # @overload draw(openglenum, points)
221
+ #
222
+ # @param [Integer] openglenum
223
+ # The item you are going to draw, one of the constants
224
+ # from the comments, such as +GL_LINES+.
225
+ # @param [Array<Geom::Point3d>] points
226
+ #
227
+ # @overload draw(openglenum, *points)
228
+ #
229
+ # @param [Integer] openglenum
230
+ # The item you are going to draw, one of the constants
231
+ # from the comments, such as +GL_LINES+.
232
+ # @param [Array<Geom::Point3d>] points
233
+ #
234
+ # @overload draw(openglenum, points, **options)
235
+ #
236
+ # @version SketchUp 2020.0
237
+ # @param [Integer] openglenum
238
+ # The item you are going to draw, one of the constants
239
+ # from the comments, such as +GL_LINES+.
240
+ # @param [Array<Geom::Point3d>] points
241
+ # @param [Hash] options
242
+ # @option options [Array<Geom::Vector3d>] :normals
243
+ # Without normals the polygons will be rendered with flat shading. No
244
+ # light will affect it. By providing an array of vertex normals lighting
245
+ # is turned on and will use the model's current light. Note that the number
246
+ # of normals must match the number of points provided.
247
+ # @option options [Integer] :texture
248
+ # A texture id provided by {#load_texture}.
249
+ # @option options [Array<Geom::Vector3d>] :uvs
250
+ # Set of UV (Not UVQ) coordinates matching the number of points provided.
251
+ # This must be used along with the +:texture+ option.
252
+ #
253
+ # @overload draw(openglenum, *points, **options)
254
+ #
255
+ # @version SketchUp 2020.0
256
+ # @param [Integer] openglenum
257
+ # The item you are going to draw, one of the constants
258
+ # from the comments, such as +GL_LINES+.
259
+ # @param [Array<Geom::Point3d>] points
260
+ # @param [Hash] options
261
+ # @option options [Array<Geom::Vector3d>] :normals ([])
262
+ # Without normals the polygons will be rendered with flat shading. No
263
+ # light will affect it. By providing an array of vertex normals lighting
264
+ # is turned on and will use the model's current light. Note that the number
265
+ # of normals must match the number of points provided.
266
+ # @option options [Integer] :texture
267
+ # A texture id provided by {#load_texture}.
268
+ # @option options [Array<Geom::Vector3d>] :uvs
269
+ # Set of UV (Not UVQ) coordinates matching the number of points provided.
270
+ # This must be used along with the +:texture+ option.
271
+ #
272
+ # @return [Sketchup::View]
273
+ #
274
+ # @see Tool#getExtents
275
+ #
276
+ # @version SketchUp 6.0
277
+ def draw(*args)
278
+ end
279
+
280
+ # The {#draw2d} method is used to draw in screen space (using 2D screen
281
+ # coordinates) instead of 3D space.
282
+ #
283
+ # The second parameter is an {Array} of {Geom::Point3d} objects (or several
284
+ # individual {Geom::Point3d} objects). These {Geom::Point3d} objects are in
285
+ # screen space, not 3D space.
286
+ # The X value corresponds to the number of pixels from the left edge of the
287
+ # drawing area. The Y value corresponds to the number of pixels down from
288
+ # the top of the drawing area. The Z value is not used.
289
+ #
290
+ # @example
291
+ # points = [
292
+ # Geom::Point3d.new(0, 0, 0),
293
+ # Geom::Point3d.new(8, 0, 0),
294
+ # Geom::Point3d.new(8, 4, 0),
295
+ # Geom::Point3d.new(0, 4, 0)
296
+ # ]
297
+ # view.draw2d(GL_LINE_STRIP, points)
298
+ #
299
+ # @overload draw2d(openglenum, points)
300
+ #
301
+ # @param [Integer] openglenum
302
+ # The item you are going to draw, one of the constants
303
+ # from the comments, such as +GL_LINES+.
304
+ # @param [Array<Geom::Point3d>] points
305
+ #
306
+ # @overload draw2d(openglenum, *points)
307
+ #
308
+ # @param [Integer] openglenum
309
+ # The item you are going to draw, one of the constants
310
+ # from the comments, such as +GL_LINES+.
311
+ # @param [Array<Geom::Point3d>] points
312
+ #
313
+ # @overload draw2d(openglenum, points, **options)
314
+ #
315
+ # @version SketchUp 2020.0
316
+ # @param [Integer] openglenum
317
+ # The item you are going to draw, one of the constants
318
+ # from the comments, such as +GL_LINES+.
319
+ # @param [Array<Geom::Point3d>] points
320
+ # @param [Hash] options
321
+ # @option options [Integer] :texture
322
+ # A texture id provided by {#load_texture}.
323
+ # @option options [Array<Geom::Vector3d>] :uvs
324
+ # Set of UV (Not UVQ) coordinates matching the number of points provided.
325
+ # This must be used along with the +:texture+ option.
326
+ #
327
+ # @overload draw2d(openglenum, *points, **options)
328
+ #
329
+ # @version SketchUp 2020.0
330
+ # @param [Integer] openglenum
331
+ # The item you are going to draw, one of the constants
332
+ # from the comments, such as +GL_LINES+.
333
+ # @param [Array<Geom::Point3d>] points
334
+ # @param [Hash] options
335
+ # @option options [Integer] :texture
336
+ # A texture id provided by {#load_texture}.
337
+ # @option options [Array<Geom::Vector3d>] :uvs
338
+ # Set of UV (Not UVQ) coordinates matching the number of points provided.
339
+ # This must be used along with the +:texture+ option.
340
+ #
341
+ # @return [Sketchup::View]
342
+ #
343
+ # @see #draw
344
+ #
345
+ # @see UI.scale_factor
346
+ #
347
+ # @version SketchUp 6.0
348
+ def draw2d(*args)
349
+ end
350
+
351
+ # The draw_lines method is used to draw disconnected lines.
352
+ #
353
+ # You must have an even number of points. This method is usually invoked
354
+ # within the draw method of a tool.
355
+ #
356
+ # @example
357
+ # point4 = Geom::Point3d.new 0,0,0
358
+ # point5 = Geom::Point3d.new 100,100,100
359
+ # # returns a view
360
+ # status = view.drawing_color="red"
361
+ # status = view.draw_lines point4, point5
362
+ #
363
+ # @overload draw_lines(points, ...)
364
+ #
365
+ # @param [Array<Geom::Point3d>] points
366
+ # An even number of Point3d objects.
367
+ # @return [Sketchup::View]
368
+ #
369
+ # @overload draw_lines(points)
370
+ #
371
+ # @param [Array<Geom::Point3d>] points An array of Point3d objects.
372
+ # @return [Sketchup::View]
373
+ #
374
+ # @version SketchUp 6.0
375
+ def draw_line(*args)
376
+ end
377
+
378
+ # The draw_lines method is used to draw disconnected lines.
379
+ #
380
+ # You must have an even number of points. This method is usually invoked
381
+ # within the draw method of a tool.
382
+ #
383
+ # @example
384
+ # point4 = Geom::Point3d.new 0,0,0
385
+ # point5 = Geom::Point3d.new 100,100,100
386
+ # # returns a view
387
+ # status = view.drawing_color="red"
388
+ # status = view.draw_lines point4, point5
389
+ #
390
+ # @overload draw_lines(points, ...)
391
+ #
392
+ # @param [Array<Geom::Point3d>] points
393
+ # An even number of Point3d objects.
394
+ # @return [Sketchup::View]
395
+ #
396
+ # @overload draw_lines(points)
397
+ #
398
+ # @param [Array<Geom::Point3d>] points An array of Point3d objects.
399
+ # @return [Sketchup::View]
400
+ #
401
+ # @version SketchUp 6.0
402
+ def draw_lines(*args)
403
+ end
404
+
405
+ # This method is used to draw points.
406
+ #
407
+ # This method is usually invoked within the draw method of a tool.
408
+ #
409
+ # @example
410
+ # point3 = Geom::Point3d.new 0,0,0
411
+ # # returns a view
412
+ # status = view.draw_points(point3, 10, 1, "red")
413
+ #
414
+ # @param [Array<Geom::Point3d>] points
415
+ #
416
+ # @param [Integer] size
417
+ # Size of the point in pixels.
418
+ #
419
+ # @param [Integer] style
420
+ # 1 = open square, 2 = filled square, 3 = "+", 4 = "X", 5 = "*",
421
+ # 6 = open triangle, 7 = filled triangle.
422
+ #
423
+ # @param [Sketchup::Color] color
424
+ #
425
+ # @return [Sketchup::View] a View object
426
+ #
427
+ # @version SketchUp 6.0
428
+ def draw_points(points, size = 6, style = 3, color = 'black')
429
+ end
430
+
431
+ # The draw_polyline method is used to draw a series of connected line segments
432
+ # from pt1 to pt2 to pt3, and so on.
433
+ #
434
+ # This method is usually invoked within the draw method of a tool.
435
+ #
436
+ # @example
437
+ # point12 = Geom::Point3d.new 0,0,0
438
+ # point13 = Geom::Point3d.new 10,10,10
439
+ # point14 = Geom::Point3d.new 20,20,20
440
+ # point15 = Geom::Point3d.new 30,30,30
441
+ # status = view.draw_polyline point12, point13, point14, point15
442
+ #
443
+ # @overload draw_polyline(points, ...)
444
+ #
445
+ # @param [Array<Geom::Point3d>] points An even number of Point3d objects.
446
+ # @return [Sketchup::View]
447
+ #
448
+ # @overload draw_polyline(points)
449
+ #
450
+ # @param [Array<Geom::Point3d>] points An array of Point3d objects.
451
+ # @return [Sketchup::View]
452
+ #
453
+ # @version SketchUp 6.0
454
+ def draw_polyline(*args)
455
+ end
456
+
457
+ # This method is used to draw text on the screen and is usually invoked within
458
+ # the draw method of a tool.
459
+ #
460
+ # The {TextVerticalAlignCenter} option will align the text to the center of the
461
+ # height of the first line, not the whole boundingbox of the text. To align
462
+ # around the full bounds of the text, use {#text_bounds} to compute the
463
+ # desired alignment.
464
+ #
465
+ # <b>Example of different vertical alignment and text bounds:</b>
466
+ #
467
+ # rdoc-image:../images/view-draw-text-with-bounds.png
468
+ #
469
+ # @example
470
+ # class ExampleTool
471
+ # def draw(view)
472
+ # # This works in all SketchUp versions and draws the text using the
473
+ # # default font, size and color (i.e. the model edge color).
474
+ # point = Geom::Point3d.new(200, 100, 0)
475
+ # view.draw_text(point, "This is a test")
476
+ #
477
+ # # This works in SketchUp 2016 and up.
478
+ # options = {
479
+ # :font => "Arial",
480
+ # :size => 20,
481
+ # :bold => true,
482
+ # :align => TextAlignRight
483
+ # }
484
+ # point = Geom::Point3d.new(200, 200, 0)
485
+ # view.draw_text(point, "This is another\ntest", options)
486
+ #
487
+ # # You can also use Ruby 2.0's named arguments:
488
+ # point = Geom::Point3d.new(200, 200, 0)
489
+ # view.draw_text(point, "Hello world!", color: "Red")
490
+ # end
491
+ # end
492
+ #
493
+ # @example Cross Platform Font Size
494
+ # class ExampleTool
495
+ # IS_WIN = Sketchup.platform == :platform_win
496
+ #
497
+ # def draw(view)
498
+ # draw_text(view, [100, 200, 0], "Hello World", size: 20)
499
+ # end
500
+ #
501
+ # private
502
+ #
503
+ # # This will ensure text is drawn with consistent size across platforms,
504
+ # # using pixels as size units.
505
+ # def draw_text(view, position, text, **options)
506
+ # native_options = options.dup
507
+ # if IS_WIN && options.key?(:size)
508
+ # native_options[:size] = pixels_to_points(size)
509
+ # end
510
+ # view.draw_text(position, text, **native_options)
511
+ # end
512
+ #
513
+ # def pixels_to_points(pixels)
514
+ # ((pixels.to_f / 96.0) * 72.0).round
515
+ # end
516
+ # end
517
+ #
518
+ # @note Under Windows the font name must be less than 32 characters - due to
519
+ # system limitations.
520
+ #
521
+ # @note As of SU2017 this will automatically scale the font-size by the same
522
+ # factor as {UI.scale_factor}.
523
+ #
524
+ # @note The font size is platform dependent. On Windows the method expects
525
+ # points, where on Mac it's pixels. See "Cross Platform Font Size" example
526
+ # for details.
527
+ #
528
+ # @overload draw_text(point, text)
529
+ #
530
+ # @param [Geom::Point3d] point A Point3d object representing a 2D coordinate
531
+ # in view space.
532
+ # @param [String] text The text string to draw.
533
+ #
534
+ # @overload draw_text(point, text, options = {})
535
+ #
536
+ # @version SketchUp 2016
537
+ # @param [Geom::Point3d] point A Point3d object representing a 2D coordinate
538
+ # in view space.
539
+ # @param [String] text The text string to draw.
540
+ # @param [Hash] options The text can be customized by providing a hash or
541
+ # named arguments of options.
542
+ # @option options [String] :font The name of the font to use. If it does not
543
+ # exist on the system, a default font will be used instead.
544
+ # @option options [Integer] :size The size of the font in points
545
+ # @option options [Boolean] :bold Controls the Bold property of the font.
546
+ # @option options [Boolean] :italic Controls the Italic property of the font.
547
+ # @option options [Sketchup::Color] :color The color to draw the text with.
548
+ # @option options [Integer] :align The text alignment, one of the following
549
+ # constants: {TextAlignLeft}, {TextAlignCenter} or {TextAlignRight}.
550
+ # @option options [Integer] :vertical_align <b>Added SketchUp 2020.0.</b>
551
+ # The vertical text alignment, one of the following constants:
552
+ # {TextVerticalAlignBoundsTop}, {TextVerticalAlignBaseline},
553
+ # {TextVerticalAlignCapHeight} or {TextVerticalAlignCenter}. Note that
554
+ # some fonts on Mac might not align as expected due to the system
555
+ # reporting incorrect font metrics.
556
+ #
557
+ # @return [Sketchup::View]
558
+ #
559
+ # @version SketchUp 6.0
560
+ def draw_text(*args)
561
+ end
562
+
563
+ # The drawing_color method is used to set the color that is used for drawing
564
+ # to the view.
565
+ #
566
+ # This method is usually invoked within the draw method of a tool.
567
+ #
568
+ # @example
569
+ # view = view.drawing_color = color
570
+ #
571
+ # @param [Sketchup::Color, String] color
572
+ # A Color object.
573
+ #
574
+ # @return [Sketchup::View]
575
+ #
576
+ # @version SketchUp 6.0
577
+ def drawing_color=(color)
578
+ end
579
+
580
+ # The dynamic= method allows you to degrade visual quality while improving
581
+ # performance when a model is large and view refresh time is slow. For
582
+ # example, if you were using a Ruby script to animate the camera through
583
+ # a large scene, you may want to set dynamic to true during that time.
584
+ #
585
+ # See also camera.rb which is part of the film and stage ruby
586
+ # scripts.
587
+ #
588
+ # @deprecated This method is no longer doing anything.
589
+ #
590
+ # @example
591
+ # view.dynamic = true
592
+ #
593
+ # @param [Boolean] value
594
+ #
595
+ # @return [Boolean]
596
+ #
597
+ # @version SketchUp 6.0
598
+ def dynamic=(value)
599
+ end
600
+
601
+ # The field_of_view method is used get the view's field of view setting, in
602
+ # degrees.
603
+ #
604
+ # @example
605
+ # fov = Sketchup.active_model.active_view.field_of_view
606
+ #
607
+ # @return [Float] the field of view
608
+ #
609
+ # @version SketchUp 6.0
610
+ def field_of_view
611
+ end
612
+
613
+ # The field_of_view= method is used set the view's field of view setting,
614
+ # in degrees.
615
+ #
616
+ # @example
617
+ # my_view = Sketchup.active_model.active_view
618
+ # my_view.field_of_view = 45
619
+ # my_view.invalidate
620
+ #
621
+ # @param [Numeric] fov
622
+ # the field of view
623
+ #
624
+ # @return [Numeric]
625
+ #
626
+ # @version SketchUp 6.0
627
+ def field_of_view=(fov)
628
+ end
629
+
630
+ # The guess_target method is used to guess at what the user is looking at when
631
+ # you have a perspective view.
632
+ #
633
+ # This method is useful when writing a viewing tool. See also camera.rb which
634
+ # is part of the film and stage ruby scripts.
635
+ #
636
+ # @example
637
+ # target = view.guess_target
638
+ #
639
+ # @return [Geom::Point3d] a Point3d object representing the point in the
640
+ # model that the user is likely interested in.
641
+ #
642
+ # @version SketchUp 6.0
643
+ def guess_target(*args)
644
+ end
645
+
646
+ # The inference_locked? method is used to determine if inference locking is on
647
+ # for the view.
648
+ #
649
+ # @example
650
+ # model = Sketchup.active_model
651
+ # view = model.active_view
652
+ # status = view.inference_locked
653
+ #
654
+ # @return [Boolean]
655
+ #
656
+ # @version SketchUp 6.0
657
+ def inference_locked?
658
+ end
659
+
660
+ # The inputpoint method is used to retrieve an input point.
661
+ #
662
+ # This will normally be used inside one of the mouse event handling methods in
663
+ # a tool. Usually, it is preferable to create the InputPoint first and then
664
+ # use the pick method on it.
665
+ #
666
+ # @example
667
+ # inputpoint = view.inputpoint x, y, inputpoint1
668
+ #
669
+ # @param [Numeric] x
670
+ # A x value.
671
+ #
672
+ # @param [Numeric] y
673
+ # A y value.
674
+ #
675
+ # @param [Sketchup::InputPoint] inputpoint1
676
+ # An InputPoint object.
677
+ #
678
+ # @return [Sketchup::InputPoint]
679
+ #
680
+ # @version SketchUp 6.0
681
+ def inputpoint(x, y, inputpoint1)
682
+ end
683
+
684
+ # The invalidate method is used mark the view as in need of a redraw.
685
+ #
686
+ # @example
687
+ # model = Sketchup.active_model
688
+ # view = model.active_view
689
+ # invalidated_view = view.invalidate
690
+ #
691
+ # @note This is the preferred method to update the viewport. Use this before
692
+ # trying to use {#refresh}.
693
+ #
694
+ # @return [Sketchup::View] the invalidated View object
695
+ #
696
+ # @version SketchUp 6.0
697
+ def invalidate
698
+ end
699
+
700
+ # The last_refresh_time method is used to retrieve the time for the last full
701
+ # view refresh.
702
+ #
703
+ # @example
704
+ # time = view.last_refresh_time
705
+ #
706
+ # @return [Float] time in milliseconds
707
+ #
708
+ # @version SketchUp 6.0
709
+ def last_refresh_time(*args)
710
+ end
711
+
712
+ # The line_stipple= method is used to set the line pattern to use for drawing.
713
+ # The stipple pattern is given as a string.
714
+ # Valid strings are:
715
+ # "." (Dotted Line),
716
+ # "-" (Short Dashes Line),
717
+ # "_" (Long Dashes Line),
718
+ # "-.-" (Dash Dot Dash Line),
719
+ # "" (Solid Line).
720
+ #
721
+ # This method is usually invoked within the draw method of a tool.
722
+ #
723
+ # @example
724
+ # point8 = Geom::Point3d.new 0,0,0
725
+ # point9 = Geom::Point3d.new 100,100,100
726
+ # view.line_stipple = "-.-"
727
+ # view = view.draw_lines point8, point9
728
+ #
729
+ # @param [String] pattern
730
+ # A string stipple pattern, such as "-.-"
731
+ #
732
+ # @return [Sketchup::View] the View object
733
+ #
734
+ # @version SketchUp 6.0
735
+ def line_stipple=(pattern)
736
+ end
737
+
738
+ # The line_width= method is used to set the line width to use for drawing. The
739
+ # value is a Double indicating the desired width in pixels.
740
+ #
741
+ # This method is usually invoked within the draw method of a tool.
742
+ #
743
+ # @example
744
+ # view.line_width = width
745
+ #
746
+ # @note As of SU2017 this will automatically scale the line width by the same
747
+ # factor as {UI.scale_factor}.
748
+ #
749
+ # @param [Integer] width
750
+ # The width in pixels.
751
+ #
752
+ # @return [Integer]
753
+ #
754
+ # @version SketchUp 6.0
755
+ def line_width=(width)
756
+ end
757
+
758
+ # Loads a texture to be drawn with {#draw} or {#draw2d}.
759
+ #
760
+ # @example
761
+ # module Example
762
+ # class MyTool
763
+ # def activate
764
+ # view = Sketchup.active_model.active_view
765
+ # image_rep = view.model.materials.current.texture.image_rep
766
+ # @texture_id = view.load_texture(image_rep)
767
+ # end
768
+ #
769
+ # def deactivate(view)
770
+ # view.release_texture(@texture_id)
771
+ # end
772
+ #
773
+ # def draw(view)
774
+ # points = [ [0, 0, 0], [9, 0, 0], [9, 9, 0], [0, 9, 0] ]
775
+ # uvs = [ [0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0] ]
776
+ # view.draw(GL_QUADS, points, texture: @texture_id, uvs: uvs)
777
+ # end
778
+ # end
779
+ # end
780
+ # Sketchup.active_model.select_tool(Example::MyTool.new)
781
+ #
782
+ # @note To conserve resources on the user's machine, textures can be loaded
783
+ # only when there is a Ruby tool on the tool stack. Make sure to release the
784
+ # texture when it's no longer needed. Any textures not already released
785
+ # when the last Ruby tool on the tool stack is removed will be automatically
786
+ # released by SketchUp.
787
+ #
788
+ # @note Avoid loading and releasing textures within the {Sketchup::Tool#draw}
789
+ # event as that is not efficient.
790
+ #
791
+ # @param [Sketchup::ImageRep] image_rep
792
+ #
793
+ # @raise [ArgumentError] if the provided {Sketchup::ImageRep} is not valid.
794
+ #
795
+ # @raise [RuntimeError] if a Ruby tool was not on the tool stack.
796
+ #
797
+ # @return [Integer] A resource ID referring to the image loaded.
798
+ #
799
+ # @see #release_texture
800
+ #
801
+ # @see #draw
802
+ #
803
+ # @version 2020.0
804
+ def load_texture(image_rep)
805
+ end
806
+
807
+ # The {#lock_inference} method is used to lock or unlock an inference.
808
+ #
809
+ # This method will typically be called from inside a tool class when the user
810
+ # presses the shift key or arrow keys.
811
+ #
812
+ # With no arguments it unlocks all inferences. With one argument it locks
813
+ # inference based on that passed {Sketchup::InputPoint}'s entities, e.g. along
814
+ # a {Sketchup::Edge}'s line or a {Sketchup::Face}'s plane. With two arguments,
815
+ # it locks inference along an axis.
816
+ #
817
+ # @example
818
+ # view = view.lock_inference
819
+ # view = view.lock_inference(inputpoint)
820
+ # view = view.lock_inference(inputpoint1, inputpoint2)
821
+ #
822
+ # @overload lock_inference
823
+ #
824
+ #
825
+ # @overload lock_inference(inputpoint)
826
+ #
827
+ # @param [Sketchup::InputPoint] inputpoint
828
+ #
829
+ # @overload lock_inference(inputpoint, inputpoint2)
830
+ #
831
+ # @param [Sketchup::InputPoint] inputpoint
832
+ # @param [Sketchup::InputPoint] inputpoint2
833
+ # @example
834
+ # # Lock inference to X axis.
835
+ # # The points can be anywhere; only the vector between them affects
836
+ # # the result.
837
+ # view.lock_inference(
838
+ # Sketchup::InputPoint.new(ORIGIN),
839
+ # Sketchup::InputPoint.new(Geom::Point3d.new(1, 0, 0))
840
+ # )
841
+ #
842
+ # @return [Sketchup::View] a View object
843
+ #
844
+ # @version SketchUp 6.0
845
+ def lock_inference(*args)
846
+ end
847
+
848
+ # The model method is used to retrieve the model for the current view.
849
+ #
850
+ # @example
851
+ # model = view.model
852
+ #
853
+ # @return [Sketchup::Model] the model for this view
854
+ #
855
+ # @version SketchUp 6.0
856
+ def model
857
+ end
858
+
859
+ # The pick_helper method is used to retrieve a pick helper for the view. See
860
+ # the PickHelper class for information on pick helpers.
861
+ #
862
+ # This call returns an initialized PickHelper.
863
+ #
864
+ # @example
865
+ # model = Sketchup.active_model
866
+ # view = model.active_view
867
+ # ph = view.pick_helper
868
+ #
869
+ # @overload pick_helper
870
+ #
871
+ # @return [Sketchup::PickHelper] a PickHelper object
872
+ #
873
+ # @overload pick_helper(x, y, aperture = 0)
874
+ #
875
+ # @param [Integer] x
876
+ # @param [Integer] y
877
+ # @param [Integer] aperture
878
+ # @return [Sketchup::PickHelper] a PickHelper object
879
+ #
880
+ # @version SketchUp 6.0
881
+ def pick_helper(*args)
882
+ end
883
+
884
+ # The pickray method is used to retrieve a ray passing through a given screen
885
+ # position in the viewing direction.
886
+ #
887
+ # @example
888
+ # ray = view.pickray x, y
889
+ #
890
+ # @overload pickray(screen_point)
891
+ #
892
+ # @param [Array(Integer, Integer)] screen_point
893
+ # @return [Array(Geom::Point3d, Geom::Vector3d)] a ray
894
+ #
895
+ # @overload pickray(x, y)
896
+ #
897
+ # @param [Integer] x
898
+ # @param [Integer] y
899
+ # @return [Array(Geom::Point3d, Geom::Vector3d)] a ray
900
+ #
901
+ # @version SketchUp 6.0
902
+ def pickray(*args)
903
+ end
904
+
905
+ # The pixels_to_model method is used to compute a model size from a pixel size
906
+ # at a given point.
907
+ #
908
+ # This method is useful for deciding how big to draw something based on a
909
+ # desired size in pixels.
910
+ #
911
+ # @example
912
+ # size = view.pixels_to_model(pixels, point)
913
+ #
914
+ # @note As of SU2017 this will automatically scale the pixel-size by the same
915
+ # factor as {UI.scale_factor}.
916
+ #
917
+ # @param [Numeric] pixels
918
+ # The pixel size.
919
+ #
920
+ # @param [Geom::Point3d] point
921
+ # A Point3d object where the size will be calculated from.
922
+ #
923
+ # @return [Float] the model size
924
+ #
925
+ # @version SketchUp 6.0
926
+ def pixels_to_model(pixels, point)
927
+ end
928
+
929
+ # The refresh method is used to immediately force a redraw of the view.
930
+ #
931
+ # @example
932
+ # model = Sketchup.active_model
933
+ # view = model.active_view
934
+ # refreshed_view = view.refresh
935
+ #
936
+ # @note This method might impact performance and if used incorrectly cause
937
+ # instability or crashes. Don't use this unless you have verified that
938
+ # you cannot use {#invalidate} instead.
939
+ #
940
+ # @return [Sketchup::View] the refreshed View object
941
+ #
942
+ # @version SketchUp 7.1
943
+ def refresh
944
+ end
945
+
946
+ # Releases a texture loaded via {#load_texture}, freeing up it's memory.
947
+ # It's good practice to do so whenever there is no longer any need for the
948
+ # resource.
949
+ #
950
+ # For example, when your tool deactivates you probably want to release your
951
+ # resources as you don't know if your tool will be used again.
952
+ #
953
+ # @example
954
+ # module Example
955
+ # class MyTool
956
+ # def activate
957
+ # view = Sketchup.active_model.active_view
958
+ # image_rep = view.model.materials.current.texture.image_rep
959
+ # @texture_id = view.load_texture(image_rep)
960
+ # end
961
+ #
962
+ # def deactivate(view)
963
+ # view.release_texture(@texture_id)
964
+ # end
965
+ #
966
+ # def draw(view)
967
+ # points = [ [0, 0, 0], [9, 0, 0], [9, 9, 0], [0, 9, 0] ]
968
+ # uvs = [ [0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0] ]
969
+ # view.draw(GL_QUADS, points, texture: @texture_id, uvs: uvs)
970
+ # end
971
+ # end
972
+ # end
973
+ # Sketchup.active_model.select_tool(Example::MyTool.new)
974
+ #
975
+ # @param [Integer] texture_id
976
+ #
977
+ # @return [Boolean] +true+ if texture was released. +false+ otherwise.
978
+ #
979
+ # @see #load_texture
980
+ def release_texture(texture_id)
981
+ end
982
+
983
+ # The remove_observer method is used to remove an observer from the current
984
+ # object.
985
+ #
986
+ # @example
987
+ # view = Sketchup.active_model.active_view
988
+ # status = view.remove_observer observer
989
+ #
990
+ # @param [Object] observer
991
+ # An observer.
992
+ #
993
+ # @return [Boolean] true if successful, false if unsuccessful.
994
+ #
995
+ # @version SketchUp 6.0
996
+ def remove_observer(observer)
997
+ end
998
+
999
+ # The screen_coords method is used to retrieve the screen coordinates of the
1000
+ # given point on the screen.
1001
+ #
1002
+ # The x and y values returned correspond to the x and y screen coordinates.
1003
+ # Ignore the z values. If the referenced point is not in the current
1004
+ # viewport, the x and/or y value may be negative.
1005
+ #
1006
+ # @example
1007
+ # point = view.screen_coords(ORIGIN)
1008
+ #
1009
+ # @param [Geom::Point3d] point3d
1010
+ # A Point3d object.
1011
+ #
1012
+ # @return [Geom::Point3d] A Point3d containing the screen position
1013
+ #
1014
+ # @version SketchUp 6.0
1015
+ def screen_coords(point3d)
1016
+ end
1017
+
1018
+ # Set the drawing color for the view based on the direction of a line that you
1019
+ # want to draw. These colors will match the axes colors in the SketchUp model
1020
+ # (typically blue for straight up and down, etc.)
1021
+ #
1022
+ # This method is usually invoked within the draw method of a tool.
1023
+ #
1024
+ # @example
1025
+ # view = view.set_color_from_line point1, point2
1026
+ #
1027
+ # @param [Geom::Point3d] point1
1028
+ # Point3d object representing first point in the line.
1029
+ #
1030
+ # @param [Geom::Point3d] point2
1031
+ # Point3d object representing the second point in the line.
1032
+ #
1033
+ # @return [Sketchup::View] a View object
1034
+ #
1035
+ # @version SketchUp 6.0
1036
+ def set_color_from_line(point1, point2)
1037
+ end
1038
+
1039
+ # The show_frame method is used to show a frame of an Animation object in the
1040
+ # current view.
1041
+ #
1042
+ # You can supply an optional delay in seconds to wait before showing the next
1043
+ # frame. This can be useful to control the speed at which the animation runs.
1044
+ #
1045
+ # @example
1046
+ # status = view.show_frame delay
1047
+ #
1048
+ # @param [Numeric] delay
1049
+ # An optional delay in seconds.
1050
+ #
1051
+ # @return [Sketchup::View]
1052
+ #
1053
+ # @version SketchUp 6.0
1054
+ def show_frame(delay)
1055
+ end
1056
+
1057
+ # This method is used to compute the bounds of the text when
1058
+ # using {#draw_text}. The bounds are not a tight fit around the top and bottom
1059
+ # as they include varying amount of line spacing depending on the font used.
1060
+ #
1061
+ # The {TextVerticalAlignCenter} option will align the text to the center of the
1062
+ # height of the first line, not the whole boundingbox of the text.
1063
+ #
1064
+ # <b>Example of different vertical alignment and text bounds:</b>
1065
+ #
1066
+ # rdoc-image:../images/view-draw-text-with-bounds.png
1067
+ #
1068
+ # @example
1069
+ # class ExampleTool
1070
+ # TEXT_OPTIONS = {
1071
+ # :font => "Arial",
1072
+ # :size => 20,
1073
+ # :bold => true,
1074
+ # :align => TextAlignRight,
1075
+ # :align => TextVerticalAlignBaseline
1076
+ # }
1077
+ #
1078
+ # # Since `draw` is called frequently it can be useful to pre-compute and
1079
+ # # cache values used by `draw`.
1080
+ # def activate
1081
+ # @text = "Hello SketchUp"
1082
+ # @position = Geom::Point3d.new(200, 200, 0)
1083
+ #
1084
+ # # Compute text bounds
1085
+ # view = Sketchup.active_model.active_view
1086
+ # bounds = view.text_bounds(@position, @text, TEXT_OPTIONS)
1087
+ #
1088
+ # # Compute polygon for the text bounds
1089
+ # x1, y1 = bounds.upper_left.to_a
1090
+ # x2, y2 = bounds.lower_right.to_a
1091
+ # @points = [
1092
+ # Geom::Point3d.new(x1, y1),
1093
+ # Geom::Point3d.new(x1, y2),
1094
+ # Geom::Point3d.new(x2, y2),
1095
+ # Geom::Point3d.new(x2, y1),
1096
+ # ]
1097
+ # end
1098
+ #
1099
+ # def draw(view)
1100
+ # # Draw text bounds
1101
+ # view.drawing_color = Sketchup::Color.new(255, 0, 0, 64)
1102
+ # view.draw2d(GL_QUADS, @points)
1103
+ #
1104
+ # # Draw text
1105
+ # view.draw_text(@position, @text, TEXT_OPTIONS)
1106
+ # end
1107
+ # end
1108
+ #
1109
+ # @note Under Windows the font name must be less than 32 characters - due to
1110
+ # system limitations.
1111
+ #
1112
+ # @option options [String] :font The name of the font to use. If it does not
1113
+ # exist on the system, a default font will be used instead.
1114
+ #
1115
+ # @option options [Integer] :size The size of the font in points
1116
+ #
1117
+ # @option options [Boolean] :bold Controls the Bold property of the font.
1118
+ #
1119
+ # @option options [Boolean] :italic Controls the Italic property of the font.
1120
+ #
1121
+ # @option options [Integer] :align The text alignment, one of the following
1122
+ # constants: {TextAlignLeft}, {TextAlignCenter} or {TextAlignRight}.
1123
+ #
1124
+ # @option options [Integer] :vertical_align The vertical text alignment
1125
+ # one of the following constants:
1126
+ # {TextVerticalAlignBoundsTop}, {TextVerticalAlignBaseline},
1127
+ # {TextVerticalAlignCapHeight} or {TextVerticalAlignCenter}.
1128
+ #
1129
+ # @param [Geom::Point3d] point
1130
+ # A Point3d object representing a 2D coordinate
1131
+ # in view space.
1132
+ #
1133
+ # @param [String] text
1134
+ # The text string to draw.
1135
+ #
1136
+ # @param [Hash] options
1137
+ # The text can be customized by providing a hash or
1138
+ # named arguments of options.
1139
+ #
1140
+ # @return [Geom::Bounds2d]
1141
+ #
1142
+ # @see #draw_text
1143
+ #
1144
+ # @version SketchUp 2020.0
1145
+ def text_bounds(point, text, options = {})
1146
+ end
1147
+
1148
+ # Set a tooltip to display in the view. This is useful for displaying tooltips
1149
+ # in a tool that you write in Ruby.
1150
+ #
1151
+ # @example
1152
+ # tooltip = view.tooltip = string
1153
+ #
1154
+ # @param [String] string
1155
+ # The string tooltip.
1156
+ #
1157
+ # @return [String] the new tooltip string
1158
+ #
1159
+ # @version SketchUp 6.0
1160
+ def tooltip=(string)
1161
+ end
1162
+
1163
+ # The vpheight method is used to retrieve the height of the viewport for the
1164
+ # view.
1165
+ #
1166
+ # @example
1167
+ # model = Sketchup.active_model
1168
+ # view = model.active_view
1169
+ # height = view.vpheight
1170
+ #
1171
+ # @return [Integer] the height of the viewport in physical pixels.
1172
+ #
1173
+ # @version SketchUp 6.0
1174
+ def vpheight
1175
+ end
1176
+
1177
+ # The vpwidth method is used to retrieve the width of the viewport for the
1178
+ # view.
1179
+ #
1180
+ # @example
1181
+ # width = view.vpwidth
1182
+ #
1183
+ # @return [Integer] the width of the viewport in physical pixels.
1184
+ #
1185
+ # @version SketchUp 6.0
1186
+ def vpwidth
1187
+ end
1188
+
1189
+ # The {#write_image} method is used to write the current view to an image file.
1190
+ #
1191
+ # Supported file types are `.png`, `.jpg`, `.jpeg`, `gif`, `.bmp`, `.tif`.
1192
+ # For other file formats available from the GUI in File > Export > 2D
1193
+ # Graphics, .e.g `.pdf`, use {Sketchup::Model#export}.
1194
+ #
1195
+ # @overload write_image(filename, width = view.vpwidth, height = view.vpheight, antialias = false, compression = 1.0)
1196
+ #
1197
+ # @note Prefer the overload with option hash instead of this variant. This
1198
+ # overload is not updated with new options.
1199
+ #
1200
+ # @example
1201
+ # filename = File.join(Sketchup.temp_dir, 'example.png')
1202
+ # antialias = false
1203
+ # compression = 0.9
1204
+ # model = Sketchup.active_model
1205
+ # view = model.active_view
1206
+ # view.write_image(filename, 640, 480, antialias, compression)
1207
+ #
1208
+ # @param [String] filename
1209
+ # The filename for the saved image
1210
+ # @param [Integer] width
1211
+ # Width in pixels, defaults to the current viewport width {#vpwidth}.
1212
+ # @param [Integer] height
1213
+ # Height in pixels, defaults to the current viewport height {#vpheight}.
1214
+ # @param [Boolean] antialias
1215
+ # @param [Float] compression
1216
+ # Compression factor for JPEG images, between +0.0+ and +1.0+.
1217
+ #
1218
+ # @overload write_image(options)
1219
+ #
1220
+ # @example
1221
+ # options = {
1222
+ # :filename => File.join(Sketchup.temp_dir, 'example.png'),
1223
+ # :width => 640,
1224
+ # :height => 480,
1225
+ # :antialias => false,
1226
+ # :compression => 0.9,
1227
+ # :transparent => true
1228
+ # }
1229
+ # model = Sketchup.active_model
1230
+ # view = model.active_view
1231
+ # view.write_image(options)
1232
+ #
1233
+ # @version SketchUp 7
1234
+ # @param [Hash] options
1235
+ # @option options [String] filename The filename for the saved image.
1236
+ # @option options [Integer] width (#vpwidth) Width in pixels (max +16000+).
1237
+ # @option options [Integer] height (#vpheight) Height in pixels (max +16000+).
1238
+ # @option options [Float] scale_factor (1.0) Scaling factor for
1239
+ # elements that are viewport dependent, such as text heights, arrow heads,
1240
+ # line widths, stipple patterns, etc. (Added in SketchUp 2019.2)
1241
+ # @option options [Boolean] antialias (false)
1242
+ # @option options [Float] compression (1.0) Compression factor for JPEG,
1243
+ # images between +0.0+ and +1.0+.
1244
+ # @option options [Boolean] transparent (false) Added in SketchUp 8.
1245
+ #
1246
+ # @overload write_image(options)
1247
+ #
1248
+ # It is possible to dump the framebuffer to file by setting +:source+ to
1249
+ # +:framebuffer+. When saving the framebuffer only the following options are
1250
+ # valid.
1251
+ #
1252
+ # @example
1253
+ # options = {
1254
+ # :filename => File.join(Sketchup.temp_dir, 'example.png'),
1255
+ # :source => :framebuffer,
1256
+ # :compression => 0.9,
1257
+ # }
1258
+ # model = Sketchup.active_model
1259
+ # view = model.active_view
1260
+ # view.write_image(options)
1261
+ #
1262
+ # @version SketchUp 7
1263
+ # @param [Hash] options
1264
+ # @option options [String] filename The filename for the saved image.
1265
+ # @option options [Boolean] source (:image) Set to +:framebuffer+ to dump the
1266
+ # current framebuffer.
1267
+ # @option options [Float] compression (1.0) Compression factor for JPEG,
1268
+ # images between +0.0+ and +1.0+.
1269
+ #
1270
+ # @return [Boolean]
1271
+ #
1272
+ # @version SketchUp 6.0
1273
+ def write_image(*args)
1274
+ end
1275
+
1276
+ # The zoom method is used to zoom in or out by some zoom factor.
1277
+ #
1278
+ # @example
1279
+ # view = view.zoom factor
1280
+ # view = view.zoom selection
1281
+ # view = view.zoom entity
1282
+ # view = view.zoom array_of_entities
1283
+ #
1284
+ # @param [Numeric, Sketchup::Selection, Sketchup::Entity, Array<Sketchup::Entity>] zoom_or_ents
1285
+ # A Float zoom factor from 1.0 or larger or an Array or
1286
+ # collection of entities to "zoom extents" around.
1287
+ #
1288
+ # @return [Sketchup::View] the zoomed View object
1289
+ #
1290
+ # @version SketchUp 6.0
1291
+ def zoom(zoom_or_ents)
1292
+ end
1293
+
1294
+ # The zoom_extents method is used to zoom to the extents about the entire
1295
+ # model, as if the user has selected the zoom extents command from the menu.
1296
+ #
1297
+ # @example
1298
+ # view = Sketchup.active_model.active_view
1299
+ # new_view = view.zoom_extents
1300
+ #
1301
+ # @return [Sketchup::View] the zoomed View object
1302
+ #
1303
+ # @version SketchUp 6.0
1304
+ def zoom_extents
1305
+ end
1306
+
1307
+ end