scriptup 0.0.0

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 (241) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +11 -0
  3. data/README.md +5 -0
  4. data/ext/attribute_dictionaries.c +45 -0
  5. data/ext/attribute_dictionaries.h +3 -0
  6. data/ext/attribute_dictionary.c +156 -0
  7. data/ext/attribute_dictionary.h +3 -0
  8. data/ext/behavior.c +10 -0
  9. data/ext/behavior.h +3 -0
  10. data/ext/color.c +211 -0
  11. data/ext/color.h +3 -0
  12. data/ext/component_definition.c +188 -0
  13. data/ext/component_definition.h +3 -0
  14. data/ext/component_instance.c +10 -0
  15. data/ext/component_instance.h +3 -0
  16. data/ext/definition_list.c +145 -0
  17. data/ext/definition_list.h +3 -0
  18. data/ext/drawing_element.c +10 -0
  19. data/ext/drawing_element.h +3 -0
  20. data/ext/entities.c +11 -0
  21. data/ext/entities.h +3 -0
  22. data/ext/entity.c +253 -0
  23. data/ext/entity.h +3 -0
  24. data/ext/extconf.rb +38 -0
  25. data/ext/material.c +242 -0
  26. data/ext/material.h +3 -0
  27. data/ext/materials.c +80 -0
  28. data/ext/materials.h +3 -0
  29. data/ext/model.c +42 -0
  30. data/ext/model.h +3 -0
  31. data/ext/sketchup.c +89 -0
  32. data/ext/sketchup.h +4 -0
  33. data/ext/texture.c +9 -0
  34. data/ext/texture.h +3 -0
  35. data/ext/typed_value.c +84 -0
  36. data/ext/typed_value.h +5 -0
  37. data/ext/utils.h +80 -0
  38. data/lib/sketchup.rb +12 -0
  39. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/application/application.h +36 -0
  40. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/application/model.h +59 -0
  41. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/application/overlay.h +248 -0
  42. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/application/ruby_api.h +118 -0
  43. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/color.h +107 -0
  44. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/common.h +178 -0
  45. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/defs.h +19 -0
  46. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/extension_license.h +62 -0
  47. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/geometry/bounding_box.h +34 -0
  48. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/geometry/plane3d.h +153 -0
  49. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/geometry/point2d.h +96 -0
  50. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/geometry/point3d.h +98 -0
  51. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/geometry/ray3d.h +64 -0
  52. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/geometry/transformation.h +321 -0
  53. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/geometry/transformation2d.h +163 -0
  54. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/geometry/vector2d.h +235 -0
  55. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/geometry/vector3d.h +285 -0
  56. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/geometry.h +152 -0
  57. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/import_export/modelexporterplugin.h +165 -0
  58. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/import_export/modelimporterplugin.h +183 -0
  59. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/import_export/pluginprogresscallback.h +84 -0
  60. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/initialize.h +43 -0
  61. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/length_formatter.h +424 -0
  62. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/arccurve.h +244 -0
  63. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/arrow_type.h +17 -0
  64. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/attribute_dictionary.h +161 -0
  65. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/axes.h +242 -0
  66. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/camera.h +398 -0
  67. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/classification_attribute.h +89 -0
  68. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/classification_info.h +125 -0
  69. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/classifications.h +86 -0
  70. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/component_definition.h +588 -0
  71. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/component_instance.h +344 -0
  72. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/curve.h +143 -0
  73. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/defs.h +142 -0
  74. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/dimension.h +222 -0
  75. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/dimension_linear.h +421 -0
  76. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/dimension_radial.h +194 -0
  77. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/dimension_style.h +253 -0
  78. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/drawing_element.h +198 -0
  79. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/dynamic_component_attribute.h +92 -0
  80. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/dynamic_component_info.h +70 -0
  81. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/edge.h +271 -0
  82. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/edge_use.h +214 -0
  83. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/entities.h +834 -0
  84. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/entity.h +186 -0
  85. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/entity_list.h +80 -0
  86. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/entity_list_iterator.h +90 -0
  87. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/face.h +686 -0
  88. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/font.h +138 -0
  89. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/geometry.h +20 -0
  90. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/geometry_input.h +685 -0
  91. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/group.h +244 -0
  92. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/guide_line.h +155 -0
  93. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/guide_point.h +153 -0
  94. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/image.h +288 -0
  95. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/image_rep.h +275 -0
  96. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/instancepath.h +266 -0
  97. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/layer.h +265 -0
  98. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/layer_folder.h +301 -0
  99. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/line_style.h +211 -0
  100. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/line_styles.h +81 -0
  101. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/location.h +65 -0
  102. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/loop.h +182 -0
  103. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/material.h +390 -0
  104. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/mesh_helper.h +187 -0
  105. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/model.h +1663 -0
  106. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/model_version.h +49 -0
  107. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/opening.h +72 -0
  108. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/options_manager.h +79 -0
  109. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/options_provider.h +166 -0
  110. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/polyline3d.h +140 -0
  111. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/rendering_options.h +179 -0
  112. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/scene.h +836 -0
  113. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/schema.h +56 -0
  114. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/schema_type.h +26 -0
  115. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/section_plane.h +212 -0
  116. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/selection.h +156 -0
  117. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/shadow_info.h +147 -0
  118. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/skp.h +45 -0
  119. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/style.h +303 -0
  120. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/styles.h +190 -0
  121. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/text.h +384 -0
  122. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/texture.h +358 -0
  123. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/texture_writer.h +280 -0
  124. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/typed_value.h +390 -0
  125. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/uv_helper.h +79 -0
  126. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/model/vertex.h +154 -0
  127. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/sketchup.h +122 -0
  128. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/sketchup_info.h +65 -0
  129. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/slapi.h +16 -0
  130. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/transformation.h +16 -0
  131. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/unicodestring.h +239 -0
  132. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Headers/utils/math_helpers.h +124 -0
  133. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Libraries/libCommonGeometry.dylib +0 -0
  134. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Libraries/libCommonGeoutils.dylib +0 -0
  135. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Libraries/libCommonImage.dylib +0 -0
  136. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Libraries/libCommonPreferences.dylib +0 -0
  137. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Libraries/libCommonUnits.dylib +0 -0
  138. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Libraries/libCommonUtils.dylib +0 -0
  139. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Libraries/libCommonZip.dylib +0 -0
  140. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/Resources/Info.plist +50 -0
  141. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/SketchUpAPI +0 -0
  142. data/sketchup-sdk-mac/SketchUpAPI.framework/Versions/A/_CodeSignature/CodeResources +835 -0
  143. data/sketchup-sdk-win/binaries/sketchup/x64/SketchUpAPI.dll +0 -0
  144. data/sketchup-sdk-win/binaries/sketchup/x64/SketchUpAPI.lib +0 -0
  145. data/sketchup-sdk-win/binaries/sketchup/x64/SketchUpCommonPreferences.dll +0 -0
  146. data/sketchup-sdk-win/binaries/sketchup/x64/sketchup.lib +0 -0
  147. data/sketchup-sdk-win/headers/SketchUpAPI/application/application.h +36 -0
  148. data/sketchup-sdk-win/headers/SketchUpAPI/application/model.h +59 -0
  149. data/sketchup-sdk-win/headers/SketchUpAPI/application/overlay.h +248 -0
  150. data/sketchup-sdk-win/headers/SketchUpAPI/application/ruby_api.h +118 -0
  151. data/sketchup-sdk-win/headers/SketchUpAPI/color.h +107 -0
  152. data/sketchup-sdk-win/headers/SketchUpAPI/common.h +178 -0
  153. data/sketchup-sdk-win/headers/SketchUpAPI/defs.h +19 -0
  154. data/sketchup-sdk-win/headers/SketchUpAPI/extension_license.h +62 -0
  155. data/sketchup-sdk-win/headers/SketchUpAPI/geometry/bounding_box.h +34 -0
  156. data/sketchup-sdk-win/headers/SketchUpAPI/geometry/plane3d.h +153 -0
  157. data/sketchup-sdk-win/headers/SketchUpAPI/geometry/point2d.h +96 -0
  158. data/sketchup-sdk-win/headers/SketchUpAPI/geometry/point3d.h +98 -0
  159. data/sketchup-sdk-win/headers/SketchUpAPI/geometry/ray3d.h +64 -0
  160. data/sketchup-sdk-win/headers/SketchUpAPI/geometry/transformation.h +321 -0
  161. data/sketchup-sdk-win/headers/SketchUpAPI/geometry/transformation2d.h +163 -0
  162. data/sketchup-sdk-win/headers/SketchUpAPI/geometry/vector2d.h +235 -0
  163. data/sketchup-sdk-win/headers/SketchUpAPI/geometry/vector3d.h +285 -0
  164. data/sketchup-sdk-win/headers/SketchUpAPI/geometry.h +152 -0
  165. data/sketchup-sdk-win/headers/SketchUpAPI/import_export/modelexporterplugin.h +165 -0
  166. data/sketchup-sdk-win/headers/SketchUpAPI/import_export/modelimporterplugin.h +183 -0
  167. data/sketchup-sdk-win/headers/SketchUpAPI/import_export/pluginprogresscallback.h +84 -0
  168. data/sketchup-sdk-win/headers/SketchUpAPI/initialize.h +43 -0
  169. data/sketchup-sdk-win/headers/SketchUpAPI/length_formatter.h +424 -0
  170. data/sketchup-sdk-win/headers/SketchUpAPI/model/arccurve.h +244 -0
  171. data/sketchup-sdk-win/headers/SketchUpAPI/model/arrow_type.h +17 -0
  172. data/sketchup-sdk-win/headers/SketchUpAPI/model/attribute_dictionary.h +161 -0
  173. data/sketchup-sdk-win/headers/SketchUpAPI/model/axes.h +242 -0
  174. data/sketchup-sdk-win/headers/SketchUpAPI/model/camera.h +398 -0
  175. data/sketchup-sdk-win/headers/SketchUpAPI/model/classification_attribute.h +89 -0
  176. data/sketchup-sdk-win/headers/SketchUpAPI/model/classification_info.h +125 -0
  177. data/sketchup-sdk-win/headers/SketchUpAPI/model/classifications.h +86 -0
  178. data/sketchup-sdk-win/headers/SketchUpAPI/model/component_definition.h +588 -0
  179. data/sketchup-sdk-win/headers/SketchUpAPI/model/component_instance.h +344 -0
  180. data/sketchup-sdk-win/headers/SketchUpAPI/model/curve.h +143 -0
  181. data/sketchup-sdk-win/headers/SketchUpAPI/model/defs.h +142 -0
  182. data/sketchup-sdk-win/headers/SketchUpAPI/model/dimension.h +222 -0
  183. data/sketchup-sdk-win/headers/SketchUpAPI/model/dimension_linear.h +421 -0
  184. data/sketchup-sdk-win/headers/SketchUpAPI/model/dimension_radial.h +194 -0
  185. data/sketchup-sdk-win/headers/SketchUpAPI/model/dimension_style.h +253 -0
  186. data/sketchup-sdk-win/headers/SketchUpAPI/model/drawing_element.h +198 -0
  187. data/sketchup-sdk-win/headers/SketchUpAPI/model/dynamic_component_attribute.h +92 -0
  188. data/sketchup-sdk-win/headers/SketchUpAPI/model/dynamic_component_info.h +70 -0
  189. data/sketchup-sdk-win/headers/SketchUpAPI/model/edge.h +271 -0
  190. data/sketchup-sdk-win/headers/SketchUpAPI/model/edge_use.h +214 -0
  191. data/sketchup-sdk-win/headers/SketchUpAPI/model/entities.h +834 -0
  192. data/sketchup-sdk-win/headers/SketchUpAPI/model/entity.h +186 -0
  193. data/sketchup-sdk-win/headers/SketchUpAPI/model/entity_list.h +80 -0
  194. data/sketchup-sdk-win/headers/SketchUpAPI/model/entity_list_iterator.h +90 -0
  195. data/sketchup-sdk-win/headers/SketchUpAPI/model/face.h +686 -0
  196. data/sketchup-sdk-win/headers/SketchUpAPI/model/font.h +138 -0
  197. data/sketchup-sdk-win/headers/SketchUpAPI/model/geometry.h +20 -0
  198. data/sketchup-sdk-win/headers/SketchUpAPI/model/geometry_input.h +685 -0
  199. data/sketchup-sdk-win/headers/SketchUpAPI/model/group.h +244 -0
  200. data/sketchup-sdk-win/headers/SketchUpAPI/model/guide_line.h +155 -0
  201. data/sketchup-sdk-win/headers/SketchUpAPI/model/guide_point.h +153 -0
  202. data/sketchup-sdk-win/headers/SketchUpAPI/model/image.h +288 -0
  203. data/sketchup-sdk-win/headers/SketchUpAPI/model/image_rep.h +275 -0
  204. data/sketchup-sdk-win/headers/SketchUpAPI/model/instancepath.h +266 -0
  205. data/sketchup-sdk-win/headers/SketchUpAPI/model/layer.h +265 -0
  206. data/sketchup-sdk-win/headers/SketchUpAPI/model/layer_folder.h +301 -0
  207. data/sketchup-sdk-win/headers/SketchUpAPI/model/line_style.h +211 -0
  208. data/sketchup-sdk-win/headers/SketchUpAPI/model/line_styles.h +81 -0
  209. data/sketchup-sdk-win/headers/SketchUpAPI/model/location.h +65 -0
  210. data/sketchup-sdk-win/headers/SketchUpAPI/model/loop.h +182 -0
  211. data/sketchup-sdk-win/headers/SketchUpAPI/model/material.h +390 -0
  212. data/sketchup-sdk-win/headers/SketchUpAPI/model/mesh_helper.h +187 -0
  213. data/sketchup-sdk-win/headers/SketchUpAPI/model/model.h +1663 -0
  214. data/sketchup-sdk-win/headers/SketchUpAPI/model/model_version.h +49 -0
  215. data/sketchup-sdk-win/headers/SketchUpAPI/model/opening.h +72 -0
  216. data/sketchup-sdk-win/headers/SketchUpAPI/model/options_manager.h +79 -0
  217. data/sketchup-sdk-win/headers/SketchUpAPI/model/options_provider.h +166 -0
  218. data/sketchup-sdk-win/headers/SketchUpAPI/model/polyline3d.h +140 -0
  219. data/sketchup-sdk-win/headers/SketchUpAPI/model/rendering_options.h +179 -0
  220. data/sketchup-sdk-win/headers/SketchUpAPI/model/scene.h +836 -0
  221. data/sketchup-sdk-win/headers/SketchUpAPI/model/schema.h +56 -0
  222. data/sketchup-sdk-win/headers/SketchUpAPI/model/schema_type.h +26 -0
  223. data/sketchup-sdk-win/headers/SketchUpAPI/model/section_plane.h +212 -0
  224. data/sketchup-sdk-win/headers/SketchUpAPI/model/selection.h +156 -0
  225. data/sketchup-sdk-win/headers/SketchUpAPI/model/shadow_info.h +147 -0
  226. data/sketchup-sdk-win/headers/SketchUpAPI/model/skp.h +45 -0
  227. data/sketchup-sdk-win/headers/SketchUpAPI/model/style.h +303 -0
  228. data/sketchup-sdk-win/headers/SketchUpAPI/model/styles.h +190 -0
  229. data/sketchup-sdk-win/headers/SketchUpAPI/model/text.h +384 -0
  230. data/sketchup-sdk-win/headers/SketchUpAPI/model/texture.h +358 -0
  231. data/sketchup-sdk-win/headers/SketchUpAPI/model/texture_writer.h +280 -0
  232. data/sketchup-sdk-win/headers/SketchUpAPI/model/typed_value.h +390 -0
  233. data/sketchup-sdk-win/headers/SketchUpAPI/model/uv_helper.h +79 -0
  234. data/sketchup-sdk-win/headers/SketchUpAPI/model/vertex.h +154 -0
  235. data/sketchup-sdk-win/headers/SketchUpAPI/sketchup.h +122 -0
  236. data/sketchup-sdk-win/headers/SketchUpAPI/sketchup_info.h +65 -0
  237. data/sketchup-sdk-win/headers/SketchUpAPI/slapi.h +16 -0
  238. data/sketchup-sdk-win/headers/SketchUpAPI/transformation.h +16 -0
  239. data/sketchup-sdk-win/headers/SketchUpAPI/unicodestring.h +239 -0
  240. data/sketchup-sdk-win/headers/SketchUpAPI/utils/math_helpers.h +124 -0
  241. metadata +313 -0
