diff --git a/aabbtree.py b/aabbtree.py index 45ba122..dc6bd09 100644 --- a/aabbtree.py +++ b/aabbtree.py @@ -160,6 +160,21 @@ def volume(self): vol *= ub - lb return vol + @property + def corners(self): + """list: corner points of AABB""" + + n_dim = len(self.limits) + f = '{:0' + str(n_dim) + 'b}' + + n_corners = 2 ** n_dim + corners = [] + for i in range(n_corners): + inds = [int(s) for s in f.format(i)] # convert i to binary list + corner = [self.limits[d][ind] for d, ind in enumerate(inds)] + corners.append(corner) + return corners + def overlaps(self, aabb): """Determine if two AABBs overlap diff --git a/setup.py b/setup.py index 50cca1f..f241561 100644 --- a/setup.py +++ b/setup.py @@ -15,7 +15,7 @@ def read(fname): setup( name='aabbtree', - version='2.3.1', + version='2.4.0', license='MIT', description='Pure Python implementation of d-dimensional AABB tree.', long_description=read('README.rst'), @@ -45,6 +45,7 @@ def read(fname): 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', 'Topic :: Scientific/Engineering', 'Topic :: Scientific/Engineering :: Mathematics', ],