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.
- checksums.yaml +4 -4
- data/lib/sketchup-api-stubs.rb +1 -1
- data/lib/sketchup-api-stubs/sketchup.rb +147 -145
- data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -318
- data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +172 -172
- data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +126 -126
- data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
- data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +400 -400
- data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +661 -661
- data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +498 -492
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +478 -478
- data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +263 -263
- data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +141 -141
- data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +522 -522
- data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +691 -691
- data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
- data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +573 -573
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +411 -411
- data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +179 -174
- data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
- data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +515 -514
- data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
- data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -143
- data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +353 -353
- data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +349 -349
- data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
- data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
- data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
- data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -371
- data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
- data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
- data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -220
- data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +567 -567
- data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
- data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
- data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +183 -183
- data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +387 -387
- data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -204
- data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +344 -344
- data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
- data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +694 -694
- data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1519 -1519
- data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
- data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
- data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
- data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
- data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +144 -140
- data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +157 -157
- data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +209 -209
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +152 -152
- data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +286 -281
- data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
- data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +302 -328
- data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +478 -577
- data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
- data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +122 -122
- data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -281
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +577 -562
- data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +604 -593
- data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
- data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +257 -257
- data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
- data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -194
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +362 -329
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -72
- data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -102
- data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +165 -165
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -312
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -38
- data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
- data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +396 -390
- data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +502 -508
- data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1126 -1119
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -125
- data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +545 -544
- data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -59
- data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +126 -125
- data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +751 -750
- data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +104 -104
- data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +699 -697
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +285 -285
- data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +62 -62
- data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +417 -409
- data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -226
- data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -190
- data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +405 -393
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -82
- data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +306 -303
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +327 -285
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +422 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +427 -244
- data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +249 -136
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +48 -48
- data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
- data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +112 -112
- data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
- data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +414 -416
- data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +318 -311
- data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -141
- data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -95
- data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1651 -1638
- data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +357 -356
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +131 -132
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +284 -284
- data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
- data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +797 -770
- data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +363 -353
- data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -76
- data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +478 -456
- data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +364 -364
- data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -44
- data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
- data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +459 -454
- data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
- data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +212 -212
- data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +257 -257
- data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -57
- data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -0
- data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +69 -69
- data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +217 -211
- data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +262 -262
- data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +217 -225
- data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +835 -829
- data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
- data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -154
- data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +71 -61
- data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +142 -142
- data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1307 -1301
- data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +45 -43
- data/lib/sketchup-api-stubs/stubs/UI/Command.rb +317 -310
- data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +387 -356
- data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +255 -229
- data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +240 -240
- data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +633 -633
- data/lib/sketchup-api-stubs/stubs/_top_level.rb +311 -311
- data/lib/sketchup-api-stubs/stubs/array.rb +741 -741
- data/lib/sketchup-api-stubs/stubs/geom.rb +351 -348
- data/lib/sketchup-api-stubs/stubs/languagehandler.rb +92 -92
- data/lib/sketchup-api-stubs/stubs/length.rb +278 -278
- data/lib/sketchup-api-stubs/stubs/numeric.rb +249 -249
- data/lib/sketchup-api-stubs/stubs/sketchup.rb +1342 -1310
- data/lib/sketchup-api-stubs/stubs/sketchupextension.rb +353 -353
- data/lib/sketchup-api-stubs/stubs/string.rb +24 -24
- data/lib/sketchup-api-stubs/stubs/ui.rb +668 -667
- metadata +4 -2
@@ -1,82 +1,84 @@
|
|
1
|
-
# Copyright:: Copyright 2020 Trimble Inc.
|
2
|
-
# License:: The MIT License (MIT)
|
3
|
-
|
4
|
-
# This observer interface is implemented to react to component instance
|
5
|
-
# events.
|
6
|
-
#
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
26
|
-
#
|
27
|
-
# #
|
28
|
-
# # the
|
29
|
-
# model
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
#
|
38
|
-
|
39
|
-
#
|
40
|
-
#
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
# @
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
#
|
59
|
-
#
|
60
|
-
#
|
61
|
-
# component
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
#
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
73
|
-
#
|
74
|
-
#
|
75
|
-
#
|
76
|
-
#
|
77
|
-
#
|
78
|
-
# @
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
end
|
1
|
+
# Copyright:: Copyright 2020 Trimble Inc.
|
2
|
+
# License:: The MIT License (MIT)
|
3
|
+
|
4
|
+
# This observer interface is implemented to react to component instance
|
5
|
+
# events.
|
6
|
+
#
|
7
|
+
# Note that you may also attach {Sketchup::InstanceObserver}s to
|
8
|
+
# {Sketchup::Group}s.
|
9
|
+
#
|
10
|
+
# @abstract To implement this observer, create a Ruby class of this type,
|
11
|
+
# override the desired methods, and add an instance of the observer to the
|
12
|
+
# objects of interests.
|
13
|
+
#
|
14
|
+
# @example
|
15
|
+
# # This is an example of an observer that watches a specific instance
|
16
|
+
# # for open edit actions and shows a messagebox.
|
17
|
+
# class MyInstanceObserver < Sketchup::InstanceObserver
|
18
|
+
# def onOpen(instance)
|
19
|
+
# puts "onOpen: #{instance}"
|
20
|
+
# end
|
21
|
+
#
|
22
|
+
# def onClose(instance)
|
23
|
+
# puts "onClose: #{instance}"
|
24
|
+
# end
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
# # Attach the observer. (This example assumes that your first definition
|
28
|
+
# # in the model contains an instance to attach the observer to. This
|
29
|
+
# # example should work with a model where Sang or Bryce are present in
|
30
|
+
# # the template.)
|
31
|
+
# model = Sketchup.active_model
|
32
|
+
# model.definitions[0].instances[0].add_observer(MyInstanceObserver.new)
|
33
|
+
#
|
34
|
+
# @version SketchUp 6.0
|
35
|
+
class Sketchup::InstanceObserver < Sketchup::EntityObserver
|
36
|
+
|
37
|
+
# Instance Methods
|
38
|
+
|
39
|
+
# The {#onClose} method is called when an instance is "closed," meaning an end
|
40
|
+
# user was editing a component's geometry and then exited back into the
|
41
|
+
# parent's editing space.
|
42
|
+
#
|
43
|
+
# @example
|
44
|
+
# def onClose(instance)
|
45
|
+
# puts "onClose: #{instance}"
|
46
|
+
# end
|
47
|
+
#
|
48
|
+
# @param [Sketchup::ComponentInstance] instance
|
49
|
+
# The instance that was just
|
50
|
+
# closed
|
51
|
+
#
|
52
|
+
# @return [nil]
|
53
|
+
#
|
54
|
+
# @version SketchUp 6.0
|
55
|
+
def onClose(instance)
|
56
|
+
end
|
57
|
+
|
58
|
+
# The {#onOpen} method is called when an instance is "opened," meaning an end
|
59
|
+
# user has double clicked on it to edit its geometry. This is particularly
|
60
|
+
# useful if your plugin is dynamically drawing geometry or performing
|
61
|
+
# transformations in global space, since when in "edit component" mode all
|
62
|
+
# transformations and positions are returned in relation to the current
|
63
|
+
# component's origin.
|
64
|
+
#
|
65
|
+
# This method will tell you when a user has entered edit mode, and you can
|
66
|
+
# then use {Sketchup::Model#active_path} and {Sketchup::Model#edit_transform}
|
67
|
+
# methods to determine any corrections you need to make to your
|
68
|
+
# transformations.
|
69
|
+
#
|
70
|
+
# @example
|
71
|
+
# def onOpen(instance)
|
72
|
+
# puts "onOpen: #{instance}"
|
73
|
+
# end
|
74
|
+
#
|
75
|
+
# @param [Sketchup::ComponentInstance] instance
|
76
|
+
# The instance that was opened
|
77
|
+
#
|
78
|
+
# @return [nil]
|
79
|
+
#
|
80
|
+
# @version SketchUp 6.0
|
81
|
+
def onOpen(instance)
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
@@ -1,303 +1,306 @@
|
|
1
|
-
# Copyright:: Copyright 2020 Trimble Inc.
|
2
|
-
# License:: The MIT License (MIT)
|
3
|
-
|
4
|
-
# The {Sketchup::InstancePath} class represent the instance path to a given
|
5
|
-
# entity within the model hierarchy.
|
6
|
-
#
|
7
|
-
# @version SketchUp 2017
|
8
|
-
class Sketchup::InstancePath
|
9
|
-
|
10
|
-
# Includes
|
11
|
-
|
12
|
-
include Enumerable
|
13
|
-
|
14
|
-
# Instance Methods
|
15
|
-
|
16
|
-
#
|
17
|
-
# @example
|
18
|
-
# model = Sketchup.active_model
|
19
|
-
# group = model.entities.add_group
|
20
|
-
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
21
|
-
# path = Sketchup::InstancePath.new([group, edge])
|
22
|
-
# if path.size > 1
|
23
|
-
# # do something
|
24
|
-
# end
|
25
|
-
#
|
26
|
-
# @return [Boolean] `true` if the instances paths represent the same set of
|
27
|
-
# entities.
|
28
|
-
#
|
29
|
-
# @version SketchUp 2017
|
30
|
-
def ==(other)
|
31
|
-
end
|
32
|
-
|
33
|
-
# The elements of an instance path can be accessed
|
34
|
-
#
|
35
|
-
# @example
|
36
|
-
# model = Sketchup.active_model
|
37
|
-
# group = model.entities.add_group
|
38
|
-
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
39
|
-
# path = Sketchup::InstancePath.new([group, edge])
|
40
|
-
# path[0] == group # returns true
|
41
|
-
# path[1] == edge # returns true
|
42
|
-
#
|
43
|
-
# @
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
#
|
61
|
-
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
#
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
73
|
-
#
|
74
|
-
#
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
#
|
82
|
-
#
|
83
|
-
#
|
84
|
-
#
|
85
|
-
#
|
86
|
-
#
|
87
|
-
#
|
88
|
-
#
|
89
|
-
#
|
90
|
-
#
|
91
|
-
#
|
92
|
-
#
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
#
|
100
|
-
#
|
101
|
-
#
|
102
|
-
#
|
103
|
-
#
|
104
|
-
#
|
105
|
-
#
|
106
|
-
#
|
107
|
-
#
|
108
|
-
#
|
109
|
-
#
|
110
|
-
#
|
111
|
-
#
|
112
|
-
#
|
113
|
-
#
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
#
|
121
|
-
#
|
122
|
-
#
|
123
|
-
#
|
124
|
-
#
|
125
|
-
#
|
126
|
-
#
|
127
|
-
#
|
128
|
-
#
|
129
|
-
#
|
130
|
-
#
|
131
|
-
# @
|
132
|
-
#
|
133
|
-
#
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
#
|
141
|
-
#
|
142
|
-
#
|
143
|
-
#
|
144
|
-
#
|
145
|
-
#
|
146
|
-
#
|
147
|
-
#
|
148
|
-
#
|
149
|
-
#
|
150
|
-
#
|
151
|
-
#
|
152
|
-
#
|
153
|
-
#
|
154
|
-
#
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
#
|
162
|
-
#
|
163
|
-
#
|
164
|
-
#
|
165
|
-
#
|
166
|
-
#
|
167
|
-
#
|
168
|
-
#
|
169
|
-
#
|
170
|
-
#
|
171
|
-
#
|
172
|
-
#
|
173
|
-
#
|
174
|
-
#
|
175
|
-
#
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
#
|
183
|
-
#
|
184
|
-
#
|
185
|
-
#
|
186
|
-
#
|
187
|
-
#
|
188
|
-
#
|
189
|
-
#
|
190
|
-
#
|
191
|
-
#
|
192
|
-
#
|
193
|
-
#
|
194
|
-
#
|
195
|
-
#
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
#
|
203
|
-
#
|
204
|
-
#
|
205
|
-
#
|
206
|
-
#
|
207
|
-
#
|
208
|
-
#
|
209
|
-
#
|
210
|
-
#
|
211
|
-
#
|
212
|
-
#
|
213
|
-
#
|
214
|
-
#
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
#
|
222
|
-
#
|
223
|
-
#
|
224
|
-
#
|
225
|
-
#
|
226
|
-
#
|
227
|
-
#
|
228
|
-
#
|
229
|
-
#
|
230
|
-
#
|
231
|
-
#
|
232
|
-
#
|
233
|
-
#
|
234
|
-
#
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
#
|
242
|
-
#
|
243
|
-
#
|
244
|
-
#
|
245
|
-
#
|
246
|
-
#
|
247
|
-
#
|
248
|
-
#
|
249
|
-
#
|
250
|
-
#
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
#
|
258
|
-
#
|
259
|
-
#
|
260
|
-
#
|
261
|
-
#
|
262
|
-
#
|
263
|
-
#
|
264
|
-
#
|
265
|
-
#
|
266
|
-
#
|
267
|
-
#
|
268
|
-
#
|
269
|
-
#
|
270
|
-
#
|
271
|
-
#
|
272
|
-
#
|
273
|
-
#
|
274
|
-
#
|
275
|
-
#
|
276
|
-
#
|
277
|
-
#
|
278
|
-
#
|
279
|
-
#
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
#
|
287
|
-
#
|
288
|
-
#
|
289
|
-
#
|
290
|
-
#
|
291
|
-
#
|
292
|
-
#
|
293
|
-
#
|
294
|
-
#
|
295
|
-
#
|
296
|
-
#
|
297
|
-
#
|
298
|
-
#
|
299
|
-
#
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
1
|
+
# Copyright:: Copyright 2020 Trimble Inc.
|
2
|
+
# License:: The MIT License (MIT)
|
3
|
+
|
4
|
+
# The {Sketchup::InstancePath} class represent the instance path to a given
|
5
|
+
# entity within the model hierarchy.
|
6
|
+
#
|
7
|
+
# @version SketchUp 2017
|
8
|
+
class Sketchup::InstancePath
|
9
|
+
|
10
|
+
# Includes
|
11
|
+
|
12
|
+
include Enumerable
|
13
|
+
|
14
|
+
# Instance Methods
|
15
|
+
|
16
|
+
#
|
17
|
+
# @example
|
18
|
+
# model = Sketchup.active_model
|
19
|
+
# group = model.entities.add_group
|
20
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
21
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
22
|
+
# if path.size > 1
|
23
|
+
# # do something
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
# @return [Boolean] `true` if the instances paths represent the same set of
|
27
|
+
# entities.
|
28
|
+
#
|
29
|
+
# @version SketchUp 2017
|
30
|
+
def ==(other)
|
31
|
+
end
|
32
|
+
|
33
|
+
# The elements of an instance path can be accessed similarly to an array.
|
34
|
+
#
|
35
|
+
# @example
|
36
|
+
# model = Sketchup.active_model
|
37
|
+
# group = model.entities.add_group
|
38
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
39
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
40
|
+
# path[0] == group # returns true
|
41
|
+
# path[1] == edge # returns true
|
42
|
+
#
|
43
|
+
# @note This method does not accept negative indices. For the exact behavior
|
44
|
+
# of an array, use +{#to_a}+.
|
45
|
+
#
|
46
|
+
# @param [Integer] index
|
47
|
+
#
|
48
|
+
# @raise [IndexError] if the given index is out of bounds
|
49
|
+
#
|
50
|
+
# @raise [TypeError] if the index is not of integer type
|
51
|
+
#
|
52
|
+
# @raise [TypeError] if the instance path refer to deleted entities.
|
53
|
+
#
|
54
|
+
# @return [Sketchup::Entity]
|
55
|
+
#
|
56
|
+
# @version SketchUp 2017
|
57
|
+
def [](index)
|
58
|
+
end
|
59
|
+
|
60
|
+
# The yielded entities will start with the root and end with the leaf.
|
61
|
+
#
|
62
|
+
# @example
|
63
|
+
# model = Sketchup.active_model
|
64
|
+
# group = model.entities.add_group
|
65
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
66
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
67
|
+
# path.each { |entity|
|
68
|
+
# # do something
|
69
|
+
# }
|
70
|
+
#
|
71
|
+
# @raise [TypeError] if the instance path refer to deleted entities.
|
72
|
+
#
|
73
|
+
# @return [nil]
|
74
|
+
#
|
75
|
+
# @version SketchUp 2017
|
76
|
+
#
|
77
|
+
# @yield [Sketchup::Entity] entity
|
78
|
+
def each
|
79
|
+
end
|
80
|
+
|
81
|
+
#
|
82
|
+
# @example
|
83
|
+
# model = Sketchup.active_model
|
84
|
+
# group = model.entities.add_group
|
85
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
86
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
87
|
+
# if path.empty?
|
88
|
+
# # do something...
|
89
|
+
# end
|
90
|
+
#
|
91
|
+
# @raise [TypeError] if the instance path refer to deleted entities.
|
92
|
+
#
|
93
|
+
# @return [Boolean]
|
94
|
+
#
|
95
|
+
# @version SketchUp 2017
|
96
|
+
def empty?
|
97
|
+
end
|
98
|
+
|
99
|
+
# Returns `true` if the instance path contain the given object.
|
100
|
+
#
|
101
|
+
# @example
|
102
|
+
# model = Sketchup.active_model
|
103
|
+
# group = model.entities.add_group
|
104
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
105
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
106
|
+
# if path.include?(edge)
|
107
|
+
# # do something...
|
108
|
+
# end
|
109
|
+
#
|
110
|
+
# @param [Object] object
|
111
|
+
#
|
112
|
+
# @raise [TypeError] if the instance path refer to deleted entities.
|
113
|
+
#
|
114
|
+
# @return [Boolean]
|
115
|
+
#
|
116
|
+
# @version SketchUp 2017
|
117
|
+
def include?(object)
|
118
|
+
end
|
119
|
+
|
120
|
+
#
|
121
|
+
# @example
|
122
|
+
# model = Sketchup.active_model
|
123
|
+
# group = model.entities.add_group
|
124
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
125
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
126
|
+
#
|
127
|
+
# @param [Array<Sketchup::Entity>] path
|
128
|
+
# The leaf can be any entity, but the
|
129
|
+
# rest must be a group or component instance.
|
130
|
+
#
|
131
|
+
# @raise [ArgumentError] if the instance path isn't composed of instances and
|
132
|
+
# an optional leaf entity.
|
133
|
+
#
|
134
|
+
# @return [Sketchup::InstancePath]
|
135
|
+
#
|
136
|
+
# @version SketchUp 2017
|
137
|
+
def initialize(path)
|
138
|
+
end
|
139
|
+
|
140
|
+
# The leaf of an instance path is the last element which can be any entity
|
141
|
+
# that can be represented in the model. This is normally a
|
142
|
+
# {Sketchup::Drawingelement}, but could be a {Sketchup::Vertex}.
|
143
|
+
#
|
144
|
+
# An instance can also be a leaf.
|
145
|
+
#
|
146
|
+
# @example
|
147
|
+
# model = Sketchup.active_model
|
148
|
+
# group = model.entities.add_group
|
149
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
150
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
151
|
+
# path.leaf == edge # returns true
|
152
|
+
#
|
153
|
+
# @raise [TypeError] if the instance path refer to deleted entities.
|
154
|
+
#
|
155
|
+
# @return [Sketchup::Entity]
|
156
|
+
#
|
157
|
+
# @version SketchUp 2017
|
158
|
+
def leaf
|
159
|
+
end
|
160
|
+
|
161
|
+
# {#length} is an alias of {#size}.
|
162
|
+
#
|
163
|
+
# @example
|
164
|
+
# model = Sketchup.active_model
|
165
|
+
# group = model.entities.add_group
|
166
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
167
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
168
|
+
# if path.length > 1
|
169
|
+
# # do something
|
170
|
+
# end
|
171
|
+
#
|
172
|
+
# @raise [TypeError] if the instance path refer to deleted entities.
|
173
|
+
#
|
174
|
+
# @return [Integer]
|
175
|
+
#
|
176
|
+
# @see #size
|
177
|
+
#
|
178
|
+
# @version SketchUp 2017
|
179
|
+
def length
|
180
|
+
end
|
181
|
+
|
182
|
+
# The serialized version of an instance path is the persistent ids of its
|
183
|
+
# entities concatenated with a period.
|
184
|
+
#
|
185
|
+
# @example
|
186
|
+
# model = Sketchup.active_model
|
187
|
+
# group = model.entities.add_group
|
188
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
189
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
190
|
+
# pid_path = path.persistent_id_path # something like "342.345"
|
191
|
+
#
|
192
|
+
# @raise [TypeError] if the instance path refer to deleted entities.
|
193
|
+
#
|
194
|
+
# @return [String]
|
195
|
+
#
|
196
|
+
# @see Sketchup::Model#instance_path_from_pid_path
|
197
|
+
#
|
198
|
+
# @version SketchUp 2017
|
199
|
+
def persistent_id_path
|
200
|
+
end
|
201
|
+
|
202
|
+
# The root of an instance path is the element located closest to the model
|
203
|
+
# root. This will be a group or component instance. If you have a non-instance
|
204
|
+
# as a leaf with no other parent component this will return `nil`.
|
205
|
+
#
|
206
|
+
# @example
|
207
|
+
# model = Sketchup.active_model
|
208
|
+
# group = model.entities.add_group
|
209
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
210
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
211
|
+
# path.root == group # returns true
|
212
|
+
#
|
213
|
+
# @raise [TypeError] if the instance path refer to deleted entities.
|
214
|
+
#
|
215
|
+
# @return [Sketchup::Group, Sketchup::ComponentInstance, nil]
|
216
|
+
#
|
217
|
+
# @version SketchUp 2017
|
218
|
+
def root
|
219
|
+
end
|
220
|
+
|
221
|
+
#
|
222
|
+
# @example
|
223
|
+
# model = Sketchup.active_model
|
224
|
+
# group = model.entities.add_group
|
225
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
226
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
227
|
+
# if path.size > 1
|
228
|
+
# # do something
|
229
|
+
# end
|
230
|
+
#
|
231
|
+
# @raise [TypeError] if the instance path refer to deleted entities.
|
232
|
+
#
|
233
|
+
# @return [Integer]
|
234
|
+
#
|
235
|
+
# @see #length
|
236
|
+
#
|
237
|
+
# @version SketchUp 2017
|
238
|
+
def size
|
239
|
+
end
|
240
|
+
|
241
|
+
#
|
242
|
+
# @example
|
243
|
+
# model = Sketchup.active_model
|
244
|
+
# group = model.entities.add_group
|
245
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
246
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
247
|
+
# pid_string = path.to_a.join('.')
|
248
|
+
#
|
249
|
+
# @raise [TypeError] if the instance path refer to deleted entities.
|
250
|
+
#
|
251
|
+
# @return [Array] an array representing the instance path.
|
252
|
+
#
|
253
|
+
# @version SketchUp 2017
|
254
|
+
def to_a
|
255
|
+
end
|
256
|
+
|
257
|
+
#
|
258
|
+
# @example
|
259
|
+
# model = Sketchup.active_model
|
260
|
+
# group = model.entities.add_group
|
261
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
262
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
263
|
+
# tr = path.transformation
|
264
|
+
#
|
265
|
+
# @overload transformation
|
266
|
+
#
|
267
|
+
# @return [Geom::Transformation] the combined transformation up to the
|
268
|
+
# the leaf entity.
|
269
|
+
#
|
270
|
+
# @overload transformation(index)
|
271
|
+
#
|
272
|
+
# @param [Integer] index
|
273
|
+
# @return [Geom::Transformation] the combined transformation up to the
|
274
|
+
# the given index.
|
275
|
+
#
|
276
|
+
# @raise [IndexError] if the given index is out of bounds
|
277
|
+
#
|
278
|
+
# @raise [TypeError] if the index is not of integer type
|
279
|
+
#
|
280
|
+
# @raise [TypeError] if the instance path refer to deleted entities.
|
281
|
+
#
|
282
|
+
# @version SketchUp 2017
|
283
|
+
def transformation(*args)
|
284
|
+
end
|
285
|
+
|
286
|
+
# An instance path is valid if it has at least one element and consist of
|
287
|
+
# groups and instances with exception of the leaf which can be any entity.
|
288
|
+
#
|
289
|
+
# This method doesn't check if the path can actually be looked up in the model.
|
290
|
+
#
|
291
|
+
# @example
|
292
|
+
# model = Sketchup.active_model
|
293
|
+
# group = model.entities.add_group
|
294
|
+
# edge = group.entities.add_line([10, 10, 10], [20, 20, 20])
|
295
|
+
# path = Sketchup::InstancePath.new([group, edge])
|
296
|
+
# if path.valid?
|
297
|
+
# # do something...
|
298
|
+
# end
|
299
|
+
#
|
300
|
+
# @return [Boolean]
|
301
|
+
#
|
302
|
+
# @version SketchUp 2017
|
303
|
+
def valid?
|
304
|
+
end
|
305
|
+
|
306
|
+
end
|