Calculates the position at the inputed location.
        
        :param      location        <XConnectionLocation>
        :param      fixedX          <float> || None
        :param      fixedY          <float> || None
            
        :return     <QPointF>

def positionAt( self, location, fixedX = None, fixedY = None ):
        """
        Calculates the position at the inputed location.
        
        :param      location        <XConnectionLocation>
        :param      fixedX          <float> || None
        :param      fixedY          <float> || None
            
        :return     <QPointF>
        """
        # figure the position information
        rect    = self.sceneRect()
        
        if rect.height() < self.minimumHeight():
            rect.setHeight(self.minimumHeight())
        
        if rect.width() < self.minimumWidth():
            rect.setWidth(self.minimumWidth())
        
        cx      = rect.center().x()
        cy      = rect.center().y()
        x       = cx
        y       = cy
            
        if ( location == XConnectionLocation.Left ):
            x = rect.left()
        
        # define a right-based x
        elif ( location & XConnectionLocation.Right ):
            x = rect.right()
        
        # define a top-based y
        elif ( location & XConnectionLocation.Top ):
            y = rect.top()
        
        # define a bottom-based y
        elif location & XConnectionLocation.Bottom:
            y = rect.bottom()
        
        # use the fixed locations if provided
        if fixedX != None:
            x = rect.x() + fixedX
        if fixedY != None:
            y = rect.y() + fixedY
        
        return QPointF(x, y)