~mrol-dev/mrol/trunk

« back to all changes in this revision

Viewing changes to mrol_mapping/occupiedlist.py

  • Committer: Julian Ryde
  • Date: 2012-02-27 18:55:11 UTC
  • Revision ID: julian_ryde-20120227185511-0pmdt5hkzjaykyzt
Fixed code so tests pass.

Show diffs side-by-side

added added

removed removed

Lines of Context:
236
236
class OccupiedList:
237
237
    """ stores a set of voxel indices list at a single resolution """
238
238
 
239
 
    def __init__(self, resolution, maxvoxels=1e6, useraddfn=None, use_bloom=True): 
 
239
    def __init__(self, resolution, maxvoxels=1e6, use_bloom=True): 
240
240
        self.resolution = resolution
241
241
 
242
242
        # voxels is a dictionary with keys of np.int64 IDs that are the result
243
243
        # of packing 4 np.int16
244
244
        # the content of the dictionary is either an np.int16 holding
245
 
        # increments, or a userdefined structure
246
 
        self.useraddfn = useraddfn
247
 
        if self.useraddfn:
248
 
            self._voxels = collections.defaultdict(default_vox_content)
249
 
            self.update_func = self._update_voxel_func_user
250
 
        else:
251
 
            #self._voxels = collections.defaultdict(int)
252
 
            self._voxels = collections.Counter()
253
 
            self.update_func = self._update_voxel_func_simple
 
245
        # increments, or TODO a userdefined structure
 
246
        self._voxels = collections.Counter()
254
247
        self.lattice = 'cubic' # should be one of the latticefuncs
255
248
        self._use_bloom = use_bloom
256
249
        self.use_KDE = False
385
378
        # cell
386
379
        return X * Y * Z
387
380
 
 
381
    # this function is not used anymore but is kept for reference when adding
 
382
    # capability to store other data such as RGB.
388
383
    def _update_voxel_func_user(self, ID, increment, userdata):
389
384
        vox = self._voxels[ID]
390
385
        self._voxels[ID] = np.hstack([vox[0] + increment, self.useraddfn(vox[1:], userdata)])