org.outernet.cesium-unity 1.15.3-linux.1

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 (315) hide show
  1. package/CHANGES.md +420 -0
  2. package/CHANGES.md.meta +7 -0
  3. package/Editor/BuildCesiumForUnity.cs +186 -0
  4. package/Editor/BuildCesiumForUnity.cs.meta +11 -0
  5. package/Editor/Cesium3DTilesetEditor.cs +542 -0
  6. package/Editor/Cesium3DTilesetEditor.cs.meta +11 -0
  7. package/Editor/CesiumBingMapsRasterOverlayEditor.cs +66 -0
  8. package/Editor/CesiumBingMapsRasterOverlayEditor.cs.meta +11 -0
  9. package/Editor/CesiumCameraControllerEditor.cs +174 -0
  10. package/Editor/CesiumCameraControllerEditor.cs.meta +11 -0
  11. package/Editor/CesiumCameraManagerEditor.cs +65 -0
  12. package/Editor/CesiumCameraManagerEditor.cs.meta +11 -0
  13. package/Editor/CesiumCartographicPolygonEditor.cs +23 -0
  14. package/Editor/CesiumCartographicPolygonEditor.cs.meta +11 -0
  15. package/Editor/CesiumDebugColorizeTilesRasterOverlayEditor.cs +41 -0
  16. package/Editor/CesiumDebugColorizeTilesRasterOverlayEditor.cs.meta +11 -0
  17. package/Editor/CesiumEditor.asmdef +26 -0
  18. package/Editor/CesiumEditor.asmdef.meta +7 -0
  19. package/Editor/CesiumEditorStyle.cs +188 -0
  20. package/Editor/CesiumEditorStyle.cs.meta +11 -0
  21. package/Editor/CesiumEditorUtility.cs +394 -0
  22. package/Editor/CesiumEditorUtility.cs.meta +11 -0
  23. package/Editor/CesiumEditorWindow.cs +447 -0
  24. package/Editor/CesiumEditorWindow.cs.meta +11 -0
  25. package/Editor/CesiumFlyToControllerEditor.cs +76 -0
  26. package/Editor/CesiumFlyToControllerEditor.cs.meta +11 -0
  27. package/Editor/CesiumGeoreferenceEditor.cs +277 -0
  28. package/Editor/CesiumGeoreferenceEditor.cs.meta +11 -0
  29. package/Editor/CesiumGlobeAnchorEditor.cs +202 -0
  30. package/Editor/CesiumGlobeAnchorEditor.cs.meta +11 -0
  31. package/Editor/CesiumInspectorGUI.cs +187 -0
  32. package/Editor/CesiumInspectorGUI.cs.meta +11 -0
  33. package/Editor/CesiumIonAsset.cs +192 -0
  34. package/Editor/CesiumIonAsset.cs.meta +11 -0
  35. package/Editor/CesiumIonAssetsWindow.cs +257 -0
  36. package/Editor/CesiumIonAssetsWindow.cs.meta +11 -0
  37. package/Editor/CesiumIonRasterOverlayEditor.cs +87 -0
  38. package/Editor/CesiumIonRasterOverlayEditor.cs.meta +11 -0
  39. package/Editor/CesiumIonServerManager.cs +153 -0
  40. package/Editor/CesiumIonServerManager.cs.meta +11 -0
  41. package/Editor/CesiumIonServerSelector.cs +127 -0
  42. package/Editor/CesiumIonServerSelector.cs.meta +11 -0
  43. package/Editor/CesiumIonSession.cs +102 -0
  44. package/Editor/CesiumIonSession.cs.meta +11 -0
  45. package/Editor/CesiumPolygonRasterOverlayEditor.cs +102 -0
  46. package/Editor/CesiumPolygonRasterOverlayEditor.cs.meta +11 -0
  47. package/Editor/CesiumRasterOverlayEditor.cs +230 -0
  48. package/Editor/CesiumRasterOverlayEditor.cs.meta +11 -0
  49. package/Editor/CesiumSubSceneEditor.cs +201 -0
  50. package/Editor/CesiumSubSceneEditor.cs.meta +11 -0
  51. package/Editor/CesiumTileMapServiceRasterOverlayEditor.cs +88 -0
  52. package/Editor/CesiumTileMapServiceRasterOverlayEditor.cs.meta +11 -0
  53. package/Editor/CesiumWebMapServiceRasterOverlayEditor.cs +111 -0
  54. package/Editor/CesiumWebMapServiceRasterOverlayEditor.cs.meta +11 -0
  55. package/Editor/CesiumWebMapTileServiceRasterOverlayEditor.cs +277 -0
  56. package/Editor/CesiumWebMapTileServiceRasterOverlayEditor.cs.meta +3 -0
  57. package/Editor/CompileCesiumForUnityNative.cs +581 -0
  58. package/Editor/CompileCesiumForUnityNative.cs.meta +11 -0
  59. package/Editor/ConfigureReinterop.cs +255 -0
  60. package/Editor/ConfigureReinterop.cs.meta +11 -0
  61. package/Editor/Helpers.cs +102 -0
  62. package/Editor/Helpers.cs.meta +11 -0
  63. package/Editor/IonAssetsMultiColumnHeader.cs +45 -0
  64. package/Editor/IonAssetsMultiColumnHeader.cs.meta +11 -0
  65. package/Editor/IonAssetsTreeView.cs +214 -0
  66. package/Editor/IonAssetsTreeView.cs.meta +11 -0
  67. package/Editor/IonMissingAssetWindow.cs +65 -0
  68. package/Editor/IonMissingAssetWindow.cs.meta +11 -0
  69. package/Editor/IonTokenTroubleshootingWindow.cs +615 -0
  70. package/Editor/IonTokenTroubleshootingWindow.cs.meta +11 -0
  71. package/Editor/NativeDownloadHandler.cs +35 -0
  72. package/Editor/NativeDownloadHandler.cs.meta +11 -0
  73. package/Editor/QuickAddItem.cs +43 -0
  74. package/Editor/QuickAddItem.cs.meta +11 -0
  75. package/Editor/Resources/Cesium-128x128.png +0 -0
  76. package/Editor/Resources/Cesium-128x128.png.meta +98 -0
  77. package/Editor/Resources/Cesium-24x24.png +0 -0
  78. package/Editor/Resources/Cesium-24x24.png.meta +123 -0
  79. package/Editor/Resources/Cesium-64x64.png +0 -0
  80. package/Editor/Resources/Cesium-64x64.png.meta +98 -0
  81. package/Editor/Resources/Cesium-for-Unity-dark.png +0 -0
  82. package/Editor/Resources/Cesium-for-Unity-dark.png.meta +123 -0
  83. package/Editor/Resources/Cesium-for-Unity-light.png +0 -0
  84. package/Editor/Resources/Cesium-for-Unity-light.png.meta +123 -0
  85. package/Editor/Resources/Cesium-icon-16x16.png +0 -0
  86. package/Editor/Resources/Cesium-icon-16x16.png.meta +98 -0
  87. package/Editor/Resources/FontAwesome/attribution.txt +9 -0
  88. package/Editor/Resources/FontAwesome/attribution.txt.meta +7 -0
  89. package/Editor/Resources/FontAwesome/book-reader-solid.png +0 -0
  90. package/Editor/Resources/FontAwesome/book-reader-solid.png.meta +98 -0
  91. package/Editor/Resources/FontAwesome/book-reader-solid.svg +1 -0
  92. package/Editor/Resources/FontAwesome/book-reader-solid.svg.meta +7 -0
  93. package/Editor/Resources/FontAwesome/check-solid.png +0 -0
  94. package/Editor/Resources/FontAwesome/check-solid.png.meta +98 -0
  95. package/Editor/Resources/FontAwesome/check-solid.svg +1 -0
  96. package/Editor/Resources/FontAwesome/check-solid.svg.meta +7 -0
  97. package/Editor/Resources/FontAwesome/cloud-upload-alt-solid.png +0 -0
  98. package/Editor/Resources/FontAwesome/cloud-upload-alt-solid.png.meta +98 -0
  99. package/Editor/Resources/FontAwesome/cloud-upload-alt-solid.svg +1 -0
  100. package/Editor/Resources/FontAwesome/cloud-upload-alt-solid.svg.meta +7 -0
  101. package/Editor/Resources/FontAwesome/folder.png +0 -0
  102. package/Editor/Resources/FontAwesome/folder.png.meta +147 -0
  103. package/Editor/Resources/FontAwesome/folder.svg +5 -0
  104. package/Editor/Resources/FontAwesome/folder.svg.meta +7 -0
  105. package/Editor/Resources/FontAwesome/hands-helping-solid.png +0 -0
  106. package/Editor/Resources/FontAwesome/hands-helping-solid.png.meta +98 -0
  107. package/Editor/Resources/FontAwesome/hands-helping-solid.svg +1 -0
  108. package/Editor/Resources/FontAwesome/hands-helping-solid.svg.meta +7 -0
  109. package/Editor/Resources/FontAwesome/key-solid.png +0 -0
  110. package/Editor/Resources/FontAwesome/key-solid.png.meta +98 -0
  111. package/Editor/Resources/FontAwesome/key-solid.svg +1 -0
  112. package/Editor/Resources/FontAwesome/key-solid.svg.meta +7 -0
  113. package/Editor/Resources/FontAwesome/plus-solid.png +0 -0
  114. package/Editor/Resources/FontAwesome/plus-solid.png.meta +98 -0
  115. package/Editor/Resources/FontAwesome/plus-solid.svg +1 -0
  116. package/Editor/Resources/FontAwesome/plus-solid.svg.meta +7 -0
  117. package/Editor/Resources/FontAwesome/sign-out-alt-solid.png +0 -0
  118. package/Editor/Resources/FontAwesome/sign-out-alt-solid.png.meta +98 -0
  119. package/Editor/Resources/FontAwesome/sign-out-alt-solid.svg +1 -0
  120. package/Editor/Resources/FontAwesome/sign-out-alt-solid.svg.meta +7 -0
  121. package/Editor/Resources/FontAwesome/sync-alt-solid.png +0 -0
  122. package/Editor/Resources/FontAwesome/sync-alt-solid.png.meta +98 -0
  123. package/Editor/Resources/FontAwesome/sync-alt-solid.svg +1 -0
  124. package/Editor/Resources/FontAwesome/sync-alt-solid.svg.meta +7 -0
  125. package/Editor/Resources/FontAwesome/times-solid.png +0 -0
  126. package/Editor/Resources/FontAwesome/times-solid.png.meta +98 -0
  127. package/Editor/Resources/FontAwesome/times-solid.svg +1 -0
  128. package/Editor/Resources/FontAwesome/times-solid.svg.meta +7 -0
  129. package/Editor/Resources/FontAwesome.meta +8 -0
  130. package/Editor/Resources.meta +8 -0
  131. package/Editor/SelectIonTokenWindow.cs +249 -0
  132. package/Editor/SelectIonTokenWindow.cs.meta +11 -0
  133. package/Editor/arm64.meta +8 -0
  134. package/Editor/csc.rsp +1 -0
  135. package/Editor/csc.rsp.meta +7 -0
  136. package/Editor/libCesiumForUnityNative-Editor.so +0 -0
  137. package/Editor/libCesiumForUnityNative-Editor.so.meta +2 -0
  138. package/Editor/libCesiumForUnityNative-Runtime.so +0 -0
  139. package/Editor/libCesiumForUnityNative-Runtime.so.meta +2 -0
  140. package/Editor/x86_64.meta +8 -0
  141. package/Editor.meta +8 -0
  142. package/LICENSE +201 -0
  143. package/LICENSE.meta +7 -0
  144. package/Plugins/Standalone/libCesiumForUnityNative-Runtime.so +0 -0
  145. package/Plugins/Standalone/libCesiumForUnityNative-Runtime.so.meta +2 -0
  146. package/Plugins/Standalone.meta +8 -0
  147. package/Plugins.meta +8 -0
  148. package/README.md +39 -0
  149. package/README.md.meta +7 -0
  150. package/Reinterop.deps.json +172 -0
  151. package/Reinterop.deps.json.meta +7 -0
  152. package/Reinterop.dll +0 -0
  153. package/Reinterop.dll.meta +79 -0
  154. package/Runtime/Cesium3DTile.cs +37 -0
  155. package/Runtime/Cesium3DTile.cs.meta +11 -0
  156. package/Runtime/Cesium3DTileset.cs +788 -0
  157. package/Runtime/Cesium3DTileset.cs.meta +11 -0
  158. package/Runtime/Cesium3DTilesetLoadFailureDetails.cs +65 -0
  159. package/Runtime/Cesium3DTilesetLoadFailureDetails.cs.meta +11 -0
  160. package/Runtime/CesiumBackwardCompatibility.cs +163 -0
  161. package/Runtime/CesiumBackwardCompatibility.cs.meta +11 -0
  162. package/Runtime/CesiumBingMapsRasterOverlay.cs +72 -0
  163. package/Runtime/CesiumBingMapsRasterOverlay.cs.meta +11 -0
  164. package/Runtime/CesiumCameraController.cs +827 -0
  165. package/Runtime/CesiumCameraController.cs.meta +11 -0
  166. package/Runtime/CesiumCameraManager.cs +105 -0
  167. package/Runtime/CesiumCameraManager.cs.meta +11 -0
  168. package/Runtime/CesiumCartographicPolygon.cs +152 -0
  169. package/Runtime/CesiumCartographicPolygon.cs.meta +11 -0
  170. package/Runtime/CesiumCreditSystem.cs +343 -0
  171. package/Runtime/CesiumCreditSystem.cs.meta +11 -0
  172. package/Runtime/CesiumCreditSystemUI.cs +402 -0
  173. package/Runtime/CesiumCreditSystemUI.cs.meta +11 -0
  174. package/Runtime/CesiumDebugColorizeTilesRasterOverlay.cs +21 -0
  175. package/Runtime/CesiumDebugColorizeTilesRasterOverlay.cs.meta +11 -0
  176. package/Runtime/CesiumEllipsoid.cs +107 -0
  177. package/Runtime/CesiumEllipsoid.cs.meta +11 -0
  178. package/Runtime/CesiumFeature.cs +279 -0
  179. package/Runtime/CesiumFeature.cs.meta +11 -0
  180. package/Runtime/CesiumFeatureIdAttribute.cs +61 -0
  181. package/Runtime/CesiumFeatureIdAttribute.cs.meta +11 -0
  182. package/Runtime/CesiumFeatureIdSet.cs +165 -0
  183. package/Runtime/CesiumFeatureIdSet.cs.meta +11 -0
  184. package/Runtime/CesiumFeatureIdTexture.cs +68 -0
  185. package/Runtime/CesiumFeatureIdTexture.cs.meta +11 -0
  186. package/Runtime/CesiumFlyToController.cs +539 -0
  187. package/Runtime/CesiumFlyToController.cs.meta +11 -0
  188. package/Runtime/CesiumGeoreference.cs +628 -0
  189. package/Runtime/CesiumGeoreference.cs.meta +11 -0
  190. package/Runtime/CesiumGlobeAnchor.cs +664 -0
  191. package/Runtime/CesiumGlobeAnchor.cs.meta +11 -0
  192. package/Runtime/CesiumGlobeAnchorBackwardCompatibility0dot2dot0.cs +105 -0
  193. package/Runtime/CesiumGlobeAnchorBackwardCompatibility0dot2dot0.cs.meta +11 -0
  194. package/Runtime/CesiumIntMatN.cs +398 -0
  195. package/Runtime/CesiumIntMatN.cs.meta +11 -0
  196. package/Runtime/CesiumIntVecN.cs +525 -0
  197. package/Runtime/CesiumIntVecN.cs.meta +11 -0
  198. package/Runtime/CesiumIonRasterOverlay.cs +110 -0
  199. package/Runtime/CesiumIonRasterOverlay.cs.meta +11 -0
  200. package/Runtime/CesiumIonServer.cs +137 -0
  201. package/Runtime/CesiumIonServer.cs.meta +11 -0
  202. package/Runtime/CesiumMetadata.cs +33 -0
  203. package/Runtime/CesiumMetadata.cs.meta +11 -0
  204. package/Runtime/CesiumMetadataValue.cs +1764 -0
  205. package/Runtime/CesiumMetadataValue.cs.meta +11 -0
  206. package/Runtime/CesiumMetadataValueType.cs +203 -0
  207. package/Runtime/CesiumMetadataValueType.cs.meta +11 -0
  208. package/Runtime/CesiumModelMetadata.cs +26 -0
  209. package/Runtime/CesiumModelMetadata.cs.meta +11 -0
  210. package/Runtime/CesiumObjectPool.cs +74 -0
  211. package/Runtime/CesiumObjectPool.cs.meta +11 -0
  212. package/Runtime/CesiumObjectPools.cs +39 -0
  213. package/Runtime/CesiumObjectPools.cs.meta +11 -0
  214. package/Runtime/CesiumOriginShift.cs +146 -0
  215. package/Runtime/CesiumOriginShift.cs.meta +11 -0
  216. package/Runtime/CesiumPointCloudRenderer.cs +246 -0
  217. package/Runtime/CesiumPointCloudRenderer.cs.meta +11 -0
  218. package/Runtime/CesiumPointCloudShading.cs +76 -0
  219. package/Runtime/CesiumPointCloudShading.cs.meta +11 -0
  220. package/Runtime/CesiumPolygonRasterOverlay.cs +109 -0
  221. package/Runtime/CesiumPolygonRasterOverlay.cs.meta +11 -0
  222. package/Runtime/CesiumPrimitiveFeatures.cs +130 -0
  223. package/Runtime/CesiumPrimitiveFeatures.cs.meta +11 -0
  224. package/Runtime/CesiumPropertyArray.cs +64 -0
  225. package/Runtime/CesiumPropertyArray.cs.meta +11 -0
  226. package/Runtime/CesiumPropertyTable.cs +126 -0
  227. package/Runtime/CesiumPropertyTable.cs.meta +11 -0
  228. package/Runtime/CesiumPropertyTableProperty.cs +1734 -0
  229. package/Runtime/CesiumPropertyTableProperty.cs.meta +11 -0
  230. package/Runtime/CesiumRasterOverlay.cs +239 -0
  231. package/Runtime/CesiumRasterOverlay.cs.meta +11 -0
  232. package/Runtime/CesiumRasterOverlayLoadFailureDetails.cs +65 -0
  233. package/Runtime/CesiumRasterOverlayLoadFailureDetails.cs.meta +11 -0
  234. package/Runtime/CesiumRuntime.asmdef +32 -0
  235. package/Runtime/CesiumRuntime.asmdef.meta +7 -0
  236. package/Runtime/CesiumRuntime.cs +3 -0
  237. package/Runtime/CesiumRuntime.cs.meta +11 -0
  238. package/Runtime/CesiumRuntimeSettings.cs +188 -0
  239. package/Runtime/CesiumRuntimeSettings.cs.meta +11 -0
  240. package/Runtime/CesiumSampleHeightResult.cs +47 -0
  241. package/Runtime/CesiumSampleHeightResult.cs.meta +11 -0
  242. package/Runtime/CesiumSimplePlanarEllipsoidCurve.cs +93 -0
  243. package/Runtime/CesiumSimplePlanarEllipsoidCurve.cs.meta +11 -0
  244. package/Runtime/CesiumSubScene.cs +473 -0
  245. package/Runtime/CesiumSubScene.cs.meta +11 -0
  246. package/Runtime/CesiumTileExcluder.cs +47 -0
  247. package/Runtime/CesiumTileExcluder.cs.meta +11 -0
  248. package/Runtime/CesiumTileMapServiceRasterOverlay.cs +93 -0
  249. package/Runtime/CesiumTileMapServiceRasterOverlay.cs.meta +11 -0
  250. package/Runtime/CesiumWebMapServiceRasterOverlay.cs +129 -0
  251. package/Runtime/CesiumWebMapServiceRasterOverlay.cs.meta +11 -0
  252. package/Runtime/CesiumWebMapTileServiceRasterOverlay.cs +414 -0
  253. package/Runtime/CesiumWebMapTileServiceRasterOverlay.cs.meta +3 -0
  254. package/Runtime/CesiumWgs84Ellipsoid.cs +75 -0
  255. package/Runtime/CesiumWgs84Ellipsoid.cs.meta +11 -0
  256. package/Runtime/ConfigureReinterop.cs +926 -0
  257. package/Runtime/ConfigureReinterop.cs.meta +11 -0
  258. package/Runtime/Helpers.cs +122 -0
  259. package/Runtime/Helpers.cs.meta +11 -0
  260. package/Runtime/ICesiumRestartable.cs +17 -0
  261. package/Runtime/ICesiumRestartable.cs.meta +11 -0
  262. package/Runtime/NativeCoroutine.cs +28 -0
  263. package/Runtime/NativeCoroutine.cs.meta +11 -0
  264. package/Runtime/NativeDownloadHandler.cs +29 -0
  265. package/Runtime/NativeDownloadHandler.cs.meta +11 -0
  266. package/Runtime/Resources/CesiumCreditSystem.prefab +78 -0
  267. package/Runtime/Resources/CesiumCreditSystem.prefab.meta +7 -0
  268. package/Runtime/Resources/CesiumCreditSystemRuntimeTheme.tss +2 -0
  269. package/Runtime/Resources/CesiumCreditSystemRuntimeTheme.tss.meta +11 -0
  270. package/Runtime/Resources/CesiumCreditSystemUI.uxml +4 -0
  271. package/Runtime/Resources/CesiumCreditSystemUI.uxml.meta +10 -0
  272. package/Runtime/Resources/CesiumCreditSystemUIPanelSettings.asset +38 -0
  273. package/Runtime/Resources/CesiumCreditSystemUIPanelSettings.asset.meta +8 -0
  274. package/Runtime/Resources/CesiumDefaultTilesetMaterial.mat +232 -0
  275. package/Runtime/Resources/CesiumDefaultTilesetMaterial.mat.meta +8 -0
  276. package/Runtime/Resources/CesiumDefaultTilesetShader.shadergraph +14271 -0
  277. package/Runtime/Resources/CesiumDefaultTilesetShader.shadergraph.meta +10 -0
  278. package/Runtime/Resources/CesiumPointCloudShading.hlsl +156 -0
  279. package/Runtime/Resources/CesiumPointCloudShading.hlsl.meta +7 -0
  280. package/Runtime/Resources/CesiumPointCloudShadingMaterial.mat +125 -0
  281. package/Runtime/Resources/CesiumPointCloudShadingMaterial.mat.meta +8 -0
  282. package/Runtime/Resources/CesiumPointCloudShadingShader.shader +73 -0
  283. package/Runtime/Resources/CesiumPointCloudShadingShader.shader.meta +10 -0
  284. package/Runtime/Resources/CesiumRasterOverlay.shadersubgraph +2207 -0
  285. package/Runtime/Resources/CesiumRasterOverlay.shadersubgraph.meta +10 -0
  286. package/Runtime/Resources/CesiumSelectTexCoords.shadersubgraph +722 -0
  287. package/Runtime/Resources/CesiumSelectTexCoords.shadersubgraph.meta +10 -0
  288. package/Runtime/Resources/CesiumUnlitTilesetMaterial.mat +261 -0
  289. package/Runtime/Resources/CesiumUnlitTilesetMaterial.mat.meta +8 -0
  290. package/Runtime/Resources/CesiumUnlitTilesetShader.shadergraph +5873 -0
  291. package/Runtime/Resources/CesiumUnlitTilesetShader.shadergraph.meta +10 -0
  292. package/Runtime/Resources/DynamicCamera.prefab +253 -0
  293. package/Runtime/Resources/DynamicCamera.prefab.meta +7 -0
  294. package/Runtime/Resources/TransformTextureCoordinates.shadersubgraph +2171 -0
  295. package/Runtime/Resources/TransformTextureCoordinates.shadersubgraph.meta +10 -0
  296. package/Runtime/Resources/green1x1.png +0 -0
  297. package/Runtime/Resources/green1x1.png.meta +123 -0
  298. package/Runtime/Resources.meta +8 -0
  299. package/Runtime/TestGltfModel.cs +56 -0
  300. package/Runtime/TestGltfModel.cs.meta +11 -0
  301. package/Runtime/TestReinterop.cs +21 -0
  302. package/Runtime/TestReinterop.cs.meta +11 -0
  303. package/Runtime/UnityLifetime.cs +27 -0
  304. package/Runtime/UnityLifetime.cs.meta +11 -0
  305. package/Runtime/WaitForTask.cs +25 -0
  306. package/Runtime/WaitForTask.cs.meta +11 -0
  307. package/Runtime/csc.rsp +1 -0
  308. package/Runtime/csc.rsp.meta +7 -0
  309. package/Runtime.meta +8 -0
  310. package/ThirdParty.json +27 -0
  311. package/ThirdParty.json.meta +7 -0
  312. package/WGS84.asset +18 -0
  313. package/WGS84.asset.meta +8 -0
  314. package/package.json +29 -0
  315. package/package.json.meta +7 -0
