úÎ!;ï8»     Safe"34568V7L OctreeIEnumerated type to indicate octants in 3D-space relative to given center.Octree!Datatype for nodes within Octree.Octreedistance between two vectorsOctree^Internal method that gives octant of a first vector relative to the second vector as a center.Octree[Internal method that joins result of three coordinate comparisons and makes an octant name  OctreeaThis function converts octant name to a function that steps down in an Octree towards this octantOctree²Function that splits octant name into three boolean values, depending of sign of a relative coordinate in that octant. | (Coordinate is relative to a split point within Octree.)OctreeØInternal function that finds a lower bound for a distance between a point of relative coordinates, | and octant of given name. It works only when coordinates of a given point are all positive. | It is used only by ÿ , which respectively changes octant name depending of signs of | relative coordinates. here we assume that a, b, c > 0 (otherwise we will take abs, and correspondingly invert results) same octant dp = difference between given point and the center of Octree nodeOctreeList of all octant names.Octree*Internal function that makes code clearer.OctreejFinds a minimum bounds for a distance between a given point | in relative coordinates and a given octant.Octree]Toggles octant names depending on a signs of vector coordinates | for use in octantDistance.OctreegGiven a point in relative coordinates, gives list of all octants and minimum distances from this point.Octreeœsplits a list of vectors and "payload" tuples | into a tuple with elements destined for different octants. FIXME: VERY IMPORTANT - add prop_splitBy vs cmpOctreeRComputes a center of mass for a given list of vectors - used to find a splitPoint.Octree.Helper function to map over an 8-element tupleOctree7Maximum number of elements before Octree leaf is split.Octree9Creates an Octree from a list of (index, payload) tuples.Octree»Internal method, that splits a list into octants depending on coordinates, | and then applies a specified function to each of these sublists, | in order to create subnodes of the OctreeOctree[Internal method that prepends contents of the given subtree to a list | given as argument.OctreebCreates an Octree from list, trying to keep split points near centers | of mass for each subtree.Octree\Finds a path to a Leaf where a given point should be, | and returns a list of octant names.OctreeuApplies a given function to a node specified by a path (list of octant names), | and then returns a modified Octree.OctreeˆInserts a point into an Octree. | NOTE: insert accepts duplicate points, but lookup would not find them - use withinRange in such case.OctreedDeletes a point from an Octree. | NOTE: If there are duplicate points, it only deletes one of them.Octree…Deletes a point from an Octree with the provided equality check. | NOTE: If there are duplicate points, it only deletes one of them. Octree¥Internal: finds candidates for nearest neighbour lazily for each octant; | they are returned in a list of (octant, min. bound for distance, Maybe candidate) tuples.Octree*Finds a given point, if it is in the tree. Octree*Finds nearest neighbour for a given point.!OctreeIInternal method that picks from a given list a point closest to argument, OctreePReturns all points within Octree that are within a given distance from argument./ "#$%&'()*+,-./012345678 ! 9 SafeV8O   :      !"#$%&'()*+,-./0123456789:;<=%Octree-0.6.0.1-1mBkXc506Lk2ACYm3j0O2O Data.OctreeData.Octree.InternalOctreeVector3distfromListtoListinsertdeletedeleteBylookupnearest withinRangedepthsizeODircmpjoinStep octreeStep splitStepoctantDistance'octantDistance allOctantsxortoggleoctantDistancessplitBy massCentertmap leafLimitsplitBy'toList'pathTo applyByPath candidates' pickClosestSWDSEDNWDNEDSWUSEUNWUNEUNodeLeafsplitnwunwdneunedswuswdseusedunLeafv3xv3yv3zsubnodes