code: def buffer(self, distance):
          
          distance = float(distance)
  
          # start with current height
          height = self.primitive.height
          # if current height is negative offset by negative amount
          height += np.sign(height) * 2.0 * distance
  
          buffered = Extrusion(
              transform=self.primitive.transform.copy(),
              polygon=self.primitive.polygon.buffer(distance),
              height=height)
  
          # slide the stock along the axis
          buffered.slide(-np.sign(height) * distance)
  
          return buffered
docs: Return a new Extrusion object which is expanded in profile and
          in height by a specified distance.
  
          Returns
          ----------
          buffered: Extrusion object