code: def getFeatureID(self, location):
      
      if not self.contains(location):
        return self.EMPTY_FEATURE
  
      if self.almostEqual(abs(location[2]), self.height / 2.):
        if self.almostEqual(location[0] ** 2 + location[1] ** 2,
                            self.radius ** 2):
          return self.CYLINDER_EDGE
        else:
          return self.FLAT
      else:
        return self.CYLINDER_SURFACE
docs: Returns the feature index associated with the provided location.
  
      Three possibilities:
        - top discs
        - edges
        - lateral surface