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);
        }