def METHOD_NAME(nnManager, keypointsLimbs, frames):
    for name, frame in frames:
        if name == "color" and nnManager.source == "color" and not nnManager._fullFov:
            scaleFactor = frame.shape[0] / nnManager.inputSize[1]
            offsetW = int(frame.shape[1] - nnManager.inputSize[0] * scaleFactor) // 2
            def scale(point):
                return int(point[0] * scaleFactor) + offsetW, int(point[1] * scaleFactor)
        elif name in (Previews.color.name, Previews.nnInput.name, "host"):
            scaleH = frame.shape[0] / nnManager.inputSize[1]
            scaleW = frame.shape[1] / nnManager.inputSize[0]
            def scale(point):
                return int(point[0] * scaleW), int(point[1] * scaleH)
        else:
            continue
        if len(keypointsLimbs) == 3:
            detectedKeypoints = keypointsLimbs[0]
            personwiseKeypoints = keypointsLimbs[1]
            keypointsList = keypointsLimbs[2]
            for i in range(nPoints):
                for j in range(len(detectedKeypoints[i])):
                    cv2.circle(frame, scale(detectedKeypoints[i][j][0:2]), 5, colors[i], -1, cv2.LINE_AA)
            for i in range(17):
                for n in range(len(personwiseKeypoints)):
                    index = personwiseKeypoints[n][np.array(POSE_PAIRS[i])]
                    if -1 in index:
                        continue
                    B = np.int32(keypointsList[index.astype(int), 0])
                    A = np.int32(keypointsList[index.astype(int), 1])
                    cv2.line(frame, scale((B[0], A[0])), scale((B[1], A[1])), colors[i], 3, cv2.LINE_AA)