sketchup-api-stubs 0.7.4 → 0.7.8

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