Cesium for Unity 1.15.2
Loading...
Searching...
No Matches
ConfigureReinterop.cs
Go to the documentation of this file.
1using Reinterop;
2using System;
3using System.Collections.Generic;
4using System.Runtime.InteropServices;
5using System.Text;
6using System.Threading.Tasks;
7using Unity.Collections;
8using Unity.Collections.LowLevel.Unsafe;
9using UnityEngine;
10using UnityEngine.Networking;
11using UnityEngine.Rendering;
12using UnityEngine.Experimental.Rendering;
13using Unity.Mathematics;
14using UnityEngine.Pool;
15using UnityEngine.UIElements;
16
17#if UNITY_EDITOR
18using UnityEditor;
19#endif
20
21namespace CesiumForUnity
22{
23 [Reinterop]
24 internal partial class ConfigureReinterop
25 {
26 // The output path for generated C++ files.
27 // If this is relative, it is relative to the this file.
28#if UNITY_EDITOR
29 public const string CppOutputPath = "../native~/Runtime/generated-Editor";
30#elif UNITY_ANDROID
31 public const string CppOutputPath = "../native~/Runtime/generated-Android";
32#elif UNITY_IOS
33 public const string CppOutputPath = "../native~/Runtime/generated-iOS";
34#elif UNITY_WSA
35 public const string CppOutputPath = "../native~/Runtime/generated-WSA";
36#elif UNITY_64
37 public const string CppOutputPath = "../native~/Runtime/generated-Standalone";
38#else
39 public const string CppOutputPath = "../native~/Runtime/generated-Unknown";
40#endif
41
42 // The namespace with which to prefix all C# namespaces. For example, if this
43 // property is set to "DotNet", then anything in the "System" namespace in C#
44 // will be found in the "DotNet::System" namespace in C++.
45 public const string BaseNamespace = "DotNet";
46
47 // The name of the DLL or SO containing the C++ code.
48#if UNITY_IOS && !UNITY_EDITOR
49 public const string NativeLibraryName = "__Internal";
50#else
51 public const string NativeLibraryName = "CesiumForUnityNative-Runtime";
52#endif
53 // Comma-separated types to treat as non-blittable, even if their fields would
54 // otherwise cause Reinterop to treat them as blittable.
55 public const string NonBlittableTypes = "Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle,Unity.Collections.NativeArray,UnityEngine.MeshData,UnityEngine.MeshDataArray";
56
57 public void ExposeToCPP()
58 {
59 Camera c = Camera.main;
60
61 Transform t = c.transform;
62 Vector3 u = t.up;
63 Vector3 f = t.forward;
64
65 Vector4 v = new Vector4(1.0f, 0.0f, 1.0f, 0.0f);
66
67 t.position = new Vector3();
68 Vector3 p = t.position;
69 float x = p.x;
70 float y = p.y;
71 float z = p.z;
72 Quaternion q = new Quaternion();
73 q = Quaternion.LookRotation(Vector3.forward, Vector3.up);
74 c.GetStereoViewMatrix(Camera.StereoscopicEye.Right);
75 float fov = c.fieldOfView;
76 int pixelHeight = c.pixelHeight;
77 int pixelWidth = c.pixelWidth;
78 float aspect = c.aspect;
79 //IFormattable f = new Vector3();
80 //IEquatable<Vector3> f2 = new Vector3();
81
82 GameObject go = new GameObject();
83 go.name = go.name;
84 go = new GameObject("name");
85 go.SetActive(go.activeInHierarchy);
86 int layer = go.layer;
87 go.layer = layer;
88 Transform transform = go.transform;
89 transform.parent = transform.parent;
90 transform.SetParent(transform.parent, false);
91 transform.position = transform.position;
92 transform.rotation = transform.rotation;
93 transform.localPosition = transform.localPosition;
94 transform.localRotation = transform.localRotation;
95 transform.localScale = transform.localScale;
96 transform.SetPositionAndRotation(transform.position, transform.rotation);
97 Transform root = transform.root;
98 int siblingIndex = transform.GetSiblingIndex();
99 Matrix4x4 m = transform.localToWorldMatrix;
100 Matrix4x4 m2 = transform.worldToLocalMatrix;
101
102 go.AddComponent<MeshFilter>();
103 go.AddComponent<MeshRenderer>();
104
105 go.transform.Find("Child Name");
106 go.transform.GetChild(go.transform.childCount - 1);
107 go.transform.DetachChildren();
108 go.hideFlags = HideFlags.DontSave;
109
110 Texture2D texture2D = new Texture2D(256, 256, TextureFormat.RGBA32, false, false);
111 texture2D = new Texture2D(256, 256, TextureFormat.RGBA32, 1, false);
112 texture2D.LoadRawTextureData(IntPtr.Zero, 0);
113 NativeArray<byte> textureBytes = texture2D.GetRawTextureData<byte>();
114
115 unsafe
116 {
117 NativeArrayUnsafeUtility.GetUnsafeBufferPointerWithoutChecks(textureBytes);
118 }
119
120 int textureBytesLength = textureBytes.Length;
121 texture2D.Apply(true, true);
122 texture2D.wrapMode = TextureWrapMode.Clamp;
123 texture2D.anisoLevel = 16;
124 texture2D.filterMode = FilterMode.Trilinear;
125 Texture texture = texture2D;
126 texture.wrapModeU = texture.wrapModeU;
127 texture.wrapModeV = texture.wrapModeV;
128 texture.wrapModeW = texture.wrapModeW;
129
130 Mesh mesh = new Mesh();
131 Mesh[] meshes = new[] { mesh };
132 mesh = meshes[0];
133 int meshesLength = meshes.Length;
134 mesh.SetVertices(new NativeArray<Vector3>());
135 mesh.SetNormals(new NativeArray<Vector3>());
136 mesh.SetUVs(0, new NativeArray<Vector2>());
137 mesh.SetIndices(new NativeArray<int>(), MeshTopology.Triangles, 0, true, 0);
138 mesh.RecalculateBounds();
139 int vertexCount = mesh.vertexCount;
140 int instanceID = mesh.GetInstanceID();
141
142 Vector3[] vertices = mesh.vertices;
143 Vector3 vertex = vertices[0];
144
145 Bounds bounds = new Bounds(new Vector3(0, 0, 0), new Vector3(1, 2, 1));
146
147 MeshCollider meshCollider = go.AddComponent<MeshCollider>();
148 meshCollider.sharedMesh = mesh;
149
150 Debug.Log("Logging");
151 Debug.LogWarning("Warning");
152 Debug.LogError("Error");
153
154 MeshRenderer meshRenderer = new MeshRenderer();
155 GameObject meshGameObject = meshRenderer.gameObject;
156 meshRenderer.material = UnityEngine.Object.Instantiate(meshRenderer.material);
157
158 int id = Shader.PropertyToID("name");
159 int crc = meshRenderer.material.ComputeCRC();
160 meshRenderer.material.SetTexture(id, texture2D);
161 meshRenderer.material.SetFloat(id, 1.0f);
162 meshRenderer.material.SetFloat(id, (float)CullMode.Off);
163 meshRenderer.material.SetVector(id, new Vector4());
164 meshRenderer.material.DisableKeyword("keywordName");
165 meshRenderer.material.EnableKeyword("keywordName");
166 meshRenderer.material.GetTexture(id);
167 meshRenderer.material.SetTextureOffset(id, new Vector2());
168 meshRenderer.material.SetTextureScale(id, new Vector2());
169 var ids = new List<int>();
170 meshRenderer.material.GetTexturePropertyNameIDs(ids);
171 for (int i = 0; i < ids.Count; ++i)
172 {
173 meshRenderer.material.GetTexture(ids[i]);
174 }
175 meshRenderer.material.shaderKeywords = meshRenderer.material.shaderKeywords;
176 meshRenderer.sharedMaterial = meshRenderer.sharedMaterial;
177 meshRenderer.material.shader = meshRenderer.material.shader;
178 UnityEngine.Object.Destroy(meshGameObject);
179 UnityEngine.Object.DestroyImmediate(meshGameObject, true);
180 UnityEngine.Object.DestroyImmediate(meshGameObject);
181
182 MeshFilter meshFilter = new MeshFilter();
183 meshFilter.mesh = mesh;
184 meshFilter.sharedMesh = mesh;
185
186 Resources.Load<Material>("name");
187
188 byte b;
189 unsafe
190 {
191 string s = Encoding.UTF8.GetString(&b, 0);
192 }
193
194 NativeArray<Vector3> nav = new NativeArray<Vector3>(1, Allocator.Temp, NativeArrayOptions.UninitializedMemory);
195 NativeArray<Vector2> nav2 = new NativeArray<Vector2>(1, Allocator.Temp, NativeArrayOptions.UninitializedMemory);
196 NativeArray<int> nai = new NativeArray<int>(1, Allocator.Temp, NativeArrayOptions.UninitializedMemory);
197
198 unsafe
199 {
200 NativeArrayUnsafeUtility.GetUnsafeBufferPointerWithoutChecks(nav);
201 NativeArrayUnsafeUtility.GetUnsafeBufferPointerWithoutChecks(nav2);
202 NativeArrayUnsafeUtility.GetUnsafeBufferPointerWithoutChecks(nai);
203 }
204
205 nav.Dispose();
206 nav2.Dispose();
207 nai.Dispose();
208
209 string temporaryCachePath = Application.temporaryCachePath;
210 bool isEditor = Application.isEditor;
211 string applicationVersion = Application.version;
212 string unityVersion = Application.unityVersion;
213 string applicationPlatform = Helpers.ToString(Application.platform);
214 string productName = Application.productName;
215 string osVersion = System.Environment.OSVersion.VersionString;
216
217 int frames = Time.frameCount;
218
219 Marshal.FreeCoTaskMem(Marshal.StringToCoTaskMemUTF8("hi"));
220
221 UnityWebRequest request = UnityWebRequest.Get("url");
222
223 var uploadHandler = new UploadHandlerRaw(new byte[0]);
224
225 var rawBytes = new NativeArray<byte>(1, Allocator.Persistent, NativeArrayOptions.UninitializedMemory);
226 unsafe
227 {
228 NativeArrayUnsafeUtility.GetUnsafeBufferPointerWithoutChecks(rawBytes);
229 }
230 uploadHandler = new UploadHandlerRaw(rawBytes, true);
231 request = new UnityWebRequest("url", "method", new NativeDownloadHandler(), uploadHandler);
232
233 bool isDone = request.isDone;
234 string e = request.error;
235 string method = request.method;
236 string url = request.url;
237 if (request.result == UnityWebRequest.Result.Success) { };
238 request.downloadHandler = new NativeDownloadHandler();
239 request.SetRequestHeader("name", "value");
240 request.GetResponseHeader("name");
241 Dictionary<string, string>.Enumerator enumerator = request.GetResponseHeaders().GetEnumerator();
242 while (enumerator.MoveNext())
243 {
244 string key = enumerator.Current.Key;
245 string value = enumerator.Current.Value;
246 }
247 request.downloadHandler.Dispose();
248 long responseCode = request.responseCode;
249 UnityWebRequestAsyncOperation op = request.SendWebRequest();
250 //Action<AsyncOperation> foo = (ao) => { };
251 //var asdfx = foo + foo;
252 op.completed += o => { };
253
254 UnityWebRequest imageRequest = UnityWebRequestTexture.GetTexture("url");
255
256 Task.Run(() => { });
257
258 Cesium3DTileset tileset = new Cesium3DTileset();
259 tileset.tilesetSource = tileset.tilesetSource;
260 tileset.url = tileset.url;
261 tileset.ionAssetID = tileset.ionAssetID;
262 tileset.ionAccessToken = tileset.ionAccessToken;
263 tileset.logSelectionStats = tileset.logSelectionStats;
264 tileset.opaqueMaterial = tileset.opaqueMaterial;
265 tileset.enabled = tileset.enabled;
266 tileset.maximumScreenSpaceError = tileset.maximumScreenSpaceError;
267 tileset.preloadAncestors = tileset.preloadAncestors;
268 tileset.preloadSiblings = tileset.preloadSiblings;
269 tileset.forbidHoles = tileset.forbidHoles;
270 tileset.maximumSimultaneousTileLoads = tileset.maximumSimultaneousTileLoads;
271 tileset.maximumCachedBytes = tileset.maximumCachedBytes;
272 tileset.loadingDescendantLimit = tileset.loadingDescendantLimit;
273 tileset.enableFrustumCulling = tileset.enableFrustumCulling;
274 tileset.enableFogCulling = tileset.enableFogCulling;
275 tileset.enforceCulledScreenSpaceError = tileset.enforceCulledScreenSpaceError;
276 tileset.culledScreenSpaceError = tileset.culledScreenSpaceError;
277 //tileset.useLodTransitions = tileset.useLodTransitions;
278 //tileset.lodTransitionLength = tileset.lodTransitionLength;
279 tileset.generateSmoothNormals = tileset.generateSmoothNormals;
280 tileset.createPhysicsMeshes = tileset.createPhysicsMeshes;
281 tileset.suspendUpdate = tileset.suspendUpdate;
282 tileset.previousSuspendUpdate = tileset.previousSuspendUpdate;
283 tileset.showTilesInHierarchy = tileset.showTilesInHierarchy;
284 tileset.updateInEditor = tileset.updateInEditor;
285 tileset.showCreditsOnScreen = tileset.showCreditsOnScreen;
286 tileset.ionServer = tileset.ionServer;
287 tileset.RecreateTileset();
288
289 GraphicsFormat gfxFmt = GraphicsFormat.RGB_ETC_UNorm;
290 FormatUsage fmtUsage = FormatUsage.Sample;
291 SystemInfo.IsFormatSupported(gfxFmt, fmtUsage);
292
293 Cesium3DTileset tilesetFromGameObject = go.GetComponent<Cesium3DTileset>();
294 MeshRenderer meshRendererFromGameObject = go.GetComponent<MeshRenderer>();
295 MeshFilter meshFilterFromGameObject = go.GetComponent<MeshFilter>();
296 CesiumIonRasterOverlay ionOverlay = go.GetComponent<CesiumIonRasterOverlay>();
297 ionOverlay.ionAssetID = ionOverlay.ionAssetID;
298 ionOverlay.ionAccessToken = ionOverlay.ionAccessToken;
299 ionOverlay.ionServer = ionOverlay.ionServer;
300 ionOverlay.AddToTilesetLater(null);
301
302 CesiumRasterOverlay overlay = go.GetComponent<CesiumRasterOverlay>();
303 overlay.materialKey = overlay.materialKey;
304 overlay.showCreditsOnScreen = overlay.showCreditsOnScreen;
305 overlay.maximumScreenSpaceError = overlay.maximumScreenSpaceError;
306 overlay.maximumTextureSize = overlay.maximumTextureSize;
307 overlay.maximumSimultaneousTileLoads = overlay.maximumSimultaneousTileLoads;
308 overlay.subTileCacheBytes = overlay.subTileCacheBytes;
309
310 CesiumRasterOverlay baseOverlay = ionOverlay;
311 baseOverlay.AddToTileset();
312 baseOverlay.RemoveFromTileset();
313
314 CesiumBingMapsRasterOverlay bingMapsRasterOverlay =
315 go.GetComponent<CesiumBingMapsRasterOverlay>();
316 bingMapsRasterOverlay.bingMapsKey = bingMapsRasterOverlay.bingMapsKey;
317 bingMapsRasterOverlay.mapStyle = bingMapsRasterOverlay.mapStyle;
318 baseOverlay = bingMapsRasterOverlay;
319
320 CesiumTileMapServiceRasterOverlay tileMapServiceRasterOverlay =
321 go.GetComponent<CesiumTileMapServiceRasterOverlay>();
322 tileMapServiceRasterOverlay.url = tileMapServiceRasterOverlay.url;
323 tileMapServiceRasterOverlay.specifyZoomLevels =
324 tileMapServiceRasterOverlay.specifyZoomLevels;
325 tileMapServiceRasterOverlay.minimumLevel = tileMapServiceRasterOverlay.minimumLevel;
326 tileMapServiceRasterOverlay.maximumLevel = tileMapServiceRasterOverlay.maximumLevel;
327 baseOverlay = tileMapServiceRasterOverlay;
328
329 CesiumWebMapServiceRasterOverlay webMapServiceRasterOverlay =
330 go.GetComponent<CesiumWebMapServiceRasterOverlay>();
331 webMapServiceRasterOverlay.baseUrl = webMapServiceRasterOverlay.baseUrl;
332 webMapServiceRasterOverlay.layers = webMapServiceRasterOverlay.layers;
333 webMapServiceRasterOverlay.tileWidth = webMapServiceRasterOverlay.tileWidth;
334 webMapServiceRasterOverlay.tileHeight = webMapServiceRasterOverlay.tileHeight;
335 webMapServiceRasterOverlay.minimumLevel = webMapServiceRasterOverlay.minimumLevel;
336 webMapServiceRasterOverlay.maximumLevel = webMapServiceRasterOverlay.maximumLevel;
337 baseOverlay = webMapServiceRasterOverlay;
338
339 CesiumWebMapTileServiceRasterOverlay webMapTileServiceRasterOverlay =
340 go.GetComponent<CesiumWebMapTileServiceRasterOverlay>();
341 webMapTileServiceRasterOverlay.baseUrl = webMapTileServiceRasterOverlay.baseUrl;
342 webMapTileServiceRasterOverlay.layer = webMapTileServiceRasterOverlay.layer;
343 webMapTileServiceRasterOverlay.style = webMapTileServiceRasterOverlay.style;
344 webMapTileServiceRasterOverlay.format = webMapTileServiceRasterOverlay.format;
345 webMapTileServiceRasterOverlay.tileMatrixSetID = webMapTileServiceRasterOverlay.tileMatrixSetID;
346 webMapTileServiceRasterOverlay.tileMatrixSetLabelPrefix = webMapTileServiceRasterOverlay.tileMatrixSetLabelPrefix;
347 webMapTileServiceRasterOverlay.specifyTileMatrixSetLabels = webMapTileServiceRasterOverlay.specifyTileMatrixSetLabels;
348 webMapTileServiceRasterOverlay.tileMatrixSetLabels = webMapTileServiceRasterOverlay.tileMatrixSetLabels;
349 webMapTileServiceRasterOverlay.projection = webMapTileServiceRasterOverlay.projection;
350 webMapTileServiceRasterOverlay.specifyTilingScheme = webMapTileServiceRasterOverlay.specifyTilingScheme;
351 webMapTileServiceRasterOverlay.rootTilesX = webMapTileServiceRasterOverlay.rootTilesX;
352 webMapTileServiceRasterOverlay.rootTilesY = webMapTileServiceRasterOverlay.rootTilesY;
353 webMapTileServiceRasterOverlay.rectangleEast = webMapTileServiceRasterOverlay.rectangleEast;
354 webMapTileServiceRasterOverlay.rectangleSouth = webMapTileServiceRasterOverlay.rectangleSouth;
355 webMapTileServiceRasterOverlay.rectangleWest = webMapTileServiceRasterOverlay.rectangleWest;
356 webMapTileServiceRasterOverlay.rectangleNorth = webMapTileServiceRasterOverlay.rectangleNorth;
357 webMapTileServiceRasterOverlay.specifyZoomLevels = webMapTileServiceRasterOverlay.specifyZoomLevels;
358 webMapTileServiceRasterOverlay.minimumLevel = webMapTileServiceRasterOverlay.minimumLevel;
359 webMapTileServiceRasterOverlay.maximumLevel = webMapTileServiceRasterOverlay.maximumLevel;
360 webMapTileServiceRasterOverlay.tileWidth = webMapTileServiceRasterOverlay.tileWidth;
361 webMapTileServiceRasterOverlay.tileHeight = webMapTileServiceRasterOverlay.tileHeight;
362 baseOverlay = webMapTileServiceRasterOverlay;
363
364 CesiumRasterOverlay[] overlaysArray = go.GetComponents<CesiumRasterOverlay>();
365 int len = overlaysArray.Length;
366 overlay = overlaysArray[0];
367
368 MonoBehaviour mb = tileset;
369 mb.StartCoroutine(new NativeCoroutine(endIteration => endIteration).GetEnumerator());
370
371
372#pragma warning disable 0618
373 CesiumMetadata metadata = go.AddComponent<CesiumMetadata>();
374 metadata = go.GetComponent<CesiumMetadata>();
375 CesiumMetadata metadataParent = go.GetComponentInParent<CesiumMetadata>();
376 MetadataType type = MetadataType.String;
377 if (type == MetadataType.None)
378 {
379 type = MetadataType.Int16;
380 }
381 metadata.GetFeatures(transform, 3);
382 CesiumFeature[] features = new CesiumFeature[2];
383 var feature = features[0] = new CesiumFeature();
384 feature.className = "";
385 feature.featureTableName = "";
386 feature.properties = new string[4];
387 feature.properties[2] = "";
388#pragma warning restore 0618
389
390 CesiumGeoreference georeference = go.AddComponent<CesiumGeoreference>();
391 georeference = go.GetComponent<CesiumGeoreference>();
392 georeference.longitude = georeference.longitude;
393 georeference.latitude = georeference.latitude;
394 georeference.height = georeference.height;
395 georeference.ecefX = georeference.ecefX;
396 georeference.ecefY = georeference.ecefY;
397 georeference.ecefZ = georeference.ecefZ;
398 georeference.originPlacement = georeference.originPlacement;
399 georeference.originAuthority = georeference.originAuthority;
400 georeference.scale = georeference.scale;
401 double4x4 ecefToLocal = georeference.ecefToLocalMatrix;
402
403 CesiumGeoreference inParent = go.GetComponentInParent<CesiumGeoreference>();
404 inParent.MoveOrigin();
405 inParent.changed += () => { };
406
407 float time = Time.deltaTime;
408
409 GameObject[] gos = GameObject.FindGameObjectsWithTag("test");
410 for (int i = 0; i < gos.Length; ++i)
411 {
412 GameObject goFromArray = gos[i];
413 gos[i] = goFromArray;
414 }
415
416 go = Resources.Load<GameObject>("name");
417 go = UnityEngine.Object.Instantiate(go);
418
419 Mesh.MeshDataArray meshDataArray = Mesh.AllocateWritableMeshData(1);
420 Mesh.MeshData meshData = meshDataArray[meshDataArray.Length - 1];
421
422 VertexAttributeDescriptor[] descriptorsArray = new VertexAttributeDescriptor[1];
423 VertexAttributeDescriptor descriptor0 = descriptorsArray[0];
424
425 meshData.SetVertexBufferParams(1, descriptorsArray);
426 meshData.SetIndexBufferParams(1, IndexFormat.UInt16);
427 meshData.subMeshCount = 1;
428 meshData.SetSubMesh(0, new SubMeshDescriptor(0, 1, MeshTopology.Triangles));
429
430 NativeArray<Vector3> positionNormal = meshData.GetVertexData<Vector3>(0);
431 NativeArray<Vector2> texCoord = meshData.GetVertexData<Vector2>(0);
432 NativeArray<byte> vertexData = meshData.GetVertexData<byte>(0);
433 NativeArray<ushort> indices = meshData.GetIndexData<ushort>();
434 NativeArray<uint> indices32 = meshData.GetIndexData<uint>();
435
436 int positionNormalLength = positionNormal.Length;
437 int texCoordLength = texCoord.Length;
438 int indicesLength = indices.Length;
439 int indices32Length = indices32.Length;
440
441 unsafe
442 {
443 NativeArrayUnsafeUtility.GetUnsafeBufferPointerWithoutChecks(positionNormal);
444 NativeArrayUnsafeUtility.GetUnsafeBufferPointerWithoutChecks(texCoord);
445 NativeArrayUnsafeUtility.GetUnsafeBufferPointerWithoutChecks(indices);
446 NativeArrayUnsafeUtility.GetUnsafeBufferPointerWithoutChecks(indices32);
447 }
448
449 meshDataArray.Dispose();
450
451 Mesh.ApplyAndDisposeWritableMeshData(meshDataArray, meshes, MeshUpdateFlags.Default);
452
453 Physics.BakeMesh(mesh.GetInstanceID(), false);
454
455 CesiumCreditComponent creditComponent = new CesiumCreditComponent("text", "link", -1);
456 List<CesiumCreditComponent> creditComponents = new List<CesiumCreditComponent>();
457 creditComponents.Add(creditComponent);
458 int creditCount = creditComponents.Count;
459
460 CesiumCredit credit = new CesiumCredit();
461 credit = new CesiumCredit(creditComponents);
462 creditComponents = credit.components;
463
464 CesiumCreditSystem creditSystem = go.AddComponent<CesiumCreditSystem>();
465 creditSystem = CesiumCreditSystem.GetDefaultCreditSystem();
466 creditSystem.StartCoroutine(creditSystem.LoadImage("string"));
467
468 List<CesiumCredit> credits = creditSystem.onScreenCredits;
469 credits = creditSystem.popupCredits;
470 credits.Add(credit);
471 credits.Clear();
472
473 if (!creditSystem.HasLoadingImages())
474 {
475 creditSystem.BroadcastCreditsUpdate();
476 }
477
478 List<Texture2D> images = creditSystem.images;
479 int count = images.Count;
480
481 List<string> stringList = new List<string>();
482 stringList.Add("item");
483 stringList.Clear();
484 count = stringList.Count;
485
486 string test = string.Concat("string", "string2");
487 string[] stringArray = stringList.ToArray();
488 test = stringArray[0];
489 test = stringList[0];
490 test = string.Join(" ", stringArray);
491 string.IsNullOrEmpty("value");
492 string.IsNullOrWhiteSpace("value");
493
494 int length = test.Length;
495
496 int requestsPerCachePrune = CesiumRuntimeSettings.requestsPerCachePrune;
497 ulong maxItems = CesiumRuntimeSettings.maxItems;
498
499 Cesium3DTilesetLoadFailureDetails tilesetDetails
500 = new Cesium3DTilesetLoadFailureDetails(tileset, Cesium3DTilesetLoadType.Unknown, 0, "");
501 Cesium3DTileset.BroadcastCesium3DTilesetLoadFailure(tilesetDetails);
502
503 CesiumRasterOverlayLoadFailureDetails
504 overlayDetails = new CesiumRasterOverlayLoadFailureDetails(
505 overlay,
507 0,
508 "");
509 CesiumRasterOverlay.BroadcastCesiumRasterOverlayLoadFailure(overlayDetails);
510
511 tileset.BroadcastNewGameObjectCreated(new GameObject());
512
513 double3 cv3 = new double3();
514 cv3.x = cv3.y = cv3.z;
515 double3 cv4 = new double3(1.0, 2.0, 3.0);
516 double3x3 matrix3x3 = double3x3.identity;
517
518 go.GetComponent<CesiumGlobeAnchor>();
519 CesiumGlobeAnchor[] globeAnchors = go.GetComponentsInChildren<CesiumGlobeAnchor>();
520 globeAnchors = go.GetComponentsInChildren<CesiumGlobeAnchor>(true);
521 CesiumGlobeAnchor globeAnchor = globeAnchors[globeAnchors.Length - 1];
522 globeAnchor.positionGlobeFixed = globeAnchor.positionGlobeFixed;
523
524 CesiumSimplePlanarEllipsoidCurve planarEllipsoidCurve = CesiumSimplePlanarEllipsoidCurve.FromCenteredFixedCoordinates(
525 CesiumEllipsoid.WGS84,
526 new double3(0, 0, 0),
527 new double3(0, 0, 0));
528 CesiumEllipsoid ellipsoid = CesiumEllipsoid.WGS84;
529 ellipsoid.radii = new double3(0.0, 0.0, 0.0);
530 georeference.ellipsoid = ellipsoid;
531
532 globeAnchor = go.AddComponent<CesiumGlobeAnchor>();
533 globeAnchor.detectTransformChanges = globeAnchor.detectTransformChanges;
534 globeAnchor.adjustOrientationForGlobeWhenMoving = globeAnchor.adjustOrientationForGlobeWhenMoving;
535 globeAnchor.longitudeLatitudeHeight = globeAnchor.longitudeLatitudeHeight;
536 globeAnchor.localToGlobeFixedMatrix = globeAnchor.localToGlobeFixedMatrix;
537
538 // Private properties for use by the C++ class.
539 globeAnchor._georeference = null;
540 globeAnchor._localToGlobeFixedMatrix = new double4x4();
541 globeAnchor._localToGlobeFixedMatrixIsValid = true;
542 globeAnchor._lastLocalsAreValid = true;
543 globeAnchor._lastLocalPosition = new Vector3();
544 globeAnchor._lastLocalRotation = new Quaternion();
545 globeAnchor._lastLocalScale = new Vector3();
546 globeAnchor._lastEllipsoidRadii = new double3();
547 globeAnchor.UpdateGeoreferenceIfNecessary();
548
549 CesiumTileExcluder[] excluders = go.GetComponentsInParent<CesiumTileExcluder>();
550 CesiumTileExcluder excluder = excluders[0];
551 excluder.AddToTileset(null);
552 excluder.RemoveFromTileset(null);
553 excluder.ShouldExclude(new Cesium3DTile());
554 Cesium3DTile tile = new Cesium3DTile();
555 tile._transform = new double4x4();
556 tile._pTile = IntPtr.Zero;
557 tile._pTileEllipsoid = IntPtr.Zero;
558
559 Cesium3DTileInfo info;
560 info.usesAdditiveRefinement = true;
561 info.geometricError = 1.0f;
562 info.dimensions = Vector3.zero;
563 info.isTranslucent = true;
564
565 CesiumPointCloudRenderer renderer = go.AddComponent<CesiumPointCloudRenderer>();
566 renderer.tileInfo = info;
567
568 CesiumObjectPool<Mesh> meshPool = CesiumObjectPools.MeshPool;
569 Mesh pooledMesh = meshPool.Get();
570 meshPool.Release(pooledMesh);
571
572 System.Object myObject = null;
573
574 CesiumIntVec2 myIntVec2 = new CesiumIntVec2((SByte)1, (SByte)2);
575 myIntVec2 = new CesiumIntVec2((Int16)1, (Int16)2);
576 myIntVec2 = new CesiumIntVec2((Int32)1, (Int32)2);
577 myIntVec2 = new CesiumIntVec2((Int64)1, (Int64)2);
578 CesiumIntVec3 myIntVec3 = new CesiumIntVec3((SByte)1, (SByte)2, (SByte)3);
579 myIntVec3 = new CesiumIntVec3((Int16)1, (Int16)2, (Int16)3);
580 myIntVec3 = new CesiumIntVec3((Int32)1, (Int32)2, (Int32)3);
581 myIntVec3 = new CesiumIntVec3((Int64)1, (Int64)2, (Int64)3);
582 CesiumIntVec4 myIntVec4 = new CesiumIntVec4((SByte)1, (SByte)2, (SByte)3, (SByte)4);
583 myIntVec4 = new CesiumIntVec4((Int16)1, (Int16)2, (Int16)3, (Int16)4);
584 myIntVec4 = new CesiumIntVec4((Int32)1, (Int32)2, (Int32)3, (Int32)4);
585 myIntVec4 = new CesiumIntVec4((Int64)1, (Int64)2, (Int64)3, (Int64)4);
586 myObject = myIntVec2[0];
587 myObject = myIntVec3[0];
588 myObject = myIntVec4[0];
589 CesiumUintVec2 myUintVec2 = new CesiumUintVec2((Byte)1, (Byte)2);
590 myUintVec2 = new CesiumUintVec2((UInt16)1, (UInt16)2);
591 myUintVec2 = new CesiumUintVec2((UInt32)1, (UInt32)2);
592 myUintVec2 = new CesiumUintVec2((UInt64)1, (UInt64)2);
593 CesiumUintVec3 myUintVec3 = new CesiumUintVec3((Byte)1, (Byte)2, (Byte)3);
594 myUintVec3 = new CesiumUintVec3((UInt16)1, (UInt16)2, (UInt16)3);
595 myUintVec3 = new CesiumUintVec3((UInt32)1, (UInt32)2, (UInt32)3);
596 myUintVec3 = new CesiumUintVec3((UInt64)1, (UInt64)2, (UInt64)3);
597 CesiumUintVec4 myUintVec4 = new CesiumUintVec4((Byte)1, (Byte)2, (Byte)3, (Byte)4);
598 myUintVec4 = new CesiumUintVec4((UInt16)1, (UInt16)2, (UInt16)3, (UInt16)4);
599 myUintVec4 = new CesiumUintVec4((UInt32)1, (UInt32)2, (UInt32)3, (UInt32)4);
600 myUintVec4 = new CesiumUintVec4((UInt64)1, (UInt64)2, (UInt64)3, (UInt64)4);
601 myObject = myUintVec2[0];
602 myObject = myUintVec3[0];
603 myObject = myUintVec4[0];
604 CesiumIntMat2x2 myIntMat2 = new CesiumIntMat2x2(myIntVec2, myIntVec2);
605 CesiumIntMat3x3 myIntMat3 = new CesiumIntMat3x3(myIntVec3, myIntVec3, myIntVec3);
606 CesiumIntMat4x4 myIntMat4 = new CesiumIntMat4x4(myIntVec4, myIntVec4, myIntVec4, myIntVec4);
607 myObject = myIntMat2[0];
608 myObject = myIntMat3[0];
609 myObject = myIntMat4[0];
610 CesiumUintMat2x2 myUintMat2 = new CesiumUintMat2x2(myUintVec2, myUintVec2);
611 CesiumUintMat3x3 myUintMat3 = new CesiumUintMat3x3(myUintVec3, myUintVec3, myUintVec3);
612 CesiumUintMat4x4 myUintMat4 = new CesiumUintMat4x4(myUintVec4, myUintVec4, myUintVec4, myUintVec4);
613 myObject = myUintMat2[0];
614 myObject = myUintMat3[0];
615 myObject = myUintMat4[0];
616
617 int2 myInt2 = new int2(1, 2);
618 int3 myInt3 = new int3(1, 2, 3);
619 int4 myInt4 = new int4(1, 2, 3, 4);
620 uint2 myUint2 = new uint2(1, 2);
621 uint3 myUint3 = new uint3(1, 2, 3);
622 uint4 myUint4 = new uint4(1, 2, 3, 4);
623 float2 myFloat2 = new float2(1, 2);
624 float3 myFloat3 = new float3(1, 2, 3);
625 float4 myFloat4 = new float4(1, 2, 3, 4);
626 myObject = myFloat2[0];
627 myObject = myFloat3[0];
628 myObject = myFloat4[0];
629 double2 myDouble2 = new double2(1, 2);
630 double3 myDouble3 = new double3(1, 2, 3);
631 double4 myDouble4 = new double4(1, 2, 3, 4);
632 myObject = myDouble2[0];
633 myObject = myDouble3[0];
634 myObject = myDouble4[0];
635 int2x2 myInt2x2 = new int2x2(myInt2, myInt2);
636 int3x3 myInt3x3 = new int3x3(myInt3, myInt3, myInt3);
637 int4x4 myInt4x4 = new int4x4(myInt4, myInt4, myInt4, myInt4);
638 uint2x2 myUint2x2 = new uint2x2(myUint2, myUint2);
639 uint3x3 myUint3x3 = new uint3x3(myUint3, myUint3, myUint3);
640 uint4x4 myUint4x4 = new uint4x4(myUint4, myUint4, myUint4, myUint4);
641 float2x2 myFloat2x2 = new float2x2(myFloat2, myFloat2);
642 float3x3 myFloat3x3 = new float3x3(myFloat3, myFloat3, myFloat3);
643 float4x4 myFloat4x4 = new float4x4(myFloat4, myFloat4, myFloat4, myFloat4);
644 myObject = myFloat2x2[0];
645 myObject = myFloat3x3[0];
646 myObject = myFloat4x4[0];
647 double2x2 myDouble2x2 = new double2x2(myDouble2, myDouble2);
648 double3x3 myDouble3x3 = new double3x3(myDouble3, myDouble3, myDouble3);
649 double4x4 myDouble4x4 = new double4x4(myDouble4, myDouble4, myDouble4, myDouble4);
650 myObject = myDouble2x2[0];
651 myObject = myDouble3x3[0];
652 myObject = myDouble4x4[0];
653
654 CesiumMetadataValueType valueType = new CesiumMetadataValueType(
655 CesiumMetadataType.Invalid,
657 false);
658 valueType.type = CesiumMetadataType.Invalid;
659 valueType.componentType = CesiumMetadataComponentType.None;
660 valueType.isArray = false;
661
662 CesiumPropertyArray array = new CesiumPropertyArray();
663 array.elementValueType = new CesiumMetadataValueType();
664 array.values = new CesiumMetadataValue[10];
665 array.values[0] = new CesiumMetadataValue();
666 length = array.values.Length;
667
668 CesiumMetadataValue myValue = new CesiumMetadataValue();
669 myValue.SetObjectValue(false);
670 myValue.SetObjectValue((SByte)0);
671 myValue.SetObjectValue((Byte)0);
672 myValue.SetObjectValue((Int16)0);
673 myValue.SetObjectValue((UInt16)0);
674 myValue.SetObjectValue((Int32)0);
675 myValue.SetObjectValue((UInt32)0);
676 myValue.SetObjectValue((Int64)0);
677 myValue.SetObjectValue((UInt64)0);
678 myValue.SetObjectValue(0.0f);
679 myValue.SetObjectValue(0.0);
680 myValue.SetObjectValue(myIntVec2);
681 myValue.SetObjectValue(myIntVec3);
682 myValue.SetObjectValue(myIntVec4);
683 myValue.SetObjectValue(myUintVec2);
684 myValue.SetObjectValue(myUintVec3);
685 myValue.SetObjectValue(myUintVec4);
686 myValue.SetObjectValue(myFloat2);
687 myValue.SetObjectValue(myFloat3);
688 myValue.SetObjectValue(myFloat4);
689 myValue.SetObjectValue(myDouble2);
690 myValue.SetObjectValue(myDouble3);
691 myValue.SetObjectValue(myDouble4);
692 myValue.SetObjectValue(myIntMat2);
693 myValue.SetObjectValue(myIntMat3);
694 myValue.SetObjectValue(myIntMat4);
695 myValue.SetObjectValue(myUintMat2);
696 myValue.SetObjectValue(myUintMat3);
697 myValue.SetObjectValue(myUintMat4);
698 myValue.SetObjectValue(myFloat2x2);
699 myValue.SetObjectValue(myFloat3x3);
700 myValue.SetObjectValue(myFloat4x4);
701 myValue.SetObjectValue(myDouble2x2);
702 myValue.SetObjectValue(myDouble3x3);
703 myValue.SetObjectValue(myDouble4x4);
704 myValue.SetObjectValue("test");
705 myValue.SetObjectValue(array);
706 valueType = myValue.valueType;
707
708 myObject = myValue.objectValue;
709 CesiumMetadataValue.GetObjectAsBoolean(myObject);
710 CesiumMetadataValue.GetObjectAsSByte(myObject);
711 CesiumMetadataValue.GetObjectAsByte(myObject);
712 CesiumMetadataValue.GetObjectAsInt16(myObject);
713 CesiumMetadataValue.GetObjectAsUInt16(myObject);
714 CesiumMetadataValue.GetObjectAsInt32(myObject);
715 CesiumMetadataValue.GetObjectAsUInt32(myObject);
716 CesiumMetadataValue.GetObjectAsInt64(myObject);
717 CesiumMetadataValue.GetObjectAsUInt64(myObject);
718 CesiumMetadataValue.GetObjectAsFloat(myObject);
719 CesiumMetadataValue.GetObjectAsDouble(myObject);
720 CesiumMetadataValue.GetObjectAsCesiumIntVec2(myObject);
721 CesiumMetadataValue.GetObjectAsCesiumIntVec3(myObject);
722 CesiumMetadataValue.GetObjectAsCesiumIntVec4(myObject);
723 CesiumMetadataValue.GetObjectAsCesiumUintVec2(myObject);
724 CesiumMetadataValue.GetObjectAsCesiumUintVec3(myObject);
725 CesiumMetadataValue.GetObjectAsCesiumUintVec4(myObject);
726 CesiumMetadataValue.GetObjectAsFloat2(myObject);
727 CesiumMetadataValue.GetObjectAsFloat3(myObject);
728 CesiumMetadataValue.GetObjectAsFloat4(myObject);
729 CesiumMetadataValue.GetObjectAsDouble2(myObject);
730 CesiumMetadataValue.GetObjectAsDouble3(myObject);
731 CesiumMetadataValue.GetObjectAsDouble4(myObject);
732 CesiumMetadataValue.GetObjectAsCesiumIntMat2x2(myObject);
733 CesiumMetadataValue.GetObjectAsCesiumIntMat3x3(myObject);
734 CesiumMetadataValue.GetObjectAsCesiumIntMat4x4(myObject);
735 CesiumMetadataValue.GetObjectAsCesiumUintMat2x2(myObject);
736 CesiumMetadataValue.GetObjectAsCesiumUintMat3x3(myObject);
737 CesiumMetadataValue.GetObjectAsCesiumUintMat4x4(myObject);
738 CesiumMetadataValue.GetObjectAsFloat2x2(myObject);
739 CesiumMetadataValue.GetObjectAsFloat3x3(myObject);
740 CesiumMetadataValue.GetObjectAsFloat4x4(myObject);
741 CesiumMetadataValue.GetObjectAsDouble2x2(myObject);
742 CesiumMetadataValue.GetObjectAsDouble3x3(myObject);
743 CesiumMetadataValue.GetObjectAsDouble4x4(myObject);
744 CesiumMetadataValue.GetObjectAsString(myObject);
745
746 myValue.GetBoolean();
747 myValue.GetSByte();
748 myValue.GetByte();
749 myValue.GetInt16();
750 myValue.GetUInt16();
751 myValue.GetInt32();
752 myValue.GetUInt32();
753 myValue.GetInt64();
754 myValue.GetUInt64();
755 myValue.GetFloat();
756 myValue.GetDouble();
757 myValue.GetString();
758 myValue.GetArray();
759
760 CesiumPrimitiveFeatures primitiveFeatures = go.AddComponent<CesiumPrimitiveFeatures>();
761 primitiveFeatures = go.GetComponent<CesiumPrimitiveFeatures>();
762 CesiumFeatureIdSet[] sets = primitiveFeatures.featureIdSets;
763 sets = new CesiumFeatureIdSet[10];
764 sets[0] = new CesiumFeatureIdSet();
765 sets[0] = new CesiumFeatureIdSet(1);
766 sets[0].featureCount = 1;
767 sets[0].label = "label";
768 sets[0].nullFeatureId = 0;
769 sets[0].propertyTableIndex = 0;
770 sets[0].Dispose();
771
772 CesiumFeatureIdAttribute featureIdAttribute = new CesiumFeatureIdAttribute();
773 featureIdAttribute.status = featureIdAttribute.status;
774 featureIdAttribute.featureCount = 1;
775 featureIdAttribute.label = "label";
776 featureIdAttribute.nullFeatureId = 0;
777 featureIdAttribute.propertyTableIndex = 0;
778
779 CesiumFeatureIdTexture featureIdTexture = new CesiumFeatureIdTexture();
780 featureIdTexture.status = featureIdTexture.status;
781 featureIdTexture.featureCount = 1;
782 featureIdTexture.label = "label";
783 featureIdTexture.nullFeatureId = 0;
784 featureIdTexture.propertyTableIndex = 0;
785
786 primitiveFeatures.featureIdSets[0] = featureIdAttribute;
787 primitiveFeatures.featureIdSets[1] = featureIdTexture;
788
789 CesiumModelMetadata modelMetadata = go.AddComponent<CesiumModelMetadata>();
790 modelMetadata = go.GetComponent<CesiumModelMetadata>();
791 modelMetadata.propertyTables = modelMetadata.propertyTables;
792 modelMetadata.propertyTables[0] = modelMetadata.propertyTables[0];
793 length = modelMetadata.propertyTables.Length;
794
795 CesiumPropertyTable propertyTable = new CesiumPropertyTable();
796 propertyTable.status = CesiumPropertyTableStatus.Valid;
797 propertyTable.name = "";
798 propertyTable.count = 0;
799 propertyTable.properties = propertyTable.properties;
800 propertyTable.properties = new Dictionary<String, CesiumPropertyTableProperty>(10);
801 propertyTable.properties.Add("Test", new CesiumPropertyTableProperty());
802 propertyTable.DisposeProperties();
803
804 CesiumPropertyTableProperty property = new CesiumPropertyTableProperty();
805 property.status = property.status;
806 property.size = property.size;
807 property.arraySize = property.arraySize;
808 property.isNormalized = property.isNormalized;
809 property.offset = myValue;
810 property.scale = myValue;
811 property.min = myValue;
812 property.max = myValue;
813 property.noData = myValue;
814 property.defaultValue = myValue;
815 property.valueType = property.valueType;
816
817 RaycastHit hitInfo = new RaycastHit();
818 primitiveFeatures = hitInfo.transform.GetComponent<CesiumPrimitiveFeatures>();
819 int triangleIndex = hitInfo.triangleIndex;
820 Vector3 hitPoint = hitInfo.point;
821
822 Vector2 textureCoordinate = new Vector2();
823 textureCoordinate.x = textureCoordinate.y;
824 hitPoint = m2.MultiplyPoint3x4(hitPoint);
825
826 CesiumIonServer server = CesiumIonServer.defaultServer;
827 server.serverUrl = "";
828 server.apiUrl = "";
829 server.oauth2ApplicationID = 1;
830 server.defaultIonAccessToken = "";
831 server.defaultIonAccessTokenId = "";
832 server.serverUrlThatIsLoadingApiUrl = "";
833
834 CesiumCartographicPolygon polygon = go.GetComponent<CesiumCartographicPolygon>();
835 polygon.enabled = polygon.enabled;
836
837 List<double2> points = polygon.GetCartographicPoints(m);
838 len = points.Count;
839 myDouble2 = points[0];
840
841 CesiumPolygonRasterOverlay polygonRasterOverlay = go.GetComponent<CesiumPolygonRasterOverlay>();
842 List<CesiumCartographicPolygon> polygons = polygonRasterOverlay.polygons;
843 polygonRasterOverlay.excludeSelectedTiles = polygonRasterOverlay.excludeSelectedTiles;
844 polygonRasterOverlay.invertSelection = polygonRasterOverlay.invertSelection;
845 polygon = polygons[0];
846 len = polygons.Count;
847
848 TestGltfModel testModel = new TestGltfModel();
849
850 bool[] boolArray = { };
851 UInt16[] uint16Array = { };
852 int[] intArray = { };
853 double[] doubleArray = { };
854 float2[] float2Array = { };
855 float3[] float3Array = { };
856 float4[] float4Array = { };
857 float2x2[] float2x2Array = { };
858 float3x3[] float3x3Array = { };
859 float4x4[] float4x4Array = { };
860
861 bool boolValue = boolArray[0];
862 UInt16 uint16Value = uint16Array[0];
863 int intValue = intArray[0];
864 double doubleValue = doubleArray[0];
865 myFloat2 = float2Array[0];
866 myFloat3 = float3Array[0];
867 myFloat4 = float4Array[0];
868 myFloat2x2 = float2x2Array[0];
869 myFloat3x3 = float3x3Array[0];
870 myFloat4x4 = float4x4Array[0];
871
872 length = boolArray.Length;
873 length = uint16Array.Length;
874 length = intArray.Length;
875 length = doubleArray.Length;
876 length = stringArray.Length;
877 length = float2Array.Length;
878 length = float3Array.Length;
879 length = float4Array.Length;
880 length = float2x2Array.Length;
881 length = float3x3Array.Length;
882 length = float4x4Array.Length;
883
884 CesiumCameraManager manager = CesiumCameraManager.GetOrCreate(go);
885 manager.useSceneViewCameraInEditor = false;
886 manager.useMainCamera = false;
887 Camera camera = null;
888 for (int i = 0; i < manager.additionalCameras.Count; ++i)
889 {
890 camera = manager.additionalCameras[i];
891 }
892
893 TaskCompletionSource<CesiumSampleHeightResult> promise = new TaskCompletionSource<CesiumSampleHeightResult>();
894 promise.SetException(new Exception("message"));
895 CesiumSampleHeightResult result = new CesiumSampleHeightResult();
896 result.longitudeLatitudeHeightPositions = null;
897 result.sampleSuccess = null;
898 result.warnings = null;
899 promise.SetResult(result);
900 Task<CesiumSampleHeightResult> task = promise.Task;
901
902 double3[] positions = null;
903 for (int i = 0; i < positions.Length; ++i)
904 {
905 positions[i] = positions[i];
906 }
907
908#if UNITY_EDITOR
909 SceneView sv = SceneView.lastActiveSceneView;
910 sv.pivot = sv.pivot;
911 sv.rotation = sv.rotation;
912 Camera svc = sv.camera;
913 svc.transform.SetPositionAndRotation(p, q);
914
915 bool isPlaying = EditorApplication.isPlaying;
916 EditorApplication.update += () => { };
917
918 EditorUtility.SetDirty(null);
919#endif
920
921 TestReinterop.ThrowAnException();
922 System.Exception exception = null;
923 var message = exception.Message;
924 }
925 }
926}
MetadataType
Identifies the type of a property.
CesiumMetadataType
Identifies the type of a property in EXT_structural_metadata.
CesiumPropertyTableStatus
Reports the status of a CesiumPropertyTable.
Cesium3DTilesetLoadType
The type of Cesium3DTileset load that encountered an error.
CesiumRasterOverlayLoadType
The type of CesiumRasterOverlay load that encountered an error.
CesiumMetadataComponentType
Identifies the component type of a property in EXT_structural_metadata.