public ARSharedData SaveSharedData() { long dataSize = GetSaveLimit(); long usedSize = 0; ARSharedData.ARRawData rawdata = new ARSharedData.ARRawData(dataSize); NDKARStatus status = NDKAPI.HwArSession_save(m_ndkSession.SessionHandle, rawdata.m_pinAddr, dataSize, ref usedSize); ARExceptionAdapter.ExtractException(status); rawdata.DataSize = usedSize > 0? usedSize : 0; return(new ARSharedData(rawdata)); }
public ARSharedData SerializeAnchors(List <ARAnchor> anchorList, bool isNeedAlign) { long dataSize = GetSerializeAnchorsLimit(); long usedSize = 0; IntPtr anchorListHandle = m_ndkSession.AnchorAdapter.CreateList(); foreach (ARAnchor anchor in anchorList) { m_ndkSession.AnchorAdapter.AddListItem(anchorListHandle, anchor.m_anchorHandle); } ARSharedData.ARRawData rawData = new ARSharedData.ARRawData(dataSize); NDKARStatus status = NDKAPI.HwArSession_serializeAnchors(m_ndkSession.SessionHandle, anchorListHandle, isNeedAlign, rawData.m_pinAddr, dataSize, ref usedSize); ARExceptionAdapter.ExtractException(status); rawData.DataSize = usedSize; return(new ARSharedData(rawData)); }