code: def getFeatureID(self, location):
      
      if not self.contains(location):
        return self.EMPTY_FEATURE  # random feature
  
      numFaces = sum(
        [self.almostEqual(abs(coord), self.dimensions[i] / 2.) \
         for i, coord in enumerate(location)]
      )
  
      if numFaces == 1:
        return self.FLAT
      if numFaces == 2:
        return self.EDGE
      if numFaces == 3:
        return self.POINTY
docs: There are three possible features for a box:
        - flat for a face
        - pointy for a vertex
        - edge