@@ -0,0 +1,1764 @@
1
+ using System;
2
+ using Unity.Mathematics;
3
+ using Reinterop;
4
+ using System.Collections.Generic;
5
+ namespace CesiumForUnity
6
+ {
7
+ /// <summary>
8
+ /// Represents a value from a property in glTF metadata. The value belong to one of the
9
+ /// supported property types in EXT_structural_metadata.
10
+ /// </summary>
11
+ [ReinteropNativeImplementation("CesiumForUnityNative::CesiumMetadataValueImpl", "CesiumMetadataValueImpl.h", staticOnly: true)]
12
+ public partial class CesiumMetadataValue
13
+ {
14
+ /// <summary>
15
+ /// The value as an object. This functions similarly to a std::any in C++.
16
+ /// </summary>
17
+ /// <remarks>
18
+ /// If this is intended to hold an integer vecN or matN value, use the appropriate
19
+ /// CesiumIntN, CesiumUintN, CesiumIntMatN, or CesiumUintMatN structs. Only
20
+ /// use Unity.Mathematics for vecNs or matNs with floating point components.
21
+ /// </remarks>
22
+ internal System.Object objectValue { get; set; }
23
+
24
+ #region Getters
25
+
26
+ /// <summary>
27
+ /// The type of the metadata value as defined in the
28
+ /// EXT_structural_metadata extension. Some of these types are not
29
+ /// accessible from Unity, but can be converted to a close-fitting type.
30
+ /// </summary>
31
+ public CesiumMetadataValueType valueType
32
+ {
33
+ get
34
+ {
35
+ return CesiumMetadataValueType.GetValueType(this.objectValue);
36
+ }
37
+ }
38
+
39
+ /// <summary>
40
+ /// Whether the value is empty, i.e., whether it does not actually represent
41
+ /// any data.
42
+ /// </summary>
43
+ /// <remarks>
44
+ /// A CesiumMetadataValue can be empty, similar to how a C# nullable may be null.
45
+ /// For example, when the raw value of a property matches the property's specified
46
+ /// "no data" value, it will return an empty CesiumMetadataValue.
47
+ /// </remarks>
48
+ /// <returns>Whether the value is empty.</returns>
49
+ public bool isEmpty
50
+ {
51
+ get { return this.objectValue == null; }
52
+ }
53
+ #endregion
54
+
55
+ #region Constructors
56
+ public CesiumMetadataValue() : this(null)
57
+ { }
58
+
59
+ public CesiumMetadataValue(System.Object value)
60
+ {
61
+ // Convert intN to CesiumIntVecN, uintN to CesiumUintVecN, intNxN to CesiumIntMatNxN,
62
+ // and uintNxN to CesiumUintMatNxN. This avoids having to manage conversions for
63
+ // multiple representations of vector values.
64
+ switch (value)
65
+ {
66
+ case int2 asInt2:
67
+ this.objectValue = new CesiumIntVec2(asInt2.x, asInt2.y);
68
+ break;
69
+ case int3 asInt3:
70
+ this.objectValue = new CesiumIntVec3(asInt3.x, asInt3.y, asInt3.z);
71
+ break;
72
+ case int4 asInt4:
73
+ this.objectValue = new CesiumIntVec4(asInt4.x, asInt4.y, asInt4.z, asInt4.w);
74
+ break;
75
+ case uint2 asUint2:
76
+ this.objectValue = new CesiumUintVec2(asUint2.x, asUint2.y);
77
+ break;
78
+ case uint3 asUint3:
79
+ this.objectValue = new CesiumUintVec3(asUint3.x, asUint3.y, asUint3.z);
80
+ break;
81
+ case uint4 asUint4:
82
+ this.objectValue = new CesiumUintVec4(asUint4.x, asUint4.y, asUint4.z, asUint4.w);
83
+ break;
84
+ case int2x2 asInt2x2:
85
+ this.objectValue = new CesiumIntMat2x2(asInt2x2.c0, asInt2x2.c1);
86
+ break;
87
+ case int3x3 asInt3x3:
88
+ this.objectValue = new CesiumIntMat3x3(asInt3x3.c0, asInt3x3.c1, asInt3x3.c2);
89
+ break;
90
+ case int4x4 asInt4x4:
91
+ this.objectValue = new CesiumIntMat4x4(asInt4x4.c0, asInt4x4.c1, asInt4x4.c2, asInt4x4.c3);
92
+ break;
93
+ case uint2x2 asUint2x2:
94
+ this.objectValue = new CesiumUintMat2x2(asUint2x2.c0, asUint2x2.c1);
95
+ break;
96
+ case uint3x3 asUint3x3:
97
+ this.objectValue = new CesiumUintMat3x3(asUint3x3.c0, asUint3x3.c1, asUint3x3.c2);
98
+ break;
99
+ case uint4x4 asUint4x4:
100
+ this.objectValue = new CesiumUintMat4x4(asUint4x4.c0, asUint4x4.c1, asUint4x4.c2, asUint4x4.c3);
101
+ break;
102
+ default:
103
+ this.objectValue = value;
104
+ break;
105
+ }
106
+ }
107
+
108
+ #endregion
109
+
110
+ #region Public Methods
111
+ /// <summary>
112
+ /// Attempts to retrieve the value as a boolean.
113
+ /// </summary>
114
+ /// <remarks>
115
+ /// <para>
116
+ /// If the value is a boolean, it is returned as-is.<br/>
117
+ ///
118
+ /// If the value is a scalar, zero is converted to false, while any
119
+ /// other value is converted to true.<br/>
120
+ ///
121
+ /// If the value is a string, "0", "false", and "no" (case-insensitive)
122
+ /// are converted to false, while "1", "true", and "yes" are converted to
123
+ /// true. All other strings, including strings that can be converted to
124
+ /// numbers, will return the default value.<br/><br/>
125
+ /// </para>
126
+ /// <para>
127
+ /// All other types return the default value.
128
+ /// </para>
129
+ /// </remarks>
130
+ /// <param name="defaultValue">The default value to fall back on.</param>
131
+ /// <returns>The value as a Boolean.</returns>
132
+ public Boolean GetBoolean(Boolean defaultValue = false)
133
+ {
134
+ if (this.isEmpty || this.valueType.isArray)
135
+ {
136
+ return defaultValue;
137
+ }
138
+
139
+ return ConvertToBoolean(this, defaultValue);
140
+ }
141
+
142
+ /// <summary>
143
+ /// Attempts to retrieve the value as a signed 8-bit integer.
144
+ /// </summary>
145
+ /// <remarks>
146
+ /// <para>
147
+ /// If the value is an integer between -128 and 127, it is returned
148
+ /// as-is.<br/>
149
+ ///
150
+ /// If the value is a floating-point number in the aforementioned
151
+ /// range, it is truncated (rounded toward zero) and returned.<br/>
152
+ ///
153
+ /// If the value is a boolean, 1 is returned for true and 0 for
154
+ /// false.<br/>
155
+ ///
156
+ /// If the value is a string and the entire string can be parsed as an
157
+ /// integer between -128 and 127, the parsed value is returned. The string is
158
+ /// parsed in a locale-independent way and does not support the use of commas
159
+ /// or other delimiters to group digits together.<br/>
160
+ /// In all other cases, the default value is returned.
161
+ /// </para>
162
+ /// </remarks>
163
+ /// <param name="defaultValue">The default value to use if the value
164
+ /// cannot be converted to a SByte.</param>
165
+ /// <returns>The property value as a SByte.</returns>
166
+ public SByte GetSByte(SByte defaultValue = 0)
167
+ {
168
+ if (this.isEmpty || this.valueType.isArray)
169
+ {
170
+ return defaultValue;
171
+ }
172
+
173
+ return ConvertToSByte(this, defaultValue);
174
+ }
175
+
176
+ /// <summary>
177
+ /// Attempts to retrieve the value as an unsigned 8-bit integer.
178
+ /// </summary>
179
+ /// <remarks>
180
+ /// <para>
181
+ /// If the value is an integer between 0 and 255, it is returned
182
+ /// as-is.<br/>
183
+ ///
184
+ /// If the value is a floating-point number in the aforementioned
185
+ /// range, it is truncated (rounded toward zero) and returned.<br/>
186
+ ///
187
+ /// If the value is a boolean, 1 is returned for true and 0 for
188
+ /// false.<br/>
189
+ ///
190
+ /// If the value is a string and the entire string can be parsed as an
191
+ /// integer between 0 and 255, the parsed value is returned. The string is
192
+ /// parsed in a locale-independent way and does not support the use of commas
193
+ /// or other delimiters to group digits together.<br/>
194
+ /// In all other cases, the default value is returned.
195
+ /// </para>
196
+ /// </remarks>
197
+ /// <param name="defaultValue">The default value to use if the value
198
+ /// cannot be converted to a Byte.</param>
199
+ /// <returns>The property value as a Byte.</returns>
200
+ public Byte GetByte(Byte defaultValue = 0)
201
+ {
202
+ if (this.isEmpty || this.valueType.isArray)
203
+ {
204
+ return defaultValue;
205
+ }
206
+
207
+ return ConvertToByte(this, defaultValue);
208
+ }
209
+
210
+ /// <summary>
211
+ /// Attempts to retrieve the value as a signed 16-bit integer.
212
+ /// </summary>
213
+ /// <remarks>
214
+ /// <para>
215
+ /// If the value is an integer between -32768 and 32767, it is returned
216
+ /// as-is.<br/>
217
+ ///
218
+ /// If the value is a floating-point number in the aforementioned
219
+ /// range, it is truncated (rounded toward zero) and returned.<br/>
220
+ ///
221
+ /// If the value is a boolean, 1 is returned for true and 0 for
222
+ /// false.<br/>
223
+ ///
224
+ /// If the value is a string and the entire string can be parsed as an
225
+ /// integer between -32768 and 32767, the parsed value is returned.
226
+ /// The string is parsed in a locale-independent way and does not support
227
+ /// the use of commas or other delimiters to group digits together.<br/>
228
+ /// In all other cases, the default value is returned.
229
+ /// </para>
230
+ /// </remarks>
231
+ /// <param name="defaultValue">The default value to use if the value
232
+ /// cannot be converted to a Int16.</param>
233
+ /// <returns>The property value as a Int16.</returns>
234
+ public Int16 GetInt16(Int16 defaultValue = 0)
235
+ {
236
+ if (this.isEmpty || this.valueType.isArray)
237
+ {
238
+ return defaultValue;
239
+ }
240
+
241
+ return ConvertToInt16(this, defaultValue);
242
+ }
243
+
244
+ /// <summary>
245
+ /// Attempts to retrieve the value as a unsigned 16-bit integer.
246
+ /// </summary>
247
+ /// <remarks>
248
+ /// <para>
249
+ /// If the value is an integer between 0 and 65535, it is returned
250
+ /// as-is.<br/>
251
+ ///
252
+ /// If the value is a floating-point number in the aforementioned
253
+ /// range, it is truncated (rounded toward zero) and returned.<br/>
254
+ ///
255
+ /// If the value is a boolean, 1 is returned for true and 0 for
256
+ /// false.<br/>
257
+ ///
258
+ /// If the value is a string and the entire string can be parsed as an
259
+ /// integer between 0 and 65535, the parsed value is returned. The
260
+ /// string is parsed in a locale-independent way and does not support
261
+ /// the use of commas or other delimiters to group digits together.<br/>
262
+ ///
263
+ /// In all other cases, the default value is returned.
264
+ /// </para>
265
+ /// </remarks>
266
+ /// <param name="defaultValue">The default value to use if the value
267
+ /// cannot be converted to a UInt16.</param>
268
+ /// <returns>The property value as a UInt16.</returns>
269
+ public UInt16 GetUInt16(UInt16 defaultValue = 0)
270
+ {
271
+ if (this.isEmpty || this.valueType.isArray)
272
+ {
273
+ return defaultValue;
274
+ }
275
+
276
+ return ConvertToUInt16(this, defaultValue);
277
+ }
278
+
279
+ /// <summary>
280
+ /// Attempts to retrieve the value as a signed 32-bit integer.
281
+ /// </summary>
282
+ /// <remarks>
283
+ /// <para>
284
+ /// If the value is an integer between -2,147,483,648 and 2,147,483,647,
285
+ /// it is returned as-is.<br/>
286
+ ///
287
+ /// If the value is a floating-point number in the aforementioned
288
+ /// range, it is truncated (rounded toward zero) and returned.<br/>
289
+ ///
290
+ /// If the value is a boolean, 1 is returned for true and 0 for
291
+ /// false.<br/>
292
+ ///
293
+ /// If the value is a string and the entire string can be parsed as an
294
+ /// integer between -2,147,483,648 and 2,147,483,647, the parsed value
295
+ /// is returned. The string is parsed in a locale-independent way and does
296
+ /// not support the use of commas or other delimiters to group digits
297
+ /// together.<br/>
298
+ ///
299
+ /// In all other cases, the default value is returned.
300
+ /// </para>
301
+ /// </remarks>
302
+ /// <param name="defaultValue">The default value to use if the value
303
+ /// cannot be converted to a Int32.</param>
304
+ /// <returns>The property value as a Int32.</returns>
305
+ public Int32 GetInt32(Int32 defaultValue = 0)
306
+ {
307
+ if (this.isEmpty || this.valueType.isArray)
308
+ {
309
+ return defaultValue;
310
+ }
311
+
312
+ return ConvertToInt32(this, defaultValue);
313
+ }
314
+
315
+ /// <summary>
316
+ /// Attempts to retrieve the value as a unsigned 32-bit integer.
317
+ /// </summary>
318
+ /// <remarks>
319
+ /// <para>
320
+ /// If the value is an integer between 0 and 4,294,967,295, it is
321
+ /// returned as-is.<br/>
322
+ ///
323
+ /// If the value is a floating-point number in the aforementioned
324
+ /// range, it is truncated (rounded toward zero) and returned.<br/>
325
+ ///
326
+ /// If the value is a boolean, 1 is returned for true and 0 for
327
+ /// false.<br/>
328
+ ///
329
+ /// If the value is a string and the entire string can be parsed as an
330
+ /// integer between 0 and 4,294,967,295, the parsed value is returned.
331
+ /// The string is parsed in a locale-independent way and does not support
332
+ /// the use of commas or other delimiters to group digits together.<br/>
333
+ /// In all other cases, the default value is returned.
334
+ /// </para>
335
+ /// </remarks>
336
+ /// <param name="defaultValue">The default value to use if the value
337
+ /// cannot be converted to a UInt32.</param>
338
+ /// <returns>The property value as a UInt32.</returns>
339
+ public UInt32 GetUInt32(UInt32 defaultValue = 0)
340
+ {
341
+ if (this.isEmpty || this.valueType.isArray)
342
+ {
343
+ return defaultValue;
344
+ }
345
+
346
+ return ConvertToUInt32(this, defaultValue);
347
+ }
348
+
349
+ /// <summary>
350
+ /// Attempts to retrieve the value as a signed 64-bit integer.
351
+ /// </summary>
352
+ /// <remarks>
353
+ /// <para>
354
+ /// If the value is an integer between -2^63 and (2^63 - 1),
355
+ /// it is returned as-is.<br/>
356
+ ///
357
+ /// If the value is a floating-point number in the aforementioned
358
+ /// range, it is truncated (rounded toward zero) and returned.<br/>
359
+ ///
360
+ /// If the value is a boolean, 1 is returned for true and 0 for
361
+ /// false.<br/>
362
+ ///
363
+ /// If the value is a string and the entire string can be parsed as an
364
+ /// integer between -2^63 and (2^63 - 1), the parsed value
365
+ /// is returned. The string is parsed in a locale-independent way and does
366
+ /// not support the use of commas or other delimiters to group digits
367
+ /// together.<br/>
368
+ ///
369
+ /// In all other cases, the default value is returned.
370
+ /// </para>
371
+ /// </remarks>
372
+ /// <param name="defaultValue">The default value to use if the value
373
+ /// cannot be converted to a Int64.</param>
374
+ /// <returns>The property value as a Int64.</returns>
375
+ public Int64 GetInt64(Int64 defaultValue = 0)
376
+ {
377
+ if (this.isEmpty || this.valueType.isArray)
378
+ {
379
+ return defaultValue;
380
+ }
381
+
382
+ return ConvertToInt64(this, defaultValue);
383
+ }
384
+
385
+ /// <summary>
386
+ /// Attempts to retrieve the value as a unsigned 64-bit integer.
387
+ /// </summary>
388
+ /// <remarks>
389
+ /// <para>
390
+ /// If the value is an integer between 0 and (2^64-1), it is
391
+ /// returned as-is.<br/>
392
+ ///
393
+ /// If the value is a floating-point number in the aforementioned
394
+ /// range, it is truncated (rounded toward zero) and returned.<br/>
395
+ ///
396
+ /// If the value is a boolean, 1 is returned for true and 0 for
397
+ /// false.<br/>
398
+ ///
399
+ /// If the value is a string and the entire string can be parsed as an
400
+ /// integer between 0 and (2^64-1), the parsed value is returned.
401
+ /// The string is parsed in a locale-independent way and does not support
402
+ /// the use of commas or other delimiters to group digits together.<br/>
403
+ /// In all other cases, the default value is returned.
404
+ /// </para>
405
+ /// </remarks>
406
+ /// <param name="defaultValue">The default value to use if the value
407
+ /// cannot be converted to a UInt64.</param>
408
+ /// <returns>The property value as a UInt64.</returns>
409
+ public UInt64 GetUInt64(UInt64 defaultValue = 0)
410
+ {
411
+ if (this.isEmpty || this.valueType.isArray)
412
+ {
413
+ return defaultValue;
414
+ }
415
+
416
+ return ConvertToUInt64(this, defaultValue);
417
+ }
418
+
419
+ /// <summary>
420
+ /// Attempts to retrieve the value as a single-precision floating-point
421
+ /// number.
422
+ /// </summary>
423
+ /// <remarks>
424
+ /// <para>
425
+ /// If the value is already a single-precision floating-point number, it is
426
+ /// returned as-is.<br/>
427
+ ///
428
+ /// If the value is a scalar of any other type within the range of values that
429
+ /// a single-precision float can represent, it is converted to its closest
430
+ /// representation as a single-precision float and returned.<br/>
431
+ ///
432
+ /// If the value is a boolean, 1.0f is returned for true and 0.0f for false.<br/>
433
+ ///
434
+ /// If the value is a string and the entire string can be parsed as a
435
+ /// number, the parsed value is returned. The string is parsed in a
436
+ /// locale-independent way and does not support the use of commas or other
437
+ /// delimiters to group digits together.<br/>
438
+ /// In all other cases, the default value is returned.
439
+ /// </para>
440
+ /// </remarks>
441
+ /// <param name="defaultValue">The default value to use if the value
442
+ /// cannot be converted to a Float.</param>
443
+ /// <returns>The property value as a Float.</returns>
444
+ public float GetFloat(float defaultValue = 0)
445
+ {
446
+ if (this.isEmpty || this.valueType.isArray)
447
+ {
448
+ return defaultValue;
449
+ }
450
+
451
+ return ConvertToFloat(this, defaultValue);
452
+ }
453
+
454
+ /// <summary>
455
+ /// Attempts to retrieve the value as a double-precision floating-point
456
+ /// number.
457
+ /// </summary>
458
+ /// <remarks>
459
+ /// <para>
460
+ /// If the value is already a single- or double- floating-point number, it is
461
+ /// returned as-is.<br/>
462
+ ///
463
+ /// If the value is an integer, it is converted to the closest representable
464
+ /// double-precision floating-point number.<br/>
465
+ ///
466
+ /// If the value is a boolean, 1.0 is returned for true and 0.0 for false.<br/>
467
+ ///
468
+ /// If the value is a string and the entire string can be parsed as a
469
+ /// number, the parsed value is returned. The string is parsed in a
470
+ /// locale-independent way and does not support the use of commas or other
471
+ /// delimiters to group digits together.<br/>
472
+ /// In all other cases, the default value is returned.
473
+ /// </para>
474
+ /// </remarks>
475
+ /// <param name="defaultValue">The default value to use if the value
476
+ /// cannot be converted to a Double.</param>
477
+ /// <returns>The property value as a Double.</returns>
478
+ public double GetDouble(double defaultValue = 0)
479
+ {
480
+ if (this.isEmpty || this.valueType.isArray)
481
+ {
482
+ return defaultValue;
483
+ }
484
+
485
+ return ConvertToDouble(this, defaultValue);
486
+ }
487
+
488
+ /// <summary>
489
+ /// Attempts to retrieve the value as an int2.
490
+ /// </summary>
491
+ /// <remarks>
492
+ /// <para>
493
+ /// If the value is a 2-dimensional vector, its components will be converted
494
+ /// to 32-bit signed integers if possible.<br/>
495
+ ///
496
+ /// If the value is a 3- or 4-dimensional vector, it will use the first two
497
+ /// components to construct the int2.<br/>
498
+ ///
499
+ /// If the value is a scalar that can be converted to a 32-bit signed integer,
500
+ /// the resulting int2 will have this value in both of its components.<br/>
501
+ ///
502
+ /// If the value is a boolean, (1, 1) is returned for true, while
503
+ /// (0, 0) is returned for false.<br/>
504
+ ///
505
+ /// In all other cases, the user-defined default value is returned. In all vector
506
+ /// cases, if any of the relevant components cannot be represented as a 32-bit
507
+ /// signed integer, the default value is returned.
508
+ /// </para>
509
+ /// </remarks>
510
+ /// <param name="defaultValue">The default value to use if the value
511
+ /// cannot be converted to a int2.</param>
512
+ /// <returns>The property value as a int2.</returns>
513
+ public int2 GetInt2(int2 defaultValue)
514
+ {
515
+ if (this.isEmpty || this.valueType.isArray)
516
+ {
517
+ return defaultValue;
518
+ }
519
+
520
+ return ConvertToInt2(this, defaultValue);
521
+ }
522
+
523
+ /// <summary>
524
+ /// Attempts to retrieve the value as a uint2.
525
+ /// </summary>
526
+ /// <remarks>
527
+ /// <para>
528
+ /// If the value is a 2-dimensional vector, its components will be converted
529
+ /// to 32-bit unsigned integers if possible.<br/>
530
+ ///
531
+ /// If the value is a 3- or 4-dimensional vector, it will use the first two
532
+ /// components to construct the uint2.<br/>
533
+ ///
534
+ /// If the value is a scalar that can be converted to a 32-bit unsigned integer,
535
+ /// the resulting uint2 will have this value in both of its components.<br/>
536
+ ///
537
+ /// If the value is a boolean, (1, 1) is returned for true, while
538
+ /// (0, 0) is returned for false.<br/>
539
+ ///
540
+ /// In all other cases, the user-defined default value is returned. In all vector
541
+ /// cases, if any of the relevant components cannot be represented as a 32-bit
542
+ /// unsigned integer, the default value is returned.
543
+ /// </para>
544
+ /// </remarks>
545
+ /// <param name="defaultValue">The default value to use if the value
546
+ /// cannot be converted to a uint2.</param>
547
+ /// <returns>The property value as a uint2.</returns>
548
+ public uint2 GetUInt2(uint2 defaultValue)
549
+ {
550
+ if (this.isEmpty || this.valueType.isArray)
551
+ {
552
+ return defaultValue;
553
+ }
554
+
555
+ return ConvertToUInt2(this, defaultValue);
556
+ }
557
+
558
+ /// <summary>
559
+ /// Attempts to retrieve the value as a float2.
560
+ /// </summary>
561
+ /// <remarks>
562
+ /// <para>
563
+ /// If the value is a 2-dimensional vector, its components will be converted
564
+ /// to the closest representable single-precision floats, if possible.
565
+ ///
566
+ /// If the value is a 3- or 4-dimensional vector, it will use the first two
567
+ /// components to construct the float2.<br/>
568
+ ///
569
+ /// If the value is a scalar that can be converted to a single-precision
570
+ /// floating-point number, the resulting float2 will have this value in
571
+ /// both of its components.<br/>
572
+ ///
573
+ /// If the value is a boolean, (1.0f, 1.0f) is returned for true, while
574
+ /// (0.0f, 0.0f) is returned for false.<br/>
575
+ ///
576
+ /// In all other cases, the user-defined default value is returned. In all vector
577
+ /// cases, if any of the relevant components cannot be represented as a
578
+ /// single-precision floating-point number, the default value is returned.
579
+ /// </para>
580
+ /// </remarks>
581
+ /// <param name="defaultValue">The default value to use if the value
582
+ /// cannot be converted to a float2.</param>
583
+ /// <returns>The property value as a float2.</returns>
584
+ public float2 GetFloat2(float2 defaultValue)
585
+ {
586
+ if (this.isEmpty || this.valueType.isArray)
587
+ {
588
+ return defaultValue;
589
+ }
590
+
591
+ return ConvertToFloat2(this, defaultValue);
592
+ }
593
+
594
+ /// <summary>
595
+ /// Attempts to retrieve the value as a double2.
596
+ /// </summary>
597
+ /// <remarks>
598
+ /// <para>
599
+ /// If the value is a 2-dimensional vector, its components will be converted
600
+ /// to double-precision floating-point numbers.<br/>
601
+ ///
602
+ /// If the value is a 3- or 4-dimensional vector, it will use the first two
603
+ /// components to construct the double2.<br/>
604
+ ///
605
+ /// If the value is a scalar, the resulting double2 will have this value in
606
+ /// both of its components.<br/>
607
+ ///
608
+ /// If the value is a boolean, (1.0, 1.0) is returned for true, while
609
+ /// (0.0, 0.0) is returned for false.<br/>
610
+ /// In all other cases, the user-defined default value is returned.
611
+ /// </para>
612
+ /// </remarks>
613
+ /// <param name="defaultValue">The default value to use if the value
614
+ /// cannot be converted to a double2.</param>
615
+ /// <returns>The property value as a double2.</returns>
616
+ public double2 GetDouble2(double2 defaultValue)
617
+ {
618
+ if (this.isEmpty || this.valueType.isArray)
619
+ {
620
+ return defaultValue;
621
+ }
622
+
623
+ return ConvertToDouble2(this, defaultValue);
624
+ }
625
+
626
+ /// <summary>
627
+ /// Attempts to retrieve the value as an int3.
628
+ /// </summary>
629
+ /// <remarks>
630
+ /// <para>
631
+ /// If the value is a 3-dimensional vector, its components will be converted
632
+ /// to 32-bit signed integers if possible.<br/>
633
+ ///
634
+ /// If the value is a 4-dimensional vector, it will use the first three
635
+ /// components to construct the int3.<br/>
636
+ ///
637
+ /// If the value is a 2-dimensional vector, it will become the XY-components of
638
+ /// the int3. The Z component will be set to zero.<br/>
639
+ ///
640
+ /// If the value is a scalar that can be converted to a 32-bit signed integer,
641
+ /// the resulting int3 will have this value in both of its components.<br/>
642
+ ///
643
+ /// If the value is a boolean, (1, 1, 1) is returned for true, while
644
+ /// (0, 0, 0) is returned for false.<br/>
645
+ ///
646
+ /// In all other cases, the user-defined default value is returned. In all vector
647
+ /// cases, if any of the relevant components cannot be represented as a 32-bit
648
+ /// signed integer, the default value is returned.
649
+ /// </para>
650
+ /// </remarks>
651
+ /// <param name="defaultValue">The default value to use if the value
652
+ /// cannot be converted to a int3.</param>
653
+ /// <returns>The property value as a int3.</returns>
654
+ public int3 GetInt3(int3 defaultValue)
655
+ {
656
+ if (this.isEmpty || this.valueType.isArray)
657
+ {
658
+ return defaultValue;
659
+ }
660
+
661
+ return ConvertToInt3(this, defaultValue);
662
+ }
663
+
664
+ /// <summary>
665
+ /// Attempts to retrieve the value as an uint3.
666
+ /// </summary>
667
+ /// <remarks>
668
+ /// <para>
669
+ /// If the value is a 3-dimensional vector, its components will be converted
670
+ /// to 32-bit unsigned integers if possible.<br/>
671
+ ///
672
+ /// If the value is a 4-dimensional vector, it will use the first three
673
+ /// components to construct the uint3.<br/>
674
+ ///
675
+ /// If the value is a 2-dimensional vector, it will become the XY-components of
676
+ /// the uint3. The Z component will be set to zero.<br/>
677
+ ///
678
+ /// If the value is a scalar that can be converted to a 32-bit signed integer,
679
+ /// the resulting uint3 will have this value in both of its components.<br/>
680
+ ///
681
+ /// If the value is a boolean, (1, 1, 1) is returned for true, while
682
+ /// (0, 0, 0) is returned for false.<br/>
683
+ ///
684
+ /// In all other cases, the user-defined default value is returned. In all vector
685
+ /// cases, if any of the relevant components cannot be represented as a 32-bit
686
+ /// unsigned integer, the default value is returned.
687
+ /// </para>
688
+ /// </remarks>
689
+ /// <param name="defaultValue">The default value to use if the value
690
+ /// cannot be converted to a uint3.</param>
691
+ /// <returns>The property value as a uint3.</returns>
692
+ public uint3 GetUInt3(uint3 defaultValue)
693
+ {
694
+ if (this.isEmpty || this.valueType.isArray)
695
+ {
696
+ return defaultValue;
697
+ }
698
+
699
+ return ConvertToUInt3(this, defaultValue);
700
+ }
701
+
702
+ /// <summary>
703
+ /// Attempts to retrieve the value as a float3.
704
+ /// </summary>
705
+ /// <remarks>
706
+ /// <para>
707
+ /// If the value is a 3-dimensional vector, its components will be converted to
708
+ /// the closest representable single-precision floats, if possible.<br/>
709
+ ///
710
+ /// If the value is a 4-dimensional vector, a float3 containing the first
711
+ /// three components will be returned.<br/>
712
+ ///
713
+ /// If the value is a 2-dimensional vector, it will become the XY-components of
714
+ /// the float3. The Z-component will be set to zero.<br/>
715
+ ///
716
+ /// If the value is a scalar that can be converted to a single-precision
717
+ /// floating-point number, the resulting float3 will have this value in
718
+ /// both of its components.<br/>
719
+ ///
720
+ /// If the value is a boolean, (1.0f, 1.0f, 1.0f) is returned for true, while
721
+ /// (0.0f, 0.0f, 0.0f) is returned for false.<br/>
722
+ ///
723
+ /// In all other cases, the user-defined default value is returned. In all vector
724
+ /// cases, if any of the relevant components cannot be represented as a
725
+ /// single-precision floating-point number, the default value is returned.
726
+ /// </para>
727
+ /// </remarks>
728
+ /// <param name="defaultValue">The default value to use if the value
729
+ /// cannot be converted to a float3.</param>
730
+ /// <returns>The property value as a float3.</returns>
731
+ public float3 GetFloat3(float3 defaultValue)
732
+ {
733
+ if (this.isEmpty || this.valueType.isArray)
734
+ {
735
+ return defaultValue;
736
+ }
737
+
738
+ return ConvertToFloat3(this, defaultValue);
739
+ }
740
+
741
+ /// <summary>
742
+ /// Attempts to retrieve the value as a double3.
743
+ /// </summary>
744
+ /// <remarks>
745
+ /// <para>
746
+ /// If the value is a 3-dimensional vector, its components will be converted
747
+ /// to double-precision floating-point numbers.<br/>
748
+ ///
749
+ /// If the value is a 4-dimensional vector, a double3 containing the first
750
+ /// three components will be returned.<br/>
751
+ ///
752
+ /// If the value is a 2-dimensional vector, it will become the XY-components of
753
+ /// the double3. The Z-component will be set to zero.<br/>
754
+ ///
755
+ /// If the value is a scalar, the resulting double3 will have this value in
756
+ /// both of its components.<br/>
757
+ ///
758
+ /// If the value is a boolean, (1.0, 1.0, 1.0) is returned for true, while
759
+ /// (0.0, 0.0, 0.0) is returned for false.<br/>
760
+ /// In all other cases, the user-defined default value is returned.
761
+ /// </para>
762
+ /// </remarks>
763
+ /// <param name="defaultValue">The default value to use if the value
764
+ /// cannot be converted to a double3.</param>
765
+ /// <returns>The property value as a double3.</returns>
766
+ public double3 GetDouble3(double3 defaultValue)
767
+ {
768
+ if (this.isEmpty || this.valueType.isArray)
769
+ {
770
+ return defaultValue;
771
+ }
772
+
773
+ return ConvertToDouble3(this, defaultValue);
774
+ }
775
+
776
+ /// <summary>
777
+ /// Attempts to retrieve the value as an int4.
778
+ /// </summary>
779
+ /// <remarks>
780
+ /// <para>
781
+ /// If the value is a 4-dimensional vector, its components will be converted
782
+ /// to 32-bit signed integers if possible.<br/>
783
+ ///
784
+ /// If the value is a 3-dimensional vector, it will become the XYZ-components of
785
+ /// the int4. The W-component will be set to zero.<br/>
786
+ ///
787
+ /// If the value is a 2-dimensional vector, it will become the XY-components of
788
+ /// the int4. The Z- and W-components will be set to zero.<br/>
789
+ ///
790
+ /// If the value is a scalar that can be converted to a 32-bit signed integer,
791
+ /// the resulting int4 will have this value in both of its components.<br/>
792
+ ///
793
+ /// If the value is a boolean, (1, 1, 1, 1) is returned for true, while
794
+ /// (0, 0, 0, 0) is returned for false.<br/>
795
+ ///
796
+ /// In all other cases, the user-defined default value is returned. In all vector
797
+ /// cases, if any of the relevant components cannot be represented as a 32-bit
798
+ /// signed integer, the default value is returned.
799
+ /// </para>
800
+ /// </remarks>
801
+ /// <param name="defaultValue">The default value to use if the value
802
+ /// cannot be converted to a int4.</param>
803
+ /// <returns>The property value as a int4.</returns>
804
+ public int4 GetInt4(int4 defaultValue)
805
+ {
806
+ if (this.isEmpty || this.valueType.isArray)
807
+ {
808
+ return defaultValue;
809
+ }
810
+
811
+ return ConvertToInt4(this, defaultValue);
812
+ }
813
+
814
+ /// <summary>
815
+ /// Attempts to retrieve the value as a uint4.
816
+ /// </summary>
817
+ /// <remarks>
818
+ /// <para>
819
+ /// If the value is a 4-dimensional vector, its components will be converted
820
+ /// to 32-bit unsigned integers if possible.<br/>
821
+ ///
822
+ /// If the value is a 3-dimensional vector, it will become the XYZ-components of
823
+ /// the uint4. The W-component will be set to zero.<br/>
824
+ ///
825
+ /// If the value is a 2-dimensional vector, it will become the XY-components of
826
+ /// the uint4. The Z- and W-components will be set to zero.<br/>
827
+ ///
828
+ /// If the value is a scalar that can be converted to a 32-bit unsigned integer,
829
+ /// the resulting uint4 will have this value in both of its components.<br/>
830
+ ///
831
+ /// If the value is a boolean, (1, 1, 1, 1) is returned for true, while
832
+ /// (0, 0, 0, 0) is returned for false.<br/>
833
+ ///
834
+ /// In all other cases, the user-defined default value is returned. In all vector
835
+ /// cases, if any of the relevant components cannot be represented as a 32-bit
836
+ /// unsigned integer, the default value is returned.
837
+ /// </para>
838
+ /// </remarks>
839
+ /// <param name="defaultValue">The default value to use if the value
840
+ /// cannot be converted to a uint4.</param>
841
+ /// <returns>The property value as a uint4.</returns>
842
+ public uint4 GetUInt4(uint4 defaultValue)
843
+ {
844
+ if (this.isEmpty || this.valueType.isArray)
845
+ {
846
+ return defaultValue;
847
+ }
848
+
849
+ return ConvertToUInt4(this, defaultValue);
850
+ }
851
+
852
+ /// <summary>
853
+ /// Attempts to retrieve the value as a float4.
854
+ /// </summary>
855
+ /// <remarks>
856
+ /// <para>
857
+ /// If the value is a 4-dimensional vector, its components will be converted to
858
+ /// the closest representable single-precision floats, if possible.<br/>
859
+ ///
860
+ /// If the value is a 3-dimensional vector, it will become the XYZ-components of
861
+ /// the float4. The W-component will be set to zero.<br/>
862
+ ///
863
+ /// If the value is a 2-dimensional vector, it will become the XY-components of
864
+ /// the float4. The Z- and W-components will be set to zero.<br/>
865
+ ///
866
+ /// If the value is a scalar, the resulting float4 will have this value in
867
+ /// both of its components.<br/>
868
+ ///
869
+ /// If the value is a boolean, (1.0f, 1.0f, 1.0f, 1.0f) is returned for true, while
870
+ /// (0.0f, 0.0f, 0.0f, 0.0f) is returned for false.<br/>
871
+ /// In all other cases, the user-defined default value is returned. In all vector
872
+ /// cases, if any of the relevant components cannot be represented as a
873
+ /// single-precision floating-point number, the default value is returned.
874
+ /// </para>
875
+ /// </remarks>
876
+ /// <param name="defaultValue">The default value to use if the value
877
+ /// cannot be converted to a float4.</param>
878
+ /// <returns>The property value as a float4.</returns>
879
+ public float4 GetFloat4(float4 defaultValue)
880
+ {
881
+ if (this.isEmpty || this.valueType.isArray)
882
+ {
883
+ return defaultValue;
884
+ }
885
+
886
+ return ConvertToFloat4(this, defaultValue);
887
+ }
888
+
889
+ /// <summary>
890
+ /// Attempts to retrieve the value as a double4.
891
+ /// </summary>
892
+ /// <remarks>
893
+ /// <para>
894
+ /// If the value is a 4-dimensional vector, its components will be converted
895
+ /// to double-precision floating-point numbers.<br/>
896
+ ///
897
+ /// If the value is a 3-dimensional vector, it will become the XYZ-components of
898
+ /// the double4. The W-component will be set to zero.<br/>
899
+ ///
900
+ /// If the value is a 2-dimensional vector, it will become the XY-components of
901
+ /// the double4. The Z- and W-components will be set to zero.<br/>
902
+ ///
903
+ /// If the value is a scalar, the resulting double4 will have this value in
904
+ /// both of its components.<br/>
905
+ ///
906
+ /// If the value is a boolean, (1.0, 1.0, 1.0, 1.0) is returned for true, while
907
+ /// (0.0, 0.0, 0.0, 0.0) is returned for false.<br/>
908
+ /// In all other cases, the user-defined default value is returned.
909
+ /// </para>
910
+ /// </remarks>
911
+ /// <param name="defaultValue">The default value to use if the value
912
+ /// cannot be converted to a double4.</param>
913
+ /// <returns>The property value as a double4.</returns>
914
+ public double4 GetDouble4(double4 defaultValue)
915
+ {
916
+ if (this.isEmpty || this.valueType.isArray)
917
+ {
918
+ return defaultValue;
919
+ }
920
+
921
+ return ConvertToDouble4(this, defaultValue);
922
+ }
923
+
924
+ /// <summary>
925
+ /// Attempts to retrieve the value as a int2x2.
926
+ /// </summary>
927
+ /// <remarks>
928
+ /// <para>
929
+ /// If the value is a 2-by-2 matrix, its components will be converted to
930
+ /// 32-bit signed integers if possible.<br/>
931
+ ///
932
+ /// If the value is a 3-by-3 or 4-by-4 matrix, the int2x2 will be constructed
933
+ /// from the first 2 components of the first 2 columns.<br/>
934
+ ///
935
+ /// If the value is a scalar that can be converted to a 32-bit signed integer,
936
+ /// then the resulting int2x2 will have this value along its diagonal. All other
937
+ /// entries will be zero.<br/>
938
+ ///
939
+ /// If the value is a boolean, it is converted to 1 for true and 0 for false.
940
+ /// Then, the resulting int2x2 will have this value along its diagonal, while
941
+ /// all other entries will be zero.<br/>
942
+ /// In all other cases, the user-defined default value is returned. In all matrix
943
+ /// cases, if any of the relevant components cannot be represented as a 32-bit
944
+ /// signed integer, the default value is returned.
945
+ /// </para>
946
+ /// </remarks>
947
+ /// <param name="defaultValue">The default value to use if the value
948
+ /// cannot be converted to a int2x2.</param>
949
+ /// <returns>The property value as a int2x2.</returns>
950
+ public int2x2 GetInt2x2(int2x2 defaultValue)
951
+ {
952
+ if (this.isEmpty || this.valueType.isArray)
953
+ {
954
+ return defaultValue;
955
+ }
956
+
957
+ return ConvertToInt2x2(this, defaultValue);
958
+ }
959
+
960
+ /// <summary>
961
+ /// Attempts to retrieve the value as a uint2x2.
962
+ /// </summary>
963
+ /// <remarks>
964
+ /// <para>
965
+ /// If the value is a 2-by-2 matrix, its components will be converted to
966
+ /// 32-bit unsigned integers if possible.<br/>
967
+ ///
968
+ /// If the value is a 3-by-3 or 4-by-4 matrix, the uint2x2 will be constructed
969
+ /// from the first 2 components of the first 2 columns.<br/>
970
+ ///
971
+ /// If the value is a scalar that can be converted to a 32-bit unsigned integer,
972
+ /// then the resulting uint2x2 will have this value along its diagonal. All other
973
+ /// entries will be zero.<br/>
974
+ ///
975
+ /// If the value is a boolean, it is converted to 1 for true and 0 for false.
976
+ /// Then, the resulting uint2x2 will have this value along its diagonal, while
977
+ /// all other entries will be zero.<br/>
978
+ /// In all other cases, the user-defined default value is returned. In all matrix
979
+ /// cases, if any of the relevant components cannot be represented as a 32-bit
980
+ /// unsigned integer, the default value is returned.
981
+ /// </para>
982
+ /// </remarks>
983
+ /// <param name="defaultValue">The default value to use if the value
984
+ /// cannot be converted to a uint2x2.</param>
985
+ /// <returns>The property value as a uint2x2.</returns>
986
+ public uint2x2 GetUInt2x2(uint2x2 defaultValue)
987
+ {
988
+ if (this.isEmpty || this.valueType.isArray)
989
+ {
990
+ return defaultValue;
991
+ }
992
+
993
+ return ConvertToUInt2x2(this, defaultValue);
994
+ }
995
+
996
+ /// <summary>
997
+ /// Attempts to retrieve the value as a float2x2.
998
+ /// </summary>
999
+ /// <remarks>
1000
+ /// <para>
1001
+ /// If the value is a 2-by-2 matrix, its components will be converted to
1002
+ /// the closest representable single-precision floats.<br/>
1003
+ ///
1004
+ /// If the value is a 3-by-3 or 4-by-4 matrix, the float2x2 will be constructed
1005
+ /// from the first 2 components of the first 2 columns.<br/>
1006
+ ///
1007
+ /// If the value is a scalar that can be converted to a single-precision floating
1008
+ /// point number, then the resulting float2x2 will have this value along its diagonal.
1009
+ /// All other entries will be zero.<br/>
1010
+ ///
1011
+ /// If the value is a boolean, it is converted to 1.0f for true and 0.0f for false.
1012
+ /// Then, the resulting float2x2 will have this value along its diagonal, while
1013
+ /// all other entries will be zero.<br/>
1014
+ /// In all other cases, the user-defined default value is returned. In all matrix
1015
+ /// cases, if any of the relevant components cannot be represented as a
1016
+ /// single-precision floating-point number, the default value is returned.
1017
+ /// </para>
1018
+ /// </remarks>
1019
+ /// <param name="defaultValue">The default value to use if the value
1020
+ /// cannot be converted to a float2x2.</param>
1021
+ /// <returns>The property value as a float2x2.</returns>
1022
+ public float2x2 GetFloat2x2(float2x2 defaultValue)
1023
+ {
1024
+ if (this.isEmpty || this.valueType.isArray)
1025
+ {
1026
+ return defaultValue;
1027
+ }
1028
+
1029
+ return ConvertToFloat2x2(this, defaultValue);
1030
+ }
1031
+
1032
+ /// <summary>
1033
+ /// Attempts to retrieve the value as a double2x2.
1034
+ /// </summary>
1035
+ /// <remarks>
1036
+ /// <para>
1037
+ /// If the value is a 2-by-2 matrix, its components will be converted to
1038
+ /// double-precision floating-point numbers.<br/>
1039
+ ///
1040
+ /// If the value is a 3-by-3 or 4-by-4 matrix, the double2x2 will be constructed
1041
+ /// from the first 2 components of the first 2 columns.<br/>
1042
+ ///
1043
+ /// If the value is a scalar, then the resulting double2x2 will have this value
1044
+ /// along its diagonal. All other entries will be zero.<br/>
1045
+ ///
1046
+ /// If the value is a boolean, it is converted to 1.0 for true and 0.0 for false.
1047
+ /// Then, the resulting double2x2 will have this value along its diagonal, while
1048
+ /// all other entries will be zero.<br/>
1049
+ /// In all other cases, the user-defined default value is returned.
1050
+ /// </para>
1051
+ /// </remarks>
1052
+ /// <param name="defaultValue">The default value to use if the value
1053
+ /// cannot be converted to a double2x2.</param>
1054
+ /// <returns>The property value as a double2x2.</returns>
1055
+ public double2x2 GetDouble2x2(double2x2 defaultValue)
1056
+ {
1057
+ if (this.isEmpty || this.valueType.isArray)
1058
+ {
1059
+ return defaultValue;
1060
+ }
1061
+
1062
+ return ConvertToDouble2x2(this, defaultValue);
1063
+ }
1064
+
1065
+ /// <summary>
1066
+ /// Attempts to retrieve the value as a int3x3.
1067
+ /// </summary>
1068
+ /// <remarks>
1069
+ /// <para>
1070
+ /// If the value is a 3-by-3 matrix, its components will be converted to
1071
+ /// 32-bit signed integers if possible.<br/>
1072
+ ///
1073
+ /// If the value is a 2-by-2 matrix, its components will be used to fill
1074
+ /// the corresponding components in the int3x3. All other components will
1075
+ /// be initialized as zero.<br/>
1076
+ ///
1077
+ /// If the value is a 4-by-4 matrix, the int3x3 will be constructed
1078
+ /// from the first 3 components of the first 3 columns.<br/>
1079
+ ///
1080
+ /// If the value is a scalar that can be converted to a 32-bit signed integer,
1081
+ /// then the resulting int3x3 will have this value along its diagonal. All other
1082
+ /// entries will be zero.<br/>
1083
+ ///
1084
+ /// If the value is a boolean, it is converted to 1 for true and 0 for false.
1085
+ /// Then, the resulting int3x3 will have this value along its diagonal, while
1086
+ /// all other entries will be zero.<br/>
1087
+ /// In all other cases, the user-defined default value is returned. In all matrix
1088
+ /// cases, if any of the relevant components cannot be represented as a 32-bit
1089
+ /// signed integer, the default value is returned.
1090
+ /// </para>
1091
+ /// </remarks>
1092
+ /// <param name="defaultValue">The default value to use if the value
1093
+ /// cannot be converted to a int3x3.</param>
1094
+ /// <returns>The property value as a int3x3.</returns>
1095
+ public int3x3 GetInt3x3(int3x3 defaultValue)
1096
+ {
1097
+ if (this.isEmpty || this.valueType.isArray)
1098
+ {
1099
+ return defaultValue;
1100
+ }
1101
+
1102
+ return ConvertToInt3x3(this, defaultValue);
1103
+ }
1104
+
1105
+ /// <summary>
1106
+ /// Attempts to retrieve the value as a uint3x3.
1107
+ /// </summary>
1108
+ /// <remarks>
1109
+ /// <para>
1110
+ /// If the value is a 3-by-3 matrix, its components will be converted to
1111
+ /// 32-bit unsigned integers if possible.<br/>
1112
+ ///
1113
+ /// If the value is a 2-by-2 matrix, its components will be used to fill
1114
+ /// the corresponding components in the uint3x3. All other components will
1115
+ /// be initialized as zero.<br/>
1116
+ ///
1117
+ /// If the value is a 4-by-4 matrix, the uint3x3 will be constructed
1118
+ /// from the first 3 components of the first 3 columns.<br/>
1119
+ ///
1120
+ /// If the value is a scalar that can be converted to a 32-bit unsigned integer,
1121
+ /// then the resulting uint3x3 will have this value along its diagonal. All other
1122
+ /// entries will be zero.<br/>
1123
+ ///
1124
+ /// If the value is a boolean, it is converted to 1 for true and 0 for false.
1125
+ /// Then, the resulting uint3x3 will have this value along its diagonal, while
1126
+ /// all other entries will be zero.<br/>
1127
+ /// In all other cases, the user-defined default value is returned. In all matrix
1128
+ /// cases, if any of the relevant components cannot be represented as a 32-bit
1129
+ /// unsigned integer, the default value is returned.
1130
+ /// </para>
1131
+ /// </remarks>
1132
+ /// <param name="defaultValue">The default value to use if the value
1133
+ /// cannot be converted to a uint3x3.</param>
1134
+ /// <returns>The property value as a uint3x3.</returns>
1135
+ public uint3x3 GetUInt3x3(uint3x3 defaultValue)
1136
+ {
1137
+ if (this.isEmpty || this.valueType.isArray)
1138
+ {
1139
+ return defaultValue;
1140
+ }
1141
+
1142
+ return ConvertToUInt3x3(this, defaultValue);
1143
+ }
1144
+
1145
+ /// <summary>
1146
+ /// Attempts to retrieve the value as a float3x3.
1147
+ /// </summary>
1148
+ /// <remarks>
1149
+ /// <para>
1150
+ /// If the value is a 3-by-3 matrix, its components will be converted to the
1151
+ /// closest representable single-precision floats if possible.<br/>
1152
+ ///
1153
+ /// If the value is a 2-by-2 matrix, its components will be used to fill
1154
+ /// the corresponding components in the float3x3. All other components will
1155
+ /// be initialized as zero.<br/>
1156
+ ///
1157
+ /// If the value is a 4-by-4 matrix, the float3x3 will be constructed
1158
+ /// from the first 3 components of the first 3 columns.<br/>
1159
+ ///
1160
+ /// If the value is a scalar that can be converted to a single-precision floating
1161
+ /// point number, then the resulting float3x3 will have this value along its diagonal.
1162
+ /// All other entries will be zero.<br/>
1163
+ ///
1164
+ /// If the value is a boolean, it is converted to 1.0f for true and 0.0f for false.
1165
+ /// Then, the resulting float3x3 will have this value along its diagonal, while
1166
+ /// all other entries will be zero.<br/>
1167
+ /// In all other cases, the user-defined default value is returned. In all matrix
1168
+ /// cases, if any of the relevant components cannot be represented as a
1169
+ /// single-precision floating-point number, the default value is returned.
1170
+ /// </para>
1171
+ /// </remarks>
1172
+ /// <param name="defaultValue">The default value to use if the value
1173
+ /// cannot be converted to a float3x3.</param>
1174
+ /// <returns>The property value as a float3x3.</returns>
1175
+ public float3x3 GetFloat3x3(float3x3 defaultValue)
1176
+ {
1177
+ if (this.isEmpty || this.valueType.isArray)
1178
+ {
1179
+ return defaultValue;
1180
+ }
1181
+
1182
+ return ConvertToFloat3x3(this, defaultValue);
1183
+ }
1184
+
1185
+ /// <summary>
1186
+ /// Attempts to retrieve the value as a double3x3.
1187
+ /// </summary>
1188
+ /// <remarks>
1189
+ /// <para>
1190
+ /// If the value is a 3-by-3 matrix, its components will be converted to the
1191
+ /// double-precision floating point numbers.<br/>
1192
+ ///
1193
+ /// If the value is a 2-by-2 matrix, its components will be used to fill
1194
+ /// the corresponding components in the double3x3. All other components will
1195
+ /// be initialized as zero.<br/>
1196
+ ///
1197
+ /// If the value is a 4-by-4 matrix, the double3x3 will be constructed
1198
+ /// from the first 3 components of the first 3 columns.<br/>
1199
+ ///
1200
+ /// If the value is a scalar, then the resulting double3x3 will have this value
1201
+ /// along its diagonal. All other entries will be zero.<br/>
1202
+ ///
1203
+ /// If the value is a boolean, it is converted to 1.0 for true and 0.0 for false.
1204
+ /// Then, the resulting double3x3 will have this value along its diagonal, while
1205
+ /// all other entries will be zero.<br/>
1206
+ /// In all other cases, the user-defined default value is returned.
1207
+ /// </para>
1208
+ /// </remarks>
1209
+ /// <param name="defaultValue">The default value to use if the value
1210
+ /// cannot be converted to a double3x3.</param>
1211
+ /// <returns>The property value as a double3x3.</returns>
1212
+ public double3x3 GetDouble3x3(double3x3 defaultValue)
1213
+ {
1214
+ if (this.isEmpty || this.valueType.isArray)
1215
+ {
1216
+ return defaultValue;
1217
+ }
1218
+
1219
+ return ConvertToDouble3x3(this, defaultValue);
1220
+ }
1221
+
1222
+ /// <summary>
1223
+ /// Attempts to retrieve the value as a int4x4.
1224
+ /// </summary>
1225
+ /// <remarks>
1226
+ /// <para>
1227
+ /// If the value is a 4-by-4 matrix, its components will be converted to
1228
+ /// 32-bit signed integers if possible.<br/>
1229
+ ///
1230
+ /// If the value is a 2-by-2 or 3-by-3 matrix, its components will be used
1231
+ /// to fill the corresponding components in the int4x4. All other components
1232
+ /// will be initialized as zero.<br/>
1233
+ ///
1234
+ /// If the value is a scalar that can be converted to a 32-bit signed integer,
1235
+ /// then the resulting int4x4 will have this value along its diagonal. All other
1236
+ /// entries will be zero.<br/>
1237
+ ///
1238
+ /// If the value is a boolean, it is converted to 1 for true and 0 for false.
1239
+ /// Then, the resulting int4x4 will have this value along its diagonal, while
1240
+ /// all other entries will be zero.<br/>
1241
+ /// In all other cases, the user-defined default value is returned. In all matrix
1242
+ /// cases, if any of the relevant components cannot be represented as a 32-bit
1243
+ /// signed integer, the default value is returned.
1244
+ /// </para>
1245
+ /// </remarks>
1246
+ /// <param name="defaultValue">The default value to use if the value
1247
+ /// cannot be converted to a int4x4.</param>
1248
+ /// <returns>The property value as a int4x4.</returns>
1249
+ public int4x4 GetInt4x4(int4x4 defaultValue)
1250
+ {
1251
+ if (this.isEmpty || this.valueType.isArray)
1252
+ {
1253
+ return defaultValue;
1254
+ }
1255
+
1256
+ return ConvertToInt4x4(this, defaultValue);
1257
+ }
1258
+
1259
+ /// <summary>
1260
+ /// Attempts to retrieve the value as a uint4x4.
1261
+ /// </summary>
1262
+ /// <remarks>
1263
+ /// <para>
1264
+ /// If the value is a 4-by-4 matrix, its components will be converted to
1265
+ /// 32-bit unsigned integers if possible.<br/>
1266
+ ///
1267
+ /// If the value is a 2-by-2 or 3-by-3 matrix, its components will be used
1268
+ /// to fill the corresponding components in the uint4x4. All other components
1269
+ /// will be initialized as zero.<br/>
1270
+ ///
1271
+ /// If the value is a scalar that can be converted to a 32-bit unsigned integer,
1272
+ /// then the resulting uint4x4 will have this value along its diagonal. All other
1273
+ /// entries will be zero.<br/>
1274
+ ///
1275
+ /// If the value is a boolean, it is converted to 1 for true and 0 for false.
1276
+ /// Then, the resulting uint4x4 will have this value along its diagonal, while
1277
+ /// all other entries will be zero.<br/>
1278
+ /// In all other cases, the user-defined default value is returned.
1279
+ /// </para>
1280
+ /// </remarks>
1281
+ /// <param name="defaultValue">The default value to use if the value
1282
+ /// cannot be converted to a uint4x4.</param>
1283
+ /// <returns>The value as a uint4x4.</returns>
1284
+ public uint4x4 GetUInt4x4(uint4x4 defaultValue)
1285
+ {
1286
+ if (this.isEmpty || this.valueType.isArray)
1287
+ {
1288
+ return defaultValue;
1289
+ }
1290
+
1291
+ return ConvertToUInt4x4(this, defaultValue);
1292
+ }
1293
+
1294
+ /// <summary>
1295
+ /// Attempts to retrieve the value as a float4x4.
1296
+ /// </summary>
1297
+ /// <remarks>
1298
+ /// <para>
1299
+ /// If the value is a 4-by-4 matrix, its components will be converted to the
1300
+ /// closest representable single-precision floats if possible.<br/>
1301
+ ///
1302
+ /// If the value is a 2-by-2 or 3-by-3 matrix, its components will be used
1303
+ /// to fill the corresponding components in the float4x4. All other components
1304
+ /// will be initialized as zero.<br/>
1305
+ ///
1306
+ /// If the value is a scalar that can be converted to a single-precision floating
1307
+ /// point number, then the resulting float4x4 will have this value along its diagonal.
1308
+ /// All other entries will be zero.<br/>
1309
+ ///
1310
+ /// If the value is a boolean, it is converted to 1.0f for true and 0.0f for false.
1311
+ /// Then, the resulting float4x4 will have this value along its diagonal, while
1312
+ /// all other entries will be zero.<br/>
1313
+ /// In all other cases, the user-defined default value is returned.
1314
+ /// </para>
1315
+ /// </remarks>
1316
+ /// <param name="defaultValue">The default value to use if the value
1317
+ /// cannot be converted to a float4x4.</param>
1318
+ /// <returns>The value as a float4x4.</returns>
1319
+ public float4x4 GetFloat4x4(float4x4 defaultValue)
1320
+ {
1321
+ if (this.isEmpty || this.valueType.isArray)
1322
+ {
1323
+ return defaultValue;
1324
+ }
1325
+
1326
+ return ConvertToFloat4x4(this, defaultValue);
1327
+ }
1328
+
1329
+ /// <summary>
1330
+ /// Attempts to retrieve the value as a double4x4.
1331
+ /// </summary>
1332
+ /// <remarks>
1333
+ /// <para>
1334
+ /// If the value is a 4-by-4 matrix, its components will be converted to the
1335
+ /// double-precision floating point numbers.<br/>
1336
+ ///
1337
+ /// If the value is a 2-by-2 or 3-by-3 matrix, its components will be used
1338
+ /// to fill the corresponding components in the double4x4. All other components
1339
+ /// will be initialized as zero.<br/>
1340
+ ///
1341
+ /// If the value is a scalar, then the resulting double4x4 will have this value
1342
+ /// along its diagonal. All other entries will be zero.<br/>
1343
+ ///
1344
+ /// If the value is a boolean, it is converted to 1.0 for true and 0.0 for false.
1345
+ /// Then, the resulting double4x4 will have this value along its diagonal, while
1346
+ /// all other entries will be zero.<br/>
1347
+ /// In all other cases, the user-defined default value is returned.
1348
+ /// </para>
1349
+ /// </remarks>
1350
+ /// <param name="defaultValue">The default value to use if the value
1351
+ /// cannot be converted to a double4x4.</param>
1352
+ /// <returns>The value as a double4x4.</returns>
1353
+ public double4x4 GetDouble4x4(double4x4 defaultValue)
1354
+ {
1355
+ if (this.isEmpty || this.valueType.isArray)
1356
+ {
1357
+ return defaultValue;
1358
+ }
1359
+
1360
+ return ConvertToDouble4x4(this, defaultValue);
1361
+ }
1362
+
1363
+ /// <summary>
1364
+ /// Attempts to retrieve the value as a String.
1365
+ /// </summary>
1366
+ /// <remarks>
1367
+ /// <para>
1368
+ /// String values are returned as-is.<br/>
1369
+ /// Scalar values are converted to a string with `ToString()`.<br/>
1370
+ /// Boolean values are converted to "true" or "false".<br/>
1371
+ /// Array values return the default value.<br/>
1372
+ /// </para>
1373
+ /// </remarks>
1374
+ /// <param name="defaultValue">The default value to use if the value
1375
+ /// cannot be converted to a String.</param>
1376
+ /// <returns>The property value as a String.</returns>
1377
+ public String GetString(String defaultValue = "")
1378
+ {
1379
+ if (this.isEmpty || this.valueType.isArray)
1380
+ {
1381
+ return defaultValue;
1382
+ }
1383
+
1384
+ return ConvertToString(this, defaultValue);
1385
+ }
1386
+
1387
+ /// <summary>
1388
+ /// Attempts to retrieve the value as a <see cref="CesiumPropertyArray"/>. If the value
1389
+ /// is not an array type, this returns an empty array.
1390
+ /// </summary>
1391
+ /// <returns>The value as a CesiumPropertyArray.</returns>
1392
+ public CesiumPropertyArray GetArray()
1393
+ {
1394
+ if (valueType.isArray)
1395
+ {
1396
+ return this.objectValue as CesiumPropertyArray;
1397
+ }
1398
+
1399
+ return new CesiumPropertyArray();
1400
+ }
1401
+
1402
+ /// <summary>
1403
+ /// Gets the given dictionary of CesiumMetadataValues as a new dictionary of strings,
1404
+ /// mapped by name. This is useful for displaying the values from a property table or
1405
+ /// property texture as strings in a user interface.
1406
+ /// </summary>
1407
+ /// <remarks>
1408
+ /// Array properties cannot be converted to strings, so empty strings will
1409
+ /// be returned for their values.
1410
+ /// </remarks>
1411
+ /// <param name="values">The dictionary of CesiumMetadataValues mapped by name.</param>
1412
+ /// <returns>The dictionary of values converted to strings, mapped by name.</returns>
1413
+ public static Dictionary<String, String> GetValuesAsStrings(Dictionary<String, CesiumMetadataValue> values)
1414
+ {
1415
+ Dictionary<String, String> result = new Dictionary<String, String>(values.Count);
1416
+ foreach (KeyValuePair<String, CesiumMetadataValue> pair in values)
1417
+ {
1418
+ result.Add(pair.Key, pair.Value.GetString());
1419
+ }
1420
+
1421
+ return result;
1422
+ }
1423
+ #endregion
1424
+
1425
+ #region Internal casts for Reinterop
1426
+ internal static bool? GetObjectAsBoolean(System.Object inObject)
1427
+ {
1428
+ return inObject as bool?;
1429
+ }
1430
+ internal static SByte? GetObjectAsSByte(System.Object inObject)
1431
+ {
1432
+ return inObject as SByte?;
1433
+ }
1434
+ internal static Byte? GetObjectAsByte(System.Object inObject)
1435
+ {
1436
+ return inObject as Byte?;
1437
+ }
1438
+ internal static Int16? GetObjectAsInt16(System.Object inObject)
1439
+ {
1440
+ return inObject as Int16?;
1441
+ }
1442
+ internal static UInt16? GetObjectAsUInt16(System.Object inObject)
1443
+ {
1444
+ return inObject as UInt16?;
1445
+ }
1446
+ internal static Int32? GetObjectAsInt32(System.Object inObject)
1447
+ {
1448
+ return inObject as Int32?;
1449
+ }
1450
+ internal static UInt32? GetObjectAsUInt32(System.Object inObject)
1451
+ {
1452
+ return inObject as UInt32?;
1453
+ }
1454
+ internal static Int64? GetObjectAsInt64(System.Object inObject)
1455
+ {
1456
+ return inObject as Int64?;
1457
+ }
1458
+ internal static UInt64? GetObjectAsUInt64(System.Object inObject)
1459
+ {
1460
+ return inObject as UInt64?;
1461
+ }
1462
+ internal static float? GetObjectAsFloat(System.Object inObject)
1463
+ {
1464
+ return inObject as float?;
1465
+ }
1466
+ internal static double? GetObjectAsDouble(System.Object inObject)
1467
+ {
1468
+ return inObject as double?;
1469
+ }
1470
+ internal static CesiumIntVec2? GetObjectAsCesiumIntVec2(System.Object inObject)
1471
+ {
1472
+ return inObject as CesiumIntVec2?;
1473
+ }
1474
+ internal static CesiumIntVec3? GetObjectAsCesiumIntVec3(System.Object inObject)
1475
+ {
1476
+ return inObject as CesiumIntVec3?;
1477
+ }
1478
+ internal static CesiumIntVec4? GetObjectAsCesiumIntVec4(System.Object inObject)
1479
+ {
1480
+ return inObject as CesiumIntVec4?;
1481
+ }
1482
+ internal static CesiumUintVec2? GetObjectAsCesiumUintVec2(System.Object inObject)
1483
+ {
1484
+ return inObject as CesiumUintVec2?;
1485
+ }
1486
+ internal static CesiumUintVec3? GetObjectAsCesiumUintVec3(System.Object inObject)
1487
+ {
1488
+ return inObject as CesiumUintVec3?;
1489
+ }
1490
+ internal static CesiumUintVec4? GetObjectAsCesiumUintVec4(System.Object inObject)
1491
+ {
1492
+ return inObject as CesiumUintVec4?;
1493
+ }
1494
+ internal static float2? GetObjectAsFloat2(System.Object inObject)
1495
+ {
1496
+ return inObject as float2?;
1497
+ }
1498
+ internal static float3? GetObjectAsFloat3(System.Object inObject)
1499
+ {
1500
+ return inObject as float3?;
1501
+ }
1502
+ internal static float4? GetObjectAsFloat4(System.Object inObject)
1503
+ {
1504
+ return inObject as float4?;
1505
+ }
1506
+ internal static double2? GetObjectAsDouble2(System.Object inObject)
1507
+ {
1508
+ return inObject as double2?;
1509
+ }
1510
+ internal static double3? GetObjectAsDouble3(System.Object inObject)
1511
+ {
1512
+ return inObject as double3?;
1513
+ }
1514
+ internal static double4? GetObjectAsDouble4(System.Object inObject)
1515
+ {
1516
+ return inObject as double4?;
1517
+ }
1518
+ internal static CesiumIntMat2x2? GetObjectAsCesiumIntMat2x2(System.Object inObject)
1519
+ {
1520
+ return inObject as CesiumIntMat2x2?;
1521
+ }
1522
+ internal static CesiumIntMat3x3? GetObjectAsCesiumIntMat3x3(System.Object inObject)
1523
+ {
1524
+ return inObject as CesiumIntMat3x3?;
1525
+ }
1526
+ internal static CesiumIntMat4x4? GetObjectAsCesiumIntMat4x4(System.Object inObject)
1527
+ {
1528
+ return inObject as CesiumIntMat4x4?;
1529
+ }
1530
+ internal static CesiumUintMat2x2? GetObjectAsCesiumUintMat2x2(System.Object inObject)
1531
+ {
1532
+ return inObject as CesiumUintMat2x2?;
1533
+ }
1534
+ internal static CesiumUintMat3x3? GetObjectAsCesiumUintMat3x3(System.Object inObject)
1535
+ {
1536
+ return inObject as CesiumUintMat3x3?;
1537
+ }
1538
+ internal static CesiumUintMat4x4? GetObjectAsCesiumUintMat4x4(System.Object inObject)
1539
+ {
1540
+ return inObject as CesiumUintMat4x4?;
1541
+ }
1542
+ internal static float2x2? GetObjectAsFloat2x2(System.Object inObject)
1543
+ {
1544
+ return inObject as float2x2?;
1545
+ }
1546
+ internal static float3x3? GetObjectAsFloat3x3(System.Object inObject)
1547
+ {
1548
+ return inObject as float3x3?;
1549
+ }
1550
+ internal static float4x4? GetObjectAsFloat4x4(System.Object inObject)
1551
+ {
1552
+ return inObject as float4x4?;
1553
+ }
1554
+ internal static double2x2? GetObjectAsDouble2x2(System.Object inObject)
1555
+ {
1556
+ return inObject as double2x2?;
1557
+ }
1558
+ internal static double3x3? GetObjectAsDouble3x3(System.Object inObject)
1559
+ {
1560
+ return inObject as double3x3?;
1561
+ }
1562
+ internal static double4x4? GetObjectAsDouble4x4(System.Object inObject)
1563
+ {
1564
+ return inObject as double4x4?;
1565
+ }
1566
+ internal static String GetObjectAsString(System.Object inObject)
1567
+ {
1568
+ return inObject as String;
1569
+ }
1570
+
1571
+ #endregion
1572
+
1573
+ #region Internal setters for Reinterop
1574
+ internal void SetObjectValue(bool input)
1575
+ {
1576
+ this.objectValue = input;
1577
+ }
1578
+ internal void SetObjectValue(SByte input)
1579
+ {
1580
+ this.objectValue = input;
1581
+ }
1582
+ internal void SetObjectValue(Byte input)
1583
+ {
1584
+ this.objectValue = input;
1585
+ }
1586
+ internal void SetObjectValue(Int16 input)
1587
+ {
1588
+ this.objectValue = input;
1589
+ }
1590
+ internal void SetObjectValue(UInt16 input)
1591
+ {
1592
+ this.objectValue = input;
1593
+ }
1594
+ internal void SetObjectValue(Int32 input)
1595
+ {
1596
+ this.objectValue = input;
1597
+ }
1598
+ internal void SetObjectValue(UInt32 input)
1599
+ {
1600
+ this.objectValue = input;
1601
+ }
1602
+ internal void SetObjectValue(Int64 input)
1603
+ {
1604
+ this.objectValue = input;
1605
+ }
1606
+ internal void SetObjectValue(UInt64 input)
1607
+ {
1608
+ this.objectValue = input;
1609
+ }
1610
+ internal void SetObjectValue(float input)
1611
+ {
1612
+ this.objectValue = input;
1613
+ }
1614
+ internal void SetObjectValue(double input)
1615
+ {
1616
+ this.objectValue = input;
1617
+ }
1618
+ internal void SetObjectValue(CesiumIntVec2 input)
1619
+ {
1620
+ this.objectValue = input;
1621
+ }
1622
+ internal void SetObjectValue(CesiumIntVec3 input)
1623
+ {
1624
+ this.objectValue = input;
1625
+ }
1626
+ internal void SetObjectValue(CesiumIntVec4 input)
1627
+ {
1628
+ this.objectValue = input;
1629
+ }
1630
+ internal void SetObjectValue(CesiumUintVec2 input)
1631
+ {
1632
+ this.objectValue = input;
1633
+ }
1634
+ internal void SetObjectValue(CesiumUintVec3 input)
1635
+ {
1636
+ this.objectValue = input;
1637
+ }
1638
+ internal void SetObjectValue(CesiumUintVec4 input)
1639
+ {
1640
+ this.objectValue = input;
1641
+ }
1642
+ internal void SetObjectValue(float2 input)
1643
+ {
1644
+ this.objectValue = input;
1645
+ }
1646
+ internal void SetObjectValue(float3 input)
1647
+ {
1648
+ this.objectValue = input;
1649
+ }
1650
+ internal void SetObjectValue(float4 input)
1651
+ {
1652
+ this.objectValue = input;
1653
+ }
1654
+ internal void SetObjectValue(double2 input)
1655
+ {
1656
+ this.objectValue = input;
1657
+ }
1658
+ internal void SetObjectValue(double3 input)
1659
+ {
1660
+ this.objectValue = input;
1661
+ }
1662
+ internal void SetObjectValue(double4 input)
1663
+ {
1664
+ this.objectValue = input;
1665
+ }
1666
+ internal void SetObjectValue(CesiumIntMat2x2 input)
1667
+ {
1668
+ this.objectValue = input;
1669
+ }
1670
+ internal void SetObjectValue(CesiumIntMat3x3 input)
1671
+ {
1672
+ this.objectValue = input;
1673
+ }
1674
+ internal void SetObjectValue(CesiumIntMat4x4 input)
1675
+ {
1676
+ this.objectValue = input;
1677
+ }
1678
+ internal void SetObjectValue(CesiumUintMat2x2 input)
1679
+ {
1680
+ this.objectValue = input;
1681
+ }
1682
+ internal void SetObjectValue(CesiumUintMat3x3 input)
1683
+ {
1684
+ this.objectValue = input;
1685
+ }
1686
+ internal void SetObjectValue(CesiumUintMat4x4 input)
1687
+ {
1688
+ this.objectValue = input;
1689
+ }
1690
+ internal void SetObjectValue(float2x2 input)
1691
+ {
1692
+ this.objectValue = input;
1693
+ }
1694
+ internal void SetObjectValue(float3x3 input)
1695
+ {
1696
+ this.objectValue = input;
1697
+ }
1698
+ internal void SetObjectValue(float4x4 input)
1699
+ {
1700
+ this.objectValue = input;
1701
+ }
1702
+ internal void SetObjectValue(double2x2 input)
1703
+ {
1704
+ this.objectValue = input;
1705
+ }
1706
+ internal void SetObjectValue(double3x3 input)
1707
+ {
1708
+ this.objectValue = input;
1709
+ }
1710
+ internal void SetObjectValue(double4x4 input)
1711
+ {
1712
+ this.objectValue = input;
1713
+ }
1714
+ internal void SetObjectValue(String input)
1715
+ {
1716
+ this.objectValue = input;
1717
+ }
1718
+ internal void SetObjectValue(CesiumPropertyArray input)
1719
+ {
1720
+ this.objectValue = input;
1721
+ }
1722
+ #endregion
1723
+
1724
+ #region Internal static partial methods
1725
+ internal static partial bool ConvertToBoolean(CesiumMetadataValue value, bool defaultValue);
1726
+ internal static partial SByte ConvertToSByte(CesiumMetadataValue value, SByte defaultValue);
1727
+ internal static partial Byte ConvertToByte(CesiumMetadataValue value, Byte defaultValue);
1728
+ internal static partial Int16 ConvertToInt16(CesiumMetadataValue value, Int16 defaultValue);
1729
+ internal static partial UInt16 ConvertToUInt16(CesiumMetadataValue value, UInt16 defaultValue);
1730
+ internal static partial Int32 ConvertToInt32(CesiumMetadataValue value, Int32 defaultValue);
1731
+ internal static partial UInt32 ConvertToUInt32(CesiumMetadataValue value, UInt32 defaultValue);
1732
+ internal static partial Int64 ConvertToInt64(CesiumMetadataValue value, Int64 defaultValue);
1733
+ internal static partial UInt64 ConvertToUInt64(CesiumMetadataValue value, UInt64 defaultValue);
1734
+ internal static partial float ConvertToFloat(CesiumMetadataValue value, float defaultValue);
1735
+ internal static partial double ConvertToDouble(CesiumMetadataValue value, double defaultValue);
1736
+ internal static partial int2 ConvertToInt2(CesiumMetadataValue value, int2 defaultValue);
1737
+ internal static partial uint2 ConvertToUInt2(CesiumMetadataValue value, uint2 defaultValue);
1738
+ internal static partial float2 ConvertToFloat2(CesiumMetadataValue value, float2 defaultValue);
1739
+ internal static partial double2 ConvertToDouble2(CesiumMetadataValue value, double2 defaultValue);
1740
+ internal static partial int3 ConvertToInt3(CesiumMetadataValue value, int3 defaultValue);
1741
+ internal static partial uint3 ConvertToUInt3(CesiumMetadataValue value, uint3 defaultValue);
1742
+ internal static partial float3 ConvertToFloat3(CesiumMetadataValue value, float3 defaultValue);
1743
+ internal static partial double3 ConvertToDouble3(CesiumMetadataValue value, double3 defaultValue);
1744
+ internal static partial int4 ConvertToInt4(CesiumMetadataValue value, int4 defaultValue);
1745
+ internal static partial uint4 ConvertToUInt4(CesiumMetadataValue value, uint4 defaultValue);
1746
+ internal static partial float4 ConvertToFloat4(CesiumMetadataValue value, float4 defaultValue);
1747
+ internal static partial double4 ConvertToDouble4(CesiumMetadataValue value, double4 defaultValue);
1748
+ internal static partial int2x2 ConvertToInt2x2(CesiumMetadataValue value, int2x2 defaultValue);
1749
+ internal static partial uint2x2 ConvertToUInt2x2(CesiumMetadataValue value, uint2x2 defaultValue);
1750
+ internal static partial float2x2 ConvertToFloat2x2(CesiumMetadataValue value, float2x2 defaultValue);
1751
+ internal static partial double2x2 ConvertToDouble2x2(CesiumMetadataValue value, double2x2 defaultValue);
1752
+ internal static partial int3x3 ConvertToInt3x3(CesiumMetadataValue value, int3x3 defaultValue);
1753
+ internal static partial uint3x3 ConvertToUInt3x3(CesiumMetadataValue value, uint3x3 defaultValue);
1754
+ internal static partial float3x3 ConvertToFloat3x3(CesiumMetadataValue value, float3x3 defaultValue);
1755
+ internal static partial double3x3 ConvertToDouble3x3(CesiumMetadataValue value, double3x3 defaultValue);
1756
+ internal static partial int4x4 ConvertToInt4x4(CesiumMetadataValue value, int4x4 defaultValue);
1757
+ internal static partial uint4x4 ConvertToUInt4x4(CesiumMetadataValue value, uint4x4 defaultValue);
1758
+ internal static partial float4x4 ConvertToFloat4x4(CesiumMetadataValue value, float4x4 defaultValue);
1759
+ internal static partial double4x4 ConvertToDouble4x4(CesiumMetadataValue value, double4x4 defaultValue);
1760
+ internal static partial String ConvertToString(CesiumMetadataValue value, String defaultValue);
1761
+
1762
+ #endregion
1763
+ }
1764
+ }