unsafe public AnchorRelevance[] GetSupportRelevances() { int numSupports = FrozenWorld_GetNumSupports(); checkError(); var res = new AnchorRelevance[numSupports]; if (numSupports > 0) { FrozenWorld_Support *fws = stackalloc FrozenWorld_Support[numSupports]; numSupports = FrozenWorld_GetSupports(numSupports, fws); checkError(); for (int i = 0; i < numSupports; i++) { Debug.Assert(FtoU(fws[i].attachmentPoint.locationFromAnchor).Equals(Vector3.zero), "delocalized support not yet implemented"); var anchorId = (AnchorId)fws[i].attachmentPoint.anchorId; Debug.Assert(!Array.Exists(res, x => x.anchorId == anchorId), "multiple supports per anchor not yet implemented"); res[i] = new AnchorRelevance() { anchorId = anchorId, relevance = fws[i].relevance }; } } return(res); }
[DllImport("FrozenWorldPlugin")] public static extern void FrozenWorld_SetSupports(int numSupports, FrozenWorld_Support *supports);
[DllImport("FrozenWorldPlugin")] public static extern int FrozenWorld_GetSupports(int supportsBufferSize, FrozenWorld_Support *supportsOut);