def METHOD_NAME(self):
    """Overload this to implement custom sampling strategies."""
    t = [0.0]*3
    for i,bnd in enumerate(self.bound[:3]):
        if math.isnan(bnd[0]):
            t[i] = math.log(random.random())
            if random.random() < 0.5:
                t[i] *= -1.0
        else:
            t[i] = random.uniform(bnd[0],bnd[1])
    if self.rotationDomain is None:
        R = so3.METHOD_NAME()
    else:
        R0,arange = self.rotationDomain
        if hasattr(arange,'__iter__'):
            #euler angles
            r,p,y = random.uniform(arange[0]),random.uniform(arange[1]),random.uniform(arange[2])
            Rrand = so3.from_rpy((r,p,y))
        else:
            axis = random.gauss(0,1),random.gauss(0,1),random.gauss(0,1)
            axis = vectorops.uniform(axis)
            angle = random.uniform(0,arange)
            Rrand = so3.rotation(axis,angle)
        R = so3.mul(R0,Rrand)
    return self.transformToConfig((R,t))