Skip to content
Snippets Groups Projects
Select Git revision
  • v3.3.6
  • CyclesPhi-dev default
  • blenderphi-v4.5-v1
  • main protected
  • blender-v4.5-release
  • cycles-v4.5-aurora
  • anari-v4.5
  • anari3
  • anari2
  • anari
  • blender-v4.4-release
  • anary-cycles-device
  • xml-exporter-main
  • blender-v4.3-release
  • temp-sculpt-dyntopo
  • blender-v3.3-release
  • brush-assets-project
  • pr-extensions-tidy-space
  • blender-v4.0-release
  • universal-scene-description
  • blender-v4.1-release
  • v4.4.0
  • v4.2.8
  • v3.6.21
  • v4.2.7
  • v3.6.20
  • v4.2.6
  • v4.3.2
  • v4.2.5
  • v3.6.19
  • v4.3.1
  • v4.3.0
  • v3.6.18
  • v4.2.4
  • v3.6.17
  • v4.2.3
  • v3.6.16
  • v4.2.2
  • v4.2.1
  • v3.6.15
  • v4.2.0
41 results

editmesh.c

Blame
  • KDTree.java NaN GiB
    package azgracompress.kdtree;
    
    import java.util.Arrays;
    
    public class KDTree {
        private final int maximumBucketSize;
        private final KDNode root;
    
        private final int dimension;
        private final int totalNodeCount;
        private final int terminalNodeCount;
    
        public static class SearchInfo {
            private double currentClosestDistance;
            private int[] currentClosestRecord = null;
            private final double[] coordinateUpperBound;
            private final double[] coordinateLowerBound;
            private final int dimension;
    
            public SearchInfo(final int dimension) {
                this.dimension = dimension;
                currentClosestDistance = Double.POSITIVE_INFINITY;
                coordinateUpperBound = new double[dimension];
                coordinateLowerBound = new double[dimension];
                Arrays.fill(coordinateLowerBound, Double.NEGATIVE_INFINITY);
                Arrays.fill(coordinateUpperBound, Double.POSITIVE_INFINITY);
            }
    
            public int getDimension() {
                return dimension;
            }
    
            public double getCurrentClosestDistance() {
                return currentClosestDistance;
            }
    
            public void setCurrentClosestDistance(double currentClosestDistance) {
                this.currentClosestDistance = currentClosestDistance;
            }
    
            public int[] getCurrentClosestRecord() {
                return currentClosestRecord;
            }
    
            public void setCurrentClosestRecord(int[] currentClosestRecord) {
                this.currentClosestRecord = currentClosestRecord;
            }
    
            public double[] getUpperBounds() {
                return coordinateUpperBound;
            }
    
            public double[] getLowerBounds() {
                return coordinateLowerBound;
            }
        }
    
        public KDTree(final KDNode root,
                      final int dimension,
                      final int maximumBucketSize,
                      final int totalNodeCount,
                      final int terminalNodeCount) {
            this.root = root;
            this.dimension = dimension;
            this.maximumBucketSize = maximumBucketSize;
            this.totalNodeCount = totalNodeCount;
            this.terminalNodeCount = terminalNodeCount;
        }
    
        public int[] findNearestNeighbor(final int[] queryRecord) {
            // TODO(Moravec): Read more about Ball Within Bounds and Bounds Overlap Ball
            SearchInfo searchInfo = new SearchInfo(dimension);
            root.findNearestNeighbor(queryRecord, searchInfo);
            return searchInfo.currentClosestRecord;
        }
    
        public int getTotalNodeCount() {
            return totalNodeCount;
        }
    
        public int getTerminalNodeCount() {
            return terminalNodeCount;
        }
    }