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