public bool RequestMeshAsync(SurfaceData dataRequest, SurfaceObserver.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 ((double)dataRequest.trianglesPerCubicMeter < 0.0)
{
throw new ArgumentException("dataRequest.trianglesPerCubicMeter must be greater than zero", "dataRequest.trianglesPerCubicMeter");
}
bool flag = SurfaceObserver.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);
}