static public void FromVtArray(VtVec3fArray input, ref UnityEngine.Vector3[] output) { if (output.Length != input.size()) { output = UsdIo.ArrayAllocator.Malloc <UnityEngine.Vector3>(input.size()); } unsafe { fixed(UnityEngine.Vector3 *p = output) { input.CopyToArray((IntPtr)p); } } }
// Convenience API: generates garbage, do not use when performance matters. static public UnityEngine.Vector3[] FromVtArray(VtVec3fArray input) { var output = UsdIo.ArrayAllocator.Malloc <UnityEngine.Vector3>(input.size());; FromVtArray(input, ref output); return(output); }
static public UnityEngine.Color[] FromVtArray(VtVec3fArray rgbIn, VtFloatArray alphaIn) { var ret = UsdIo.ArrayAllocator.Malloc <UnityEngine.Color>(rgbIn.size()); float[] alpha = FromVtArray(alphaIn); UnityEngine.Vector3[] rgb = FromVtArray(rgbIn); for (int i = 0; i < rgbIn.size(); i++) { ret[i].r = rgb[i][0]; ret[i].g = rgb[i][1]; ret[i].b = rgb[i][2]; ret[i].a = alpha[i]; } return(ret); }
static public List <UnityEngine.Vector3> ListFromVtArray(VtVec3fArray input) { var output = UsdIo.ArrayAllocator.Malloc <UnityEngine.Vector3>(input.size()); unsafe { fixed(UnityEngine.Vector3 *p = output) { input.CopyToArray((IntPtr)p); } } return(output.ToList()); }