public void Execute(int featureIndex) { NativeArray <float3> pointCloud = new NativeArray <float3>(fragmentArray.numFragments, Allocator.Temp); for (int fragmentIndex = 0; fragmentIndex < fragmentArray.numFragments; ++fragmentIndex) { pointCloud[fragmentIndex] = fragmentArray.Feature(fragmentIndex, transformedIndex + featureIndex); } Builder.BoundingBox boundingBox = Builder.BoundingBox.Create(pointCloud); boundingBoxes[featureIndex] = boundingBox; }
public void Execute(int featureIndex) { float minimum = float.MaxValue; float maximum = float.MinValue; for (int fragmentIndex = 0; fragmentIndex < fragmentArray.numFragments; ++fragmentIndex) { float3 feature = fragmentArray.Feature(fragmentIndex, featureIndex); float length = math.length(feature); minimum = math.min(minimum, length); maximum = math.max(maximum, length); } float range = maximum - minimum; quantizers[featureIndex] = Builder.Quantizer.Create(minimum, range); }