public bool RequestMeshAsync(SurfaceData dataRequest, SurfaceDataReadyDelegate onDataReady) { if (onDataReady == null) { throw new ArgumentNullException("onDataReady"); } if (dataRequest.outputMesh == null) { throw new ArgumentNullException("dataRequest.outputMesh"); } if (dataRequest.outputAnchor == null) { throw new ArgumentNullException("dataRequest.outputAnchor"); } if ((dataRequest.outputCollider == null) && dataRequest.bakeCollider) { throw new ArgumentException("dataRequest.outputCollider must be non-NULL if dataRequest.bakeCollider is true", "dataRequest.outputCollider"); } if (dataRequest.trianglesPerCubicMeter < 0.0) { throw new ArgumentException("dataRequest.trianglesPerCubicMeter must be greater than zero", "dataRequest.trianglesPerCubicMeter"); } bool flag = Internal_AddToWorkQueue(this.m_Observer, onDataReady, dataRequest.id.handle, dataRequest.outputMesh, dataRequest.outputAnchor, dataRequest.outputCollider, dataRequest.trianglesPerCubicMeter, dataRequest.bakeCollider); if (!flag) { Debug.LogError("RequestMeshAsync has failed. Is your surface ID valid?"); } return(flag); }
private static void InvokeSurfaceDataReadyEvent(SurfaceDataReadyDelegate onDataReady, int surfaceId, MeshFilter outputMesh, WorldAnchor outputAnchor, MeshCollider outputCollider, float trisPerCubicMeter, bool bakeCollider, bool outputWritten, float elapsedBakeTimeSeconds) { if (onDataReady != null) { SurfaceData data; data.id.handle = surfaceId; data.outputMesh = outputMesh; data.outputAnchor = outputAnchor; data.outputCollider = outputCollider; data.trianglesPerCubicMeter = trisPerCubicMeter; data.bakeCollider = bakeCollider; onDataReady(data, outputWritten, elapsedBakeTimeSeconds); } }
extern private static bool Internal_AddToWorkQueue(IntPtr observer, SurfaceDataReadyDelegate onDataReady, int surfaceId, MeshFilter filter, WorldAnchor wa, MeshCollider mc, float trisPerCubicMeter, bool createColliderData);
private static extern bool Internal_AddToWorkQueue(IntPtr observer, SurfaceDataReadyDelegate onDataReady, int surfaceId, MeshFilter filter, WorldAnchor wa, MeshCollider mc, float trisPerCubicMeter, bool createColliderData);
public bool RequestMeshAsync(SurfaceData dataRequest, SurfaceDataReadyDelegate onDataReady) { if (onDataReady == null) { throw new ArgumentNullException("onDataReady"); } if (dataRequest.outputMesh == null) { throw new ArgumentNullException("dataRequest.outputMesh"); } if (dataRequest.outputAnchor == null) { throw new ArgumentNullException("dataRequest.outputAnchor"); } if ((dataRequest.outputCollider == null) && dataRequest.bakeCollider) { throw new ArgumentException("dataRequest.outputCollider must be non-NULL if dataRequest.bakeCollider is true", "dataRequest.outputCollider"); } if (dataRequest.trianglesPerCubicMeter < 0.0) { throw new ArgumentException("dataRequest.trianglesPerCubicMeter must be greater than zero", "dataRequest.trianglesPerCubicMeter"); } bool flag = Internal_AddToWorkQueue(this.m_Observer, onDataReady, dataRequest.id.handle, dataRequest.outputMesh, dataRequest.outputAnchor, dataRequest.outputCollider, dataRequest.trianglesPerCubicMeter, dataRequest.bakeCollider); if (!flag) { Debug.LogError("RequestMeshAsync has failed. Is your surface ID valid?"); } return flag; }