@@ -0,0 +1,834 @@
1
+ // Copyright 2013-2020 Trimble Inc. All Rights Reserved.
2
+
3
+ /**
4
+ * @file
5
+ * @brief Interfaces for SUEntitiesRef.
6
+ */
7
+ #ifndef SKETCHUP_MODEL_ENTITIES_H_
8
+ #define SKETCHUP_MODEL_ENTITIES_H_
9
+
10
+ #include <SketchUpAPI/geometry.h>
11
+ #include <SketchUpAPI/common.h>
12
+ #include <SketchUpAPI/unicodestring.h>
13
+ #include <SketchUpAPI/model/curve.h>
14
+ #include <SketchUpAPI/model/defs.h>
15
+
16
+ #pragma pack(push, 8)
17
+ #ifdef __cplusplus
18
+ extern "C" {
19
+ #endif
20
+
21
+ /**
22
+ @struct SUEntitiesRef
23
+ @brief References a container object for all entities in a model,
24
+ component definition or a group.
25
+ */
26
+
27
+ /**
28
+ @brief Removes all entities in the container.
29
+ @since SketchUp 2019, API 7.0
30
+ @param[in] entities The entities to clear.
31
+ @related SUEntitiesRef
32
+ @return
33
+ - \ref SU_ERROR_NONE on success
34
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
35
+ */
36
+ SU_RESULT SUEntitiesClear(SUEntitiesRef entities);
37
+
38
+ /**
39
+ @brief SUEntitiesFill is the fastest way to populate an entities object. The
40
+ important precondition is that no duplicate data should be given.
41
+
42
+ NOTE: Faces included in the geometry input object will be merged together when
43
+ using this function. This only applies to geometry in the geometry input
44
+ object and not to any already-existing geometry in the entities object.
45
+ Examples of merging are:
46
+ - If weld_vertices is true, duplicated vertices are merged.
47
+ - Coincident faces are merged.
48
+ - Coincident faces with opposite normals are merged into a single face using the
49
+ appropriate materials from both faces as the front and back materials.
50
+ - Faces are created from coplanar edge loops.
51
+ - Conincident edges are merged. Visibility is retained when visible and
52
+ invisible edges are welded together. Hardness is retained when hard and soft
53
+ edges are welded together.
54
+
55
+ @param[in] entities The entities to populate. Must be an empty entities
56
+ object.
57
+ @param[in] geom_input The geometry input that the entities object is to be
58
+ populated with.
59
+ @param[in] weld_vertices Flag indicating whether to join coincident vertices.
60
+ @related SUEntitiesRef
61
+ @return
62
+ - \ref SU_ERROR_NONE on success
63
+ - \ref SU_ERROR_INVALID_INPUT if entities or geom_input are invalid objects
64
+ */
65
+ SU_RESULT SUEntitiesFill(SUEntitiesRef entities, SUGeometryInputRef geom_input, bool weld_vertices);
66
+
67
+ /**
68
+ @brief Retrieves the bounding box of the entities.
69
+ @param[in] entities The entities object.
70
+ @param[out] bbox The bounding box retrieved.
71
+ @related SUEntitiesRef
72
+ @return
73
+ - \ref SU_ERROR_NONE on success
74
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
75
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if bbox is NULL
76
+ */
77
+ SU_RESULT SUEntitiesGetBoundingBox(SUEntitiesRef entities, struct SUBoundingBox3D* bbox);
78
+
79
+ /**
80
+ @brief Retrieves the LLA coordinates (Latidue, Longitude and Altitude) bounding
81
+ box of the given entities object.
82
+ Note that the altitude is calculated based on the model origin, Example:
83
+ If an entities object has a bounding box with the following values
84
+ {{100,100,100}, {200,200,200}} the result will be something like the
85
+ following: {{Latitude, Longitude, 100/METERS_TO_INCHES},
86
+ {Latitude, Longitude, 200/METERS_TO_INCHES}} where Latitude and Longitude
87
+ are the geographical coordinates and altitude is just a conversion from
88
+ inches to meters.
89
+ @since SketchUp 2018 M0, API 6.0
90
+ @param[in] entities The entities object.
91
+ @param[out] bbox The latidue longitude and altitude bounding box retrieved.
92
+ @related SUEntitiesRef
93
+ @return
94
+ - \ref SU_ERROR_NONE on success
95
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
96
+ - \ref SU_ERROR_NO_DATA if entities doesn't belong to a valid model.
97
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if bbox is NULL
98
+ */
99
+ SU_RESULT SUEntitiesGetBoundingBoxLLA(SUEntitiesRef entities, struct SUBoundingBox3D* bbox);
100
+
101
+ /**
102
+ @brief Retrieves the number of faces in the entities object.
103
+ @param[in] entities The entities object.
104
+ @param[out] count The number of faces.
105
+ @related SUEntitiesRef
106
+ @return
107
+ - \ref SU_ERROR_NONE on success
108
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
109
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
110
+ */
111
+ SU_RESULT SUEntitiesGetNumFaces(SUEntitiesRef entities, size_t* count);
112
+
113
+ /**
114
+ @brief Retrieves the faces in the entities object.
115
+ @param[in] entities The entities object.
116
+ @param[in] len The number of faces to retrieve.
117
+ @param[out] faces The faces retrieved.
118
+ @param[out] count The number of faces retrieved.
119
+ @related SUEntitiesRef
120
+ @return
121
+ - \ref SU_ERROR_NONE on success
122
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
123
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if faces or count is NULL
124
+ */
125
+ SU_RESULT SUEntitiesGetFaces(SUEntitiesRef entities, size_t len, SUFaceRef faces[], size_t* count);
126
+
127
+ /**
128
+ @brief Retrieves the number of curves in the entities object that are not
129
+ associated with a face.
130
+ @param[in] entities The entities object.
131
+ @param[out] count The number of curves.
132
+ @related SUEntitiesRef
133
+ @return
134
+ - \ref SU_ERROR_NONE on success
135
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
136
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
137
+ */
138
+ SU_RESULT SUEntitiesGetNumCurves(SUEntitiesRef entities, size_t* count);
139
+
140
+ /**
141
+ @brief Retrieves the curves in the entities object that are not associated with
142
+ a face.
143
+ @param[in] entities The entities object.
144
+ @param[in] len The number of curves to retrieve.
145
+ @param[out] curves The curves retrieved.
146
+ @param[out] count The number of curves retrieved.
147
+ @related SUEntitiesRef
148
+ @return
149
+ - \ref SU_ERROR_NONE on success
150
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
151
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if curves or count is NULL
152
+ */
153
+ SU_RESULT SUEntitiesGetCurves(
154
+ SUEntitiesRef entities, size_t len, SUCurveRef curves[], size_t* count);
155
+
156
+ /**
157
+ @brief Retrieves the number of arccurves in the entities object that are not
158
+ associated with a face.
159
+ @since SketchUp 2016, API 4.0
160
+ @param[in] entities The entities object.
161
+ @param[out] count The number of arccurves.
162
+ @related SUEntitiesRef
163
+ @return
164
+ - \ref SU_ERROR_NONE on success
165
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
166
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
167
+ */
168
+ SU_RESULT SUEntitiesGetNumArcCurves(SUEntitiesRef entities, size_t* count);
169
+
170
+ /**
171
+ @brief Retrieves the arccurves in the entities object that are not associated
172
+ with a face.
173
+ @since SketchUp 2016, API 4.0
174
+ @param[in] entities The entities object.
175
+ @param[in] len The number of arccurves to retrieve.
176
+ @param[out] arccurves The arccurves retrieved.
177
+ @param[out] count The number of curves retrieved.
178
+ @related SUEntitiesRef
179
+ @return
180
+ - \ref SU_ERROR_NONE on success
181
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
182
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if arccurves or count is NULL
183
+ */
184
+ SU_RESULT SUEntitiesGetArcCurves(
185
+ SUEntitiesRef entities, size_t len, SUArcCurveRef arccurves[], size_t* count);
186
+
187
+ /**
188
+ @brief Retrieves the number of guide points in the entities object.
189
+ @since SketchUp 2014 M1, API 2.1
190
+ @param[in] entities The entities object.
191
+ @param[out] count The number of guide_points.
192
+ @related SUEntitiesRef
193
+ @return
194
+ - \ref SU_ERROR_NONE on success
195
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
196
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
197
+ */
198
+ SU_RESULT SUEntitiesGetNumGuidePoints(SUEntitiesRef entities, size_t* count);
199
+
200
+ /**
201
+ @brief Retrieves the guide points in the entities object.
202
+ @since SketchUp 2014 M1, API 2.1
203
+ @param[in] entities The entities object.
204
+ @param[in] len The number of guide points to retrieve.
205
+ @param[out] guide_points The guide_points retrieved.
206
+ @param[out] count The number of guide_points retrieved.
207
+ @related SUEntitiesRef
208
+ @return
209
+ - \ref SU_ERROR_NONE on success
210
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
211
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if guide_points or count is NULL
212
+ */
213
+ SU_RESULT SUEntitiesGetGuidePoints(
214
+ SUEntitiesRef entities, size_t len, SUGuidePointRef guide_points[], size_t* count);
215
+
216
+ /**
217
+ @brief Retrieves the number of guide lines in the entities object.
218
+ @since SketchUp 2016, API 4.0
219
+ @param[in] entities The entities object.
220
+ @param[out] count The number of guide_lines.
221
+ @related SUEntitiesRef
222
+ @return
223
+ - \ref SU_ERROR_NONE on success
224
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
225
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
226
+ */
227
+ SU_RESULT SUEntitiesGetNumGuideLines(SUEntitiesRef entities, size_t* count);
228
+
229
+ /**
230
+ @brief Retrieves the guide lines in the entities object.
231
+ @since SketchUp 2016, API 4.0
232
+ @param[in] entities The entities object.
233
+ @param[in] len The number of guide lines to retrieve.
234
+ @param[out] guide_lines The guide_lines retrieved.
235
+ @param[out] count The number of guide_lines retrieved.
236
+ @related SUEntitiesRef
237
+ @return
238
+ - \ref SU_ERROR_NONE on success
239
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
240
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if guide_lines or count is NULL
241
+ */
242
+ SU_RESULT SUEntitiesGetGuideLines(
243
+ SUEntitiesRef entities, size_t len, SUGuideLineRef guide_lines[], size_t* count);
244
+
245
+ /**
246
+ @brief Retrieves the number of edges in the entities object.
247
+ @param[in] entities The entities object.
248
+ @param[in] standalone_only Whether to count all edges (false) or only the edges
249
+ not attached to curves and faces (true).
250
+ @param[out] count The number of edges.
251
+ @related SUEntitiesRef
252
+ @return
253
+ - \ref SU_ERROR_NONE on success
254
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
255
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
256
+ */
257
+ SU_RESULT SUEntitiesGetNumEdges(SUEntitiesRef entities, bool standalone_only, size_t* count);
258
+
259
+ /**
260
+ @brief Retrieves the edges in the entities object.
261
+ @param[in] entities The entities object.
262
+ @param[in] standalone_only Whether to get all edges (false) or only the edges
263
+ not attached to curves and faces (true).
264
+ @param[in] len The number of edges to retrieve.
265
+ @param[out] edges The edges retrieved.
266
+ @param[out] count The number of edges retrieved.
267
+ @related SUEntitiesRef
268
+ @return
269
+ - \ref SU_ERROR_NONE on success
270
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
271
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if edges or count is NULL
272
+ */
273
+ SU_RESULT SUEntitiesGetEdges(
274
+ SUEntitiesRef entities, bool standalone_only, size_t len, SUEdgeRef edges[], size_t* count);
275
+
276
+ /**
277
+ @brief Retrieves the number of polyline3d's in the entities object.
278
+ @param[in] entities The entities object.
279
+ @param[out] count The the number of polyline3d's.
280
+ @related SUEntitiesRef
281
+ @return
282
+ - \ref SU_ERROR_NONE on success
283
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
284
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
285
+ */
286
+ SU_RESULT SUEntitiesGetNumPolyline3ds(SUEntitiesRef entities, size_t* count);
287
+
288
+ /**
289
+ @brief Retrieves the polyline3d's in the entities object.
290
+ @param[in] len The number of polyline3d's to retrieve.
291
+ @param[in] entities The entities object.
292
+ @param[out] lines The polyline3d's retrieved.
293
+ @param[out] count The number of polyline3d's retrieved.
294
+ @related SUEntitiesRef
295
+ @return
296
+ - \ref SU_ERROR_NONE on success
297
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
298
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if lines or count is NULL
299
+ */
300
+ SU_RESULT SUEntitiesGetPolyline3ds(
301
+ SUEntitiesRef entities, size_t len, SUPolyline3dRef lines[], size_t* count);
302
+
303
+ /**
304
+ @brief Adds face objects to a entities object.
305
+
306
+ @bug SUEntitiesAddFaces() will not merge overlapping vertices and edges, which
307
+ produces SketchUp models with unexpected state. Avoid using these functions
308
+ and instead use SUGeometryInputRef along with SUEntitiesFill().
309
+
310
+ @param[in] entities The entities object.
311
+ @param[in] len The length of the array of face objects.
312
+ @param[in] faces The array of face objects to add.
313
+ @related SUEntitiesRef
314
+ @return
315
+ - \ref SU_ERROR_NONE on success
316
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
317
+ - \ref SU_ERROR_NULL_POINTER_INPUT if faces is NULL
318
+ */
319
+ SU_RESULT SUEntitiesAddFaces(SUEntitiesRef entities, size_t len, const SUFaceRef faces[]);
320
+
321
+ /**
322
+ @brief Adds edge objects to an entities object.
323
+
324
+ NOTE: This function does not merge geometry, which will likely create an invalid
325
+ SketchUp model. It is recommended to use SUGeometryInput instead which does
326
+ correctly merge geometry.
327
+
328
+ @param[in] entities The entities object.
329
+ @param[in] len The length of the array of edge objects.
330
+ @param[in] edges The array of edge objects to add.
331
+ @related SUEntitiesRef
332
+ @return
333
+ - \ref SU_ERROR_NONE on success
334
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
335
+ - \ref SU_ERROR_NULL_POINTER_INPUT if edges is NULL
336
+ */
337
+ SU_RESULT SUEntitiesAddEdges(SUEntitiesRef entities, size_t len, const SUEdgeRef edges[]);
338
+
339
+ /**
340
+ @brief Adds curve objects to an entities object.
341
+
342
+ NOTE: This function does not merge geometry, which will likely create an invalid
343
+ SketchUp model. It is recommended to use SUGeometryInput instead which does
344
+ correctly merge geometry.
345
+
346
+ @param[in] entities The entities object.
347
+ @param[in] len The length of the array of curve objects.
348
+ @param[in] curves The array of curve objects to add.
349
+ @related SUEntitiesRef
350
+ @return
351
+ - \ref SU_ERROR_NONE on success
352
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
353
+ - \ref SU_ERROR_NULL_POINTER_INPUT if curves is NULL
354
+ */
355
+ SU_RESULT SUEntitiesAddCurves(SUEntitiesRef entities, size_t len, const SUCurveRef curves[]);
356
+
357
+ /**
358
+ @brief Adds arccurve objects to an entities object.
359
+ @since SketchUp 2016, API 4.0
360
+
361
+ NOTE: This function does not merge geometry, which will likely create an invalid
362
+ SketchUp model. It is recommended to use SUGeometryInput instead which does
363
+ correctly merge geometry.
364
+
365
+ @param[in] entities The entities object.
366
+ @param[in] len The length of the array of curve objects.
367
+ @param[in] curves The array of arccurve objects to add.
368
+ @related SUEntitiesRef
369
+ @return
370
+ - \ref SU_ERROR_NONE on success
371
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
372
+ - \ref SU_ERROR_NULL_POINTER_INPUT if curves is NULL
373
+ */
374
+ SU_RESULT SUEntitiesAddArcCurves(SUEntitiesRef entities, size_t len, const SUArcCurveRef curves[]);
375
+
376
+ /**
377
+ @brief Adds guide point objects to an entities object.
378
+ @since SketchUp 2014 M1, API 2.1
379
+ @param[in] entities The entities object.
380
+ @param[in] len The length of the array of guide point objects.
381
+ @param[in] guide_points The array of guide point objects to add.
382
+ @related SUEntitiesRef
383
+ @return
384
+ - \ref SU_ERROR_NONE on success
385
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
386
+ - \ref SU_ERROR_NULL_POINTER_INPUT if guide_points is NULL
387
+ */
388
+ SU_RESULT SUEntitiesAddGuidePoints(
389
+ SUEntitiesRef entities, size_t len, const SUGuidePointRef guide_points[]);
390
+
391
+ /**
392
+ @brief Adds guide line objects to an entities object.
393
+ @since SketchUp 2016, API 4.0
394
+ @param[in] entities The entities object.
395
+ @param[in] len The length of the array of guide line objects.
396
+ @param[in] guide_lines The array of guide line objects to add.
397
+ @related SUEntitiesRef
398
+ @return
399
+ - \ref SU_ERROR_NONE on success
400
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
401
+ - \ref SU_ERROR_NULL_POINTER_INPUT if guide_lines is NULL
402
+ */
403
+ SU_RESULT SUEntitiesAddGuideLines(
404
+ SUEntitiesRef entities, size_t len, const SUGuideLineRef guide_lines[]);
405
+
406
+ /**
407
+ @brief Adds a group object to an entities object.
408
+ @param[in] entities The entities object.
409
+ @param[in] group The group object to add.
410
+ @related SUEntitiesRef
411
+ @return
412
+ - \ref SU_ERROR_NONE on success
413
+ - \ref SU_ERROR_INVALID_INPUT if entities or group is not a valid object
414
+ */
415
+ SU_RESULT SUEntitiesAddGroup(SUEntitiesRef entities, SUGroupRef group);
416
+
417
+ /**
418
+ @brief Adds an image object to an entities object.
419
+ @param[in] entities The entities object.
420
+ @param[in] image The image object to add.
421
+ @related SUEntitiesRef
422
+ @return
423
+ - \ref SU_ERROR_NONE on success
424
+ - \ref SU_ERROR_INVALID_INPUT if entities or image is not a valid object
425
+ */
426
+ SU_RESULT SUEntitiesAddImage(SUEntitiesRef entities, SUImageRef image);
427
+
428
+ /**
429
+ @brief Adds a component instance object to the entities.
430
+ @param[in] entities The entities object.
431
+ @param[in] instance The component instance object to add.
432
+ @param[out] name The unique name that is assigned to definition of the
433
+ component instance. This can be NULL in which case the
434
+ caller does not need to retrieve the assigned name.
435
+ @related SUEntitiesRef
436
+ @return
437
+ - \ref SU_ERROR_NONE on success
438
+ - \ref SU_ERROR_INVALID_INPUT if entities or instance is not a valid object
439
+ - \ref SU_ERROR_INVALID_OUTPUT if name (when not NULL) does not refer to a valid
440
+ \ref SUStringRef object
441
+ */
442
+ SU_RESULT SUEntitiesAddInstance(
443
+ SUEntitiesRef entities, SUComponentInstanceRef instance, SUStringRef* name);
444
+
445
+ /**
446
+ @brief Adds section plane objects to an entities object.
447
+ @since SketchUp 2016, API 4.0
448
+ @param[in] entities The entities object.
449
+ @param[in] len The length of the array of section planes objects.
450
+ @param[in] section_planes The array of section planes objects to add.
451
+ @related SUEntitiesRef
452
+ @return
453
+ - \ref SU_ERROR_NONE on success
454
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
455
+ - \ref SU_ERROR_NULL_POINTER_INPUT if section_planes is NULL
456
+ */
457
+ SU_RESULT SUEntitiesAddSectionPlanes(
458
+ SUEntitiesRef entities, size_t len, const SUSectionPlaneRef section_planes[]);
459
+
460
+ /**
461
+ @brief Adds text objects to an entities object.
462
+ @since SketchUp 2018, API 6.0
463
+ @param[in] entities The entities object.
464
+ @param[in] len The length of the array of text objects.
465
+ @param[in] texts The array of text objects to add.
466
+ @related SUEntitiesRef
467
+ @return
468
+ - \ref SU_ERROR_NONE on success
469
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
470
+ - \ref SU_ERROR_NULL_POINTER_INPUT if texts is NULL
471
+ */
472
+ SU_RESULT SUEntitiesAddTexts(SUEntitiesRef entities, size_t len, const SUTextRef texts[]);
473
+
474
+ /**
475
+ @brief Retrieves the number of groups in the entities.
476
+ @param[in] entities The entities object.
477
+ @param[out] count The number of groups.
478
+ @related SUEntitiesRef
479
+ @return
480
+ - \ref SU_ERROR_NONE on success
481
+ - \ref SU_ERROR_INVALID_INPUT if entities is an invalid entities object
482
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
483
+ */
484
+ SU_RESULT SUEntitiesGetNumGroups(SUEntitiesRef entities, size_t* count);
485
+
486
+ /**
487
+ @brief Retrieves the groups in the entities.
488
+ @param[in] entities The entities object.
489
+ @param[in] len The number of groups to retrieve.
490
+ @param[out] groups The groups retrieved.
491
+ @param[out] count The number of groups retrieved.
492
+ @related SUEntitiesRef
493
+ @return
494
+ - \ref SU_ERROR_NONE on success
495
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
496
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if groups or count is NULL
497
+ */
498
+ SU_RESULT SUEntitiesGetGroups(
499
+ SUEntitiesRef entities, size_t len, SUGroupRef groups[], size_t* count);
500
+
501
+ /**
502
+ @brief Retrieves the number of images in the entities.
503
+ @param[in] entities The entities object.
504
+ @param[out] count The number of image objects.
505
+ @related SUEntitiesRef
506
+ @return
507
+ - \ref SU_ERROR_NONE on success
508
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
509
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
510
+ */
511
+ SU_RESULT SUEntitiesGetNumImages(SUEntitiesRef entities, size_t* count);
512
+
513
+ /**
514
+ @brief Retrieves the array of image objects of a entities object.
515
+ @param[in] entities The entities object.
516
+ @param[in] len The number of image objects to retrieve.
517
+ @param[out] images The image objects retrieved.
518
+ @param[out] count The number of image objects retrieved.
519
+ @related SUEntitiesRef
520
+ @return
521
+ - \ref SU_ERROR_NONE on success
522
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
523
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if images or count is NULL
524
+ */
525
+ SU_RESULT SUEntitiesGetImages(
526
+ SUEntitiesRef entities, size_t len, SUImageRef images[], size_t* count);
527
+
528
+ /**
529
+ @brief Retrieves the number of component instances in the entities.
530
+ @param[in] entities The entities object.
531
+ @param[out] count The number of component instances.
532
+ @related SUEntitiesRef
533
+ @return
534
+ - \ref SU_ERROR_NONE on success
535
+ - \ref SU_ERROR_INVALID_INPUT if entities is an invalid entities object.
536
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
537
+ */
538
+ SU_RESULT SUEntitiesGetNumInstances(SUEntitiesRef entities, size_t* count);
539
+
540
+ /**
541
+ @brief Retrieves the component instances in the entities.
542
+ @param[in] entities The entities object.
543
+ @param[in] len The number of component instances to retrieve.
544
+ @param[out] instances The component instances retrieved.
545
+ @param[out] count The number of component instances retrieved.
546
+ @related SUEntitiesRef
547
+ @return
548
+ - \ref SU_ERROR_NONE on success
549
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
550
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if instances or count is NULL
551
+ */
552
+ SU_RESULT SUEntitiesGetInstances(
553
+ SUEntitiesRef entities, size_t len, SUComponentInstanceRef instances[], size_t* count);
554
+
555
+ /**
556
+ @brief Retrieves the number of section planes in the entities object.
557
+ @since SketchUp 2016, API 4.0
558
+ @param[in] entities The entities object.
559
+ @param[out] count The number of section planes.
560
+ @related SUEntitiesRef
561
+ @return
562
+ - \ref SU_ERROR_NONE on success
563
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
564
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
565
+ */
566
+ SU_RESULT SUEntitiesGetNumSectionPlanes(SUEntitiesRef entities, size_t* count);
567
+
568
+ /**
569
+ @brief Retrieves the number of texts in the entities object.
570
+ @since SketchUp 2018, API 6.0
571
+ @param[in] entities The entities object.
572
+ @param[out] count The number of texts.
573
+ @related SUEntitiesRef
574
+ @return
575
+ - \ref SU_ERROR_NONE on success
576
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
577
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
578
+ */
579
+ SU_RESULT SUEntitiesGetNumTexts(SUEntitiesRef entities, size_t* count);
580
+
581
+ /**
582
+ @brief Retrieves the section planes in the entities.
583
+ @since SketchUp 2016, API 4.0
584
+ @param[in] entities The entities object.
585
+ @param[in] len The number of section planes to retrieve.
586
+ @param[out] section_planes The section planes retrieved.
587
+ @param[out] count The number of section planes retrieved.
588
+ @related SUEntitiesRef
589
+ @return
590
+ - \ref SU_ERROR_NONE on success
591
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
592
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if section_planes or count is NULL
593
+ */
594
+ SU_RESULT SUEntitiesGetSectionPlanes(
595
+ SUEntitiesRef entities, size_t len, SUSectionPlaneRef section_planes[], size_t* count);
596
+
597
+ /**
598
+ @brief Retrieves the number of dimensions in the entities object.
599
+ @since SketchUp 2017, API 5.0
600
+ @param[in] entities The entities object.
601
+ @param[out] count The number of dimensions.
602
+ @related SUEntitiesRef
603
+ @return
604
+ - \ref SU_ERROR_NONE on success
605
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
606
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if count is NULL
607
+ */
608
+ SU_RESULT SUEntitiesGetNumDimensions(SUEntitiesRef entities, size_t* count);
609
+
610
+ /**
611
+ @brief Retrieves the dimensions in the entities object.
612
+ @since SketchUp 2017, API 5.0
613
+ @param[in] entities The entities object.
614
+ @param[in] len The number of dimensions to retrieve.
615
+ @param[out] dimensions The dimensions retrieved.
616
+ @param[out] count The number of dimensions retrieved.
617
+ @related SUEntitiesRef
618
+ @return
619
+ - \ref SU_ERROR_NONE on success
620
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
621
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if dimensions or count is NULL
622
+ */
623
+ SU_RESULT SUEntitiesGetDimensions(
624
+ SUEntitiesRef entities, size_t len, SUDimensionRef* dimensions, size_t* count);
625
+
626
+ /**
627
+ @brief Retrieves the texts in the entities.
628
+ @since SketchUp 2018, API 6.0
629
+ @param[in] entities The entities object.
630
+ @param[in] len The number of section planes to retrieve.
631
+ @param[out] texts The texts retrieved.
632
+ @param[out] count The number of texts retrieved.
633
+ @related SUEntitiesRef
634
+ @return
635
+ - \ref SU_ERROR_NONE on success
636
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
637
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if texts or count is NULL
638
+ */
639
+ SU_RESULT SUEntitiesGetTexts(SUEntitiesRef entities, size_t len, SUTextRef texts[], size_t* count);
640
+
641
+ /**
642
+ @brief Applies a 3D transformation to the elements of the provided entity array.
643
+ @since SketchUp 2017, API 5.0
644
+ @param[in] entities The entities object.
645
+ @param[in] len The number of entities in the array.
646
+ @param[in] elements The elements to be transformed.
647
+ @param[in] trans The transform to be applied.
648
+ @related SUEntitiesRef
649
+ @return
650
+ - \ref SU_ERROR_NONE on success
651
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
652
+ - \ref SU_ERROR_NULL_POINTER_INPUT if trans or elements are NULL
653
+ - \ref SU_ERROR_UNSUPPORTED if any of the elements in the array are not
654
+ contained by entities
655
+ - \ref SU_ERROR_GENERIC if the transformation operation fails
656
+ */
657
+ SU_RESULT SUEntitiesTransform(
658
+ SUEntitiesRef entities, size_t len, SUEntityRef elements[],
659
+ const struct SUTransformation* trans);
660
+
661
+ /**
662
+ @brief Applies a 3D transformations to the elements of the provided entity
663
+ array. The arrays of elements and transformations must be the same
664
+ length.
665
+ @since SketchUp 2017, API 5.0
666
+ @param[in] entities The entities object.
667
+ @param[in] len The number of entities in the array.
668
+ @param[in] elements The elements to be transformed.
669
+ @param[in] tranforms The transformations to be applied.
670
+ @related SUEntitiesRef
671
+ @return
672
+ - \ref SU_ERROR_NONE on success
673
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
674
+ - \ref SU_ERROR_NULL_POINTER_INPUT if elements or tranforms are NULL
675
+ - \ref SU_ERROR_UNSUPPORTED if any of the elements in the array are not
676
+ contained by entities
677
+ - \ref SU_ERROR_GENERIC if the transformation operation fails
678
+ */
679
+ SU_RESULT SUEntitiesTransformMultiple(
680
+ SUEntitiesRef entities, size_t len, SUEntityRef elements[],
681
+ const struct SUTransformation tranforms[]);
682
+
683
+ /**
684
+ @brief Erases elements from an entities object. The input elements are
685
+ destroyed, so the array elements are invalidated to prevent user from
686
+ attempting to use destroyed entities.
687
+ @since SketchUp 2017, API 5.0
688
+ @param[in] entities The entities object.
689
+ @param[in] len The number of entities in the array.
690
+ @param[in] elements The elements to be destroyed.
691
+ @related SUEntitiesRef
692
+ @return
693
+ - \ref SU_ERROR_NONE on success
694
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
695
+ - \ref SU_ERROR_NULL_POINTER_INPUT if elements is NULL
696
+ - \ref SU_ERROR_UNSUPPORTED if any of the elements in the array are not
697
+ contained by entities
698
+ */
699
+ SU_RESULT SUEntitiesErase(SUEntitiesRef entities, size_t len, SUEntityRef elements[]);
700
+
701
+ /**
702
+ @brief Retrieves a boolean indicating whether the entities object is
703
+ recursively empty. A recursively empty entities object is defined as one
704
+ that either has zero entities or contains only instances of definitions
705
+ with recursively empty entities objects.
706
+ @since SketchUp 2017, API 5.0
707
+ @param[in] entities The entities object.
708
+ @param[out] is_empty The bool value retrieved.
709
+ @related SUEntitiesRef
710
+ @return
711
+ - \ref SU_ERROR_NONE on success
712
+ - \ref SU_ERROR_INVALID_INPUT if entities is invalid
713
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if is_empty is NULL
714
+ */
715
+ SU_RESULT SUEntitiesIsRecursivelyEmpty(SUEntitiesRef entities, bool* is_empty);
716
+
717
+ /**
718
+ @brief Retrieves a boolean by recursively searching through the entities
719
+ determining whether the entities has an active section plane or any
720
+ of its nested components have an active section plane.
721
+ @since SketchUp 2018, API 6.0
722
+ @param[in] entities The entities object.
723
+ @param[out] has_section_cuts The bool value retrieved.
724
+ @related SUEntitiesRef
725
+ @return
726
+ - \ref SU_ERROR_NONE on success
727
+ - \ref SU_ERROR_INVALID_INPUT if entities is invalid
728
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if has_section_cuts is NULL
729
+ */
730
+ SU_RESULT SUEntitiesHasSectionCuts(SUEntitiesRef entities, bool* has_section_cuts);
731
+
732
+ /**
733
+ @brief Fills the list with all entities of the specified type in the instance.
734
+ The list is not in any specific order.
735
+ @since SketchUp 2018, API 6.0
736
+ @param[in] entities The entities object to be queried.
737
+ @param[in] type The type of entities to be collected.
738
+ @param[out] list The list object to be filled.
739
+ @related SUEntitiesRef
740
+ @return
741
+ - \ref SU_ERROR_NONE on success
742
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
743
+ - \ref SU_ERROR_INVALID_OUTPUT if list is not a valid object
744
+ */
745
+ SU_RESULT SUEntitiesEntityListFill(
746
+ SUEntitiesRef entities, enum SURefType type, SUEntityListRef list);
747
+
748
+ /**
749
+ @brief Takes a set of edges and find all possible chains of edges and connect
750
+ them with a \ref SUCurveRef.
751
+
752
+ A curve will not cross another curve. They will split where multiple
753
+ curves meet.
754
+
755
+ @since SketchUp 2020.1, API 8.1
756
+ @param[in] entities The entities object to be queried.
757
+ @param[in] num_edges The length of the array of edge objects.
758
+ @param[in] edges The array of edge objects to weld.
759
+ @param[out] list The list object to be filled with \ref SUCurveRef objects.
760
+ @related SUEntitiesRef
761
+ @see SUArcCurveRef
762
+ @see SUCurveRef
763
+ @return
764
+ - \ref SU_ERROR_NONE on success
765
+ - \ref SU_ERROR_INVALID_INPUT if entities is not a valid object
766
+ - \ref SU_ERROR_NULL_POINTER_INPUT if edges is NULL
767
+ - \ref SU_ERROR_INVALID_OUTPUT if list is not a valid object
768
+ - \ref SU_ERROR_INVALID_ARGUMENT if edges contains edges that don't belong to
769
+ the same entities collection.
770
+ */
771
+ SU_RESULT SUEntitiesWeld(
772
+ SUEntitiesRef entities, size_t num_edges, SUEdgeRef edges[], SUEntityListRef list);
773
+
774
+ /**
775
+ @brief Reference to the parent of an SUEntitiesRef object.
776
+ @since SketchUp 2021.1, API 9.1
777
+ */
778
+ struct SUEntitiesParent {
779
+ /// The parent model, or \p SU_INVALID if the parent is a component definition.
780
+ SUModelRef model;
781
+
782
+ /// The parent component definition, or \p SU_INVALID if the parent is a model.
783
+ SUComponentDefinitionRef definition;
784
+ };
785
+
786
+ /**
787
+ @brief Get the parent component definition or model that owns this entities object.
788
+ @since SketchUp 2021.1, API 9.1
789
+ @param[in] entities
790
+ @param[out] parent
791
+ @related SUEntitiesRef
792
+ @return
793
+ - \ref SU_ERROR_NONE on success
794
+ - \ref SU_ERROR_INVALID_INPUT if \p entities is not a valid object
795
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if \p parent is NULL.
796
+ */
797
+ SU_RESULT SUEntitiesGetParent(SUEntitiesRef entities, struct SUEntitiesParent* parent);
798
+
799
+ /**
800
+ @brief Get the active section plane for this entities object.
801
+ @since SketchUp 2021.1, API 9.1
802
+ @param[in] entities
803
+ @param[out] section_plane
804
+ @related SUEntitiesRef
805
+ @return
806
+ - \ref SU_ERROR_NONE on success.
807
+ - \ref SU_ERROR_INVALID_INPUT if \p entities is not a valid object.
808
+ - \ref SU_ERROR_NULL_POINTER_OUTPUT if \p entities is NULL.
809
+ - \ref SU_ERROR_OVERWRITE_VALID if \p section_plane already references a valid object.
810
+ - \ref SU_ERROR_NO_DATA if \p entities has no active section plane.
811
+ */
812
+ SU_RESULT SUEntitiesGetActiveSectionPlane(SUEntitiesRef entities, SUSectionPlaneRef* section_plane);
813
+
814
+ /**
815
+ @brief Set the active section plane for this entities object.
816
+ @since SketchUp 2021.1, API 9.1
817
+ @bug Before SketchUp 2023.1 (API 11.1) this function would not accept SU_INVALID as a valid
818
+ \p section_plane value and would have returned SU_ERROR_INVALID_INPUT instead
819
+ @param[in] entities
820
+ @param[in] section_plane The section plane to activate or \p SU_INVALID if none should be active.
821
+ @related SUEntitiesRef
822
+ @return
823
+ - \ref SU_ERROR_NONE on success
824
+ - \ref SU_ERROR_INVALID_INPUT if \p entities is not a valid object.
825
+ - \ref SU_ERROR_INVALID_ARGUMENT if \p section_plane doesn't belong to \p entities.
826
+ */
827
+ SU_RESULT SUEntitiesSetActiveSectionPlane(SUEntitiesRef entities, SUSectionPlaneRef section_plane);
828
+
829
+ #ifdef __cplusplus
830
+ } // extern "C"
831
+ #endif
832
+ #pragma pack(pop)
833
+
834
+ #endif // SKETCHUP_MODEL_ENTITIES_H_