sketchup-api-stubs 0.7.7 → 0.7.9

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 (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +151 -147
  3. data/lib/sketchup-api-stubs/stubs/{array.rb → Array.rb} +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +509 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +476 -478
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +693 -691
  16. data/lib/sketchup-api-stubs/stubs/{geom.rb → Geom.rb} +351 -351
  17. data/lib/sketchup-api-stubs/stubs/{languagehandler.rb → LanguageHandler.rb} +93 -92
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -573
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +747 -411
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -179
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +517 -515
  23. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  24. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
  26. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -349
  27. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  28. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  29. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  30. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  31. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  32. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  33. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  34. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
  35. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  37. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
  38. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
  39. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  40. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
  41. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  42. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -0
  43. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +692 -694
  44. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
  45. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  46. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  49. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  50. data/lib/sketchup-api-stubs/stubs/{length.rb → Length.rb} +278 -278
  51. data/lib/sketchup-api-stubs/stubs/{numeric.rb → Numeric.rb} +249 -249
  52. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -144
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -157
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +150 -152
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +281 -286
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -302
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -478
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -122
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +659 -577
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +593 -594
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +449 -425
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +406 -396
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -502
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1239 -1126
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -0
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -545
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +125 -126
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +937 -917
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -104
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +750 -750
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +282 -292
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +468 -468
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +406 -405
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -306
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +326 -327
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -422
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -427
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -249
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -112
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -414
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +317 -318
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1652 -1654
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -357
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +130 -131
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -284
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +490 -0
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +116 -0
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -797
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +361 -363
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -478
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +361 -364
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +458 -459
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +255 -257
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -217
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -217
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +834 -835
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -71
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1311 -1307
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -45
  143. data/lib/sketchup-api-stubs/stubs/{sketchup.rb → Sketchup.rb} +1377 -1353
  144. data/lib/sketchup-api-stubs/stubs/{sketchupextension.rb → SketchupExtension.rb} +353 -353
  145. data/lib/sketchup-api-stubs/stubs/{string.rb → String.rb} +24 -24
  146. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +389 -317
  147. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +494 -478
  148. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +269 -269
  149. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +241 -240
  150. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +635 -633
  151. data/lib/sketchup-api-stubs/stubs/{ui.rb → UI.rb} +683 -672
  152. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -311
  153. data/lib/sketchup-api-stubs.rb +1 -1
  154. metadata +20 -16
@@ -0,0 +1,261 @@
1
+ # Copyright:: Copyright 2023 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The {Sketchup::EntitiesBuilder} is an interface to generate bulk geometry
5
+ # with performance in mind.
6
+ #
7
+ # This is particularly useful for importers where the geometry is already well
8
+ # defined and one wants to recreate it without further processing.
9
+ #
10
+ # Before the Entities Builder was introduced there were two ways of adding
11
+ # geometry; the +add_*+ methods of {Sketchup::Entities} and {Geom::PolygonMesh}.
12
+ #
13
+ # The former is slow as the methods perform intersection, splitting and merging
14
+ # of overlapping geometry. This is useful when creating tools similar to the
15
+ # Line and Rectangle tool.
16
+ #
17
+ # {Geom::PolygonMesh} is fast, but it doesn't provide granular control per
18
+ # face or edge added.
19
+ #
20
+ # Entities Builder is similar to {Geom::PolygonMesh} in speed, but with the
21
+ # flexibility of {Sketchup::Entities}'s +add_*+ methods.
22
+ #
23
+ # <i>(See "Creating a triangulated grid" example)</i>
24
+ #
25
+ # rdoc-image:../images/entities-builder-grid-example.png
26
+ #
27
+ # @example Creating a triangulated grid
28
+ # model = Sketchup.active_model
29
+ # model.start_operation('Create Grid', true)
30
+ # model.entities.build { |builder|
31
+ # # Creates a grid similar to Sandbox Tools, with each square
32
+ # # triangulated with a soft+smooth edge.
33
+ # 10.times { |x|
34
+ # 10.times { |y|
35
+ # # 4 +--+ 3
36
+ # # |\ |
37
+ # # | \|
38
+ # # 1 +--+ 2
39
+ # pt1 = Geom::Point3d.new(x, y, 0)
40
+ # pt2 = Geom::Point3d.new(x + 1, y, 0)
41
+ # pt3 = Geom::Point3d.new(x + 1, y + 1, 0)
42
+ # pt4 = Geom::Point3d.new(x, y + 1, 0)
43
+ # face1 = builder.add_face([pt1, pt2, pt4])
44
+ # face2 = builder.add_face([pt2, pt3, pt4])
45
+ # material = (x + y).odd? ? 'red' : 'maroon'
46
+ # face1.material = material
47
+ # face2.material = material
48
+ # edge = builder.add_edge(pt2, pt4)
49
+ # edge.soft = true
50
+ # edge.smooth = true
51
+ # }
52
+ # }
53
+ # }
54
+ # model.commit_operation
55
+ #
56
+ # @note Like {Geom::PolygonMesh} there is minimal validation checks made on
57
+ # the input to the creation of the geometry. Vertices are de-duplicated and
58
+ # edges sharing the same vertices will be de-duplicated. But no intersection
59
+ # of overlapping entities is made. It leaves a higher responsibility on the
60
+ # API user to produce valid geometry.
61
+ #
62
+ # @note While using {Sketchup::Entities#build} it is important to not
63
+ # add or remove vertices by other means of the builder. Also don't modify the
64
+ # position of the vertices in the {Sketchup::Entities} container geometry is
65
+ # added to. Doing so can break the vertex-cache that de-duplicates the vertices.
66
+ #
67
+ # @see file:pages/generating_geometry.md
68
+ # Guide on Generating Geometry
69
+ #
70
+ # @see Sketchup::Entities#build
71
+ #
72
+ # @see Sketchup::Entities
73
+ #
74
+ # @see Geom::PolygonMesh
75
+ #
76
+ # @version SketchUp 2022.0
77
+ class Sketchup::EntitiesBuilder
78
+
79
+ # Instance Methods
80
+
81
+ # Adds a {Sketchup::Edge} to the {#entities} collection.
82
+ #
83
+ # @example
84
+ # model = Sketchup.active_model
85
+ # model.entities.build { |builder|
86
+ # edge = builder.add_edge([0, 0, 0], [9, 0, 0])
87
+ # edge.material = 'red'
88
+ # }
89
+ #
90
+ # @note Does not split intersecting faces or edges.
91
+ #
92
+ # @overload add_edge(point1, point2)
93
+ #
94
+ # @param [Geom::Point3d] point1
95
+ # @param [Geom::Point3d] point2
96
+ #
97
+ # @overload add_edge(points)
98
+ #
99
+ # @param [Array(Geom::Point3d, Geom::Point3d)] points
100
+ #
101
+ # @raise [ArgumentError] If the points are considered equal.
102
+ #
103
+ # @raise [RuntimeError] If the builder is not valid.
104
+ #
105
+ # @return [Sketchup::Edge]
106
+ #
107
+ # @see Sketchup::Entities#add_line
108
+ #
109
+ # @version SketchUp 2022.0
110
+ def add_edge(*args)
111
+ end
112
+ alias_method :add_line, :add_edge
113
+
114
+ # Adds a continuous set of {Sketchup::Edge}'s to the {#entities} collection.
115
+ #
116
+ # @example
117
+ # model = Sketchup.active_model
118
+ # model.entities.build { |builder|
119
+ # edges = builder.add_edges([0, 0, 0], [6, 0, 0], [9, 0, 8]) # => 2 edges
120
+ # edges.each { |edge|
121
+ # edge.material = 'red'
122
+ # }
123
+ # }
124
+ #
125
+ # @note Does not split intersecting faces or edges.
126
+ #
127
+ # @overload add_edges(points)
128
+ #
129
+ # @param [Array<Geom::Point3d>] points
130
+ #
131
+ # @overload add_edges(*points)
132
+ #
133
+ # @param [Array<Geom::Point3d>] points
134
+ #
135
+ # @raise [RuntimeError] If the builder is not valid.
136
+ #
137
+ # @return [Array<Sketchup::Edge, nil>] In the array, for each pair in +points+ an edge is returned.
138
+ # If two point are so close they are considered identical then +nil+ is returned.
139
+ #
140
+ # @see Sketchup::Entities#add_edges
141
+ #
142
+ # @version SketchUp 2022.0
143
+ def add_edges(*args)
144
+ end
145
+
146
+ # Adds a {Sketchup::Face} to the {#entities} collection.
147
+ #
148
+ # @example Adding a simple face
149
+ # model = Sketchup.active_model
150
+ # model.entities.build { |builder|
151
+ # face = builder.add_face([[0, 0, 0], [6, 0, 0], [6, 8, 0], [0, 8, 0]])
152
+ # face.material = 'red'
153
+ # }
154
+ #
155
+ # @example Adding an edge with two holes
156
+ # model = Sketchup.active_model
157
+ # model.entities.build { |builder|
158
+ # outer_loop = [[0, 0, 0], [8, 0, 0], [8, 9, 0], [0, 9, 0]]
159
+ # hole1 = [[1, 1, 0], [3, 1, 0], [3, 8, 0], [1, 8, 0]]
160
+ # hole2 = [[4, 1, 0], [7, 1, 0], [7, 8, 0], [4, 8, 0]]
161
+ # face = builder.add_face(outer_loop, holes: [hole1, hole2])
162
+ # }
163
+ #
164
+ # @note Does not split intersecting faces or edges.
165
+ #
166
+ # @overload add_face(outer_loop)
167
+ #
168
+ # @param [Array<Geom::Point3d>] outer_loop
169
+ #
170
+ # @overload add_face(*outer_loop)
171
+ #
172
+ # @param [Array<Geom::Point3d>] outer_loop
173
+ #
174
+ # @overload add_face(outer_loop, holes: inner_loops)
175
+ #
176
+ # Adds a face with holes.
177
+ # @note The inner loops are not validated to be within the bounds of the outer loop.
178
+ # @param [Array<Geom::Point3d>] outer_loop
179
+ # @param [Array<Array<Geom::Point3d>>] inner_loops
180
+ #
181
+ # @overload add_face(*outer_loop, holes: inner_loops)
182
+ #
183
+ # Adds a face with holes.
184
+ # @note The inner loops are not validated to be within the bounds of the outer loop.
185
+ # @param [Array<Geom::Point3d>] outer_loop
186
+ # @param [Array<Array<Geom::Point3d>>] inner_loops
187
+ #
188
+ # @raise [ArgumentError] If points are not planar.
189
+ #
190
+ # @raise [ArgumentError] If any of the loops doesn't have at least 3 points.
191
+ #
192
+ # @raise [RuntimeError] If the builder is not valid.
193
+ #
194
+ # @return [Sketchup::Face]
195
+ #
196
+ # @see Sketchup::Entities#add_face
197
+ #
198
+ # @version SketchUp 2022.0
199
+ def add_face(*args)
200
+ end
201
+
202
+ # The {Sketchup::Entities} collection the {Sketchup::EntitiesBuilder} will add
203
+ # the geometry to.
204
+ #
205
+ # @example
206
+ # model = Sketchup.active_model
207
+ # model.entities.build { |builder|
208
+ # p builder.entities == model.entities # => true
209
+ # }
210
+ #
211
+ # @raise [RuntimeError] If the builder is not valid.
212
+ #
213
+ # @return [Sketchup::Entities]
214
+ #
215
+ # @version SketchUp 2022.0
216
+ def entities
217
+ end
218
+
219
+ # Indicates whether the builder object is valid and can be used.
220
+ #
221
+ # A builder object is only valid within the scope of the block given to
222
+ # {Sketchup::Entities#build}.
223
+ #
224
+ # When this return +false+, calling any other method on the builder will raise
225
+ # an error.
226
+ #
227
+ # @bug Prior to SketchUp 2023.0 this returned +0+ for success instead of +true+.
228
+ # In Ruby +0+ evaluates as +true+ so conditional logic still worked.
229
+ #
230
+ # @example
231
+ # model = Sketchup.active_model
232
+ # cached_builder = nil
233
+ # model.entities.build { |builder|
234
+ # p builder.valid? # => true
235
+ # cached_builder = builder # Don't hold on to builder objects.
236
+ # }
237
+ # p cached_builder.valid? # => false
238
+ #
239
+ # @return [Boolean]
240
+ #
241
+ # @version SketchUp 2022.0
242
+ def valid?
243
+ end
244
+
245
+ # Finds an existing {Sketchup::Vertex} for the given position, otherwise returns +nil+.
246
+ #
247
+ # @example
248
+ # model = Sketchup.active_model
249
+ # model.entities.build { |builder|
250
+ # edge = builder.add_edge([1, 0, 0], [9, 0, 0])
251
+ # builder.vertex_at([0, 0, 0]) => nil
252
+ # builder.vertex_at([9, 0, 0]) => #<Sketchup::Vertex>
253
+ # }
254
+ #
255
+ # @return [Sketchup::Vertex, nil]
256
+ #
257
+ # @version SketchUp 2022.0
258
+ def vertex_at(position)
259
+ end
260
+
261
+ end
@@ -1,127 +1,127 @@
1
- # Copyright:: Copyright 2021 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # This observer interface is implemented to react to {Sketchup::Entities}
5
- # collection events.
6
- #
7
- # @abstract To implement this observer, create a Ruby class of this
8
- # type, override the desired methods, and add an instance of the observer to
9
- # the objects of interests.
10
- #
11
- # @example
12
- # # This is an example of an observer that watches the entities collection
13
- # # new added elements and writes a message on the console.
14
- # class MyEntitiesObserver < Sketchup::EntitiesObserver
15
- # def onElementAdded(entities, entity)
16
- # puts "onElementAdded: #{entity}"
17
- # end
18
- # end
19
- #
20
- # # Attach the observer
21
- # Sketchup.active_model.entities.add_observer(MyEntitiesObserver.new)
22
- #
23
- # @note The methods of this observer fire in such a way that making changes
24
- # to the model while inside of them is dangerous. If you experience sudden
25
- # crashes, it could be because of this observer. A potential workaround is to
26
- # use a {Sketchup::ToolsObserver} to watch what the user is doing instead.
27
- #
28
- # @version SketchUp 6.0
29
- class Sketchup::EntitiesObserver
30
-
31
- # Instance Methods
32
-
33
- # The {#onActiveSectionPlaneChanged} method is invoked when a section plane
34
- # within this entities is activated or the active one is deactivated.
35
- #
36
- # @example
37
- # def onActiveSectionPlaneChanged(entities)
38
- # sp = entities.active_section_plane
39
- # if sp.nil?
40
- # puts "Section plane is deactivated on #{entities}"
41
- # else
42
- # puts "#{sp} is activated on #{entities}"
43
- # end
44
- # end
45
- #
46
- # @param [Sketchup::Entities] entities
47
- #
48
- # @return [nil]
49
- #
50
- # @version SketchUp 2014
51
- def onActiveSectionPlaneChanged(entities)
52
- end
53
-
54
- # The onElementAdded method is invoked when a single element is added
55
- # to the {Sketchup::Entities} collection.
56
- #
57
- # @example
58
- # def onElementAdded(entities, entity)
59
- # puts "onElementAdded: #{entity}"
60
- # end
61
- #
62
- # @param [Sketchup::Entities] entities
63
- #
64
- # @param [Sketchup::Entity] entity
65
- #
66
- # @return [nil]
67
- #
68
- # @version SketchUp 6.0
69
- def onElementAdded(entities, entity)
70
- end
71
-
72
- # The {#onElementModified} method is invoked whenever one or more elements in
73
- # the collection are modified.
74
- #
75
- # @example
76
- # def onElementModified(entities, entity)
77
- # puts "onElementModified: #{entity}"
78
- # end
79
- #
80
- # @param [Sketchup::Entities] entities
81
- #
82
- # @param [Sketchup::Entity] entity
83
- #
84
- # @return [nil]
85
- #
86
- # @version SketchUp 8.0
87
- def onElementModified(entities, entity)
88
- end
89
-
90
- # The {#onElementRemoved} method is invoked when a single element is removed
91
- # from the {Sketchup::Entities} collection. Note that the entity has been
92
- # deleted and should not be used in anyway except to know that the entity has
93
- # been deleted.
94
- #
95
- # @example
96
- # def onElementRemoved(entities, entity_id)
97
- # puts "onElementRemoved: #{entity_id}"
98
- # end
99
- #
100
- # @param [Sketchup::Entities] entities
101
- #
102
- # @param [Sketchup::Entity] entity_id
103
- # The id of the entity that was
104
- # deleted/removed.
105
- #
106
- # @return [nil]
107
- #
108
- # @version SketchUp 6.0
109
- def onElementRemoved(entities, entity_id)
110
- end
111
-
112
- # The {#onEraseEntities} method is invoked when one or more entities are erased.
113
- #
114
- # @example
115
- # def onEraseEntities(entities)
116
- # puts "onEraseEntities: #{entities}"
117
- # end
118
- #
119
- # @param [Sketchup::Entities] entities
120
- #
121
- # @return [nil]
122
- #
123
- # @version SketchUp 6.0
124
- def onEraseEntities(entities)
125
- end
126
-
127
- end
1
+ # Copyright:: Copyright 2023 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # This observer interface is implemented to react to {Sketchup::Entities}
5
+ # collection events.
6
+ #
7
+ # @abstract To implement this observer, create a Ruby class of this
8
+ # type, override the desired methods, and add an instance of the observer to
9
+ # the objects of interests.
10
+ #
11
+ # @example
12
+ # # This is an example of an observer that watches the entities collection
13
+ # # new added elements and writes a message on the console.
14
+ # class MyEntitiesObserver < Sketchup::EntitiesObserver
15
+ # def onElementAdded(entities, entity)
16
+ # puts "onElementAdded: #{entity}"
17
+ # end
18
+ # end
19
+ #
20
+ # # Attach the observer
21
+ # Sketchup.active_model.entities.add_observer(MyEntitiesObserver.new)
22
+ #
23
+ # @note The methods of this observer fire in such a way that making changes
24
+ # to the model while inside of them is dangerous. If you experience sudden
25
+ # crashes, it could be because of this observer. A potential workaround is to
26
+ # use a {Sketchup::ToolsObserver} to watch what the user is doing instead.
27
+ #
28
+ # @version SketchUp 6.0
29
+ class Sketchup::EntitiesObserver
30
+
31
+ # Instance Methods
32
+
33
+ # The {#onActiveSectionPlaneChanged} method is invoked when a section plane
34
+ # within this entities is activated or the active one is deactivated.
35
+ #
36
+ # @example
37
+ # def onActiveSectionPlaneChanged(entities)
38
+ # sp = entities.active_section_plane
39
+ # if sp.nil?
40
+ # puts "Section plane is deactivated on #{entities}"
41
+ # else
42
+ # puts "#{sp} is activated on #{entities}"
43
+ # end
44
+ # end
45
+ #
46
+ # @param [Sketchup::Entities] entities
47
+ #
48
+ # @return [nil]
49
+ #
50
+ # @version SketchUp 2014
51
+ def onActiveSectionPlaneChanged(entities)
52
+ end
53
+
54
+ # The onElementAdded method is invoked when a single element is added
55
+ # to the {Sketchup::Entities} collection.
56
+ #
57
+ # @example
58
+ # def onElementAdded(entities, entity)
59
+ # puts "onElementAdded: #{entity}"
60
+ # end
61
+ #
62
+ # @param [Sketchup::Entities] entities
63
+ #
64
+ # @param [Sketchup::Entity] entity
65
+ #
66
+ # @return [nil]
67
+ #
68
+ # @version SketchUp 6.0
69
+ def onElementAdded(entities, entity)
70
+ end
71
+
72
+ # The {#onElementModified} method is invoked whenever one or more elements in
73
+ # the collection are modified.
74
+ #
75
+ # @example
76
+ # def onElementModified(entities, entity)
77
+ # puts "onElementModified: #{entity}"
78
+ # end
79
+ #
80
+ # @param [Sketchup::Entities] entities
81
+ #
82
+ # @param [Sketchup::Entity] entity
83
+ #
84
+ # @return [nil]
85
+ #
86
+ # @version SketchUp 8.0
87
+ def onElementModified(entities, entity)
88
+ end
89
+
90
+ # The {#onElementRemoved} method is invoked when a single element is removed
91
+ # from the {Sketchup::Entities} collection. Note that the entity has been
92
+ # deleted and should not be used in anyway except to know that the entity has
93
+ # been deleted.
94
+ #
95
+ # @example
96
+ # def onElementRemoved(entities, entity_id)
97
+ # puts "onElementRemoved: #{entity_id}"
98
+ # end
99
+ #
100
+ # @param [Sketchup::Entities] entities
101
+ #
102
+ # @param [Sketchup::Entity] entity_id
103
+ # The id of the entity that was
104
+ # deleted/removed.
105
+ #
106
+ # @return [nil]
107
+ #
108
+ # @version SketchUp 6.0
109
+ def onElementRemoved(entities, entity_id)
110
+ end
111
+
112
+ # The {#onEraseEntities} method is invoked when one or more entities are erased.
113
+ #
114
+ # @example
115
+ # def onEraseEntities(entities)
116
+ # puts "onEraseEntities: #{entities}"
117
+ # end
118
+ #
119
+ # @param [Sketchup::Entities] entities
120
+ #
121
+ # @return [nil]
122
+ #
123
+ # @version SketchUp 6.0
124
+ def onEraseEntities(entities)
125
+ end
126
+
127
+ end