def getQLColliderNode(target):
    """
    get the Qualoth qlColliderShape node related to the target.
    :param target: `PyNode` node from where to get the related qlColliderShape node.
    :return: `PyNode`
    """
    if target.nodeType() == "transform":
        target = target.getShape()
        if not target: return None

    if target.nodeType() == "qlColliderShape":
        return target
    elif target.nodeType() == "mesh":
        qlColliderNode = target.inMesh.connections(shapes=True,
                                                type="qlColliderShape")
        qlTriangulate = target.worldMesh.connections(type="qlTriangulate")
        if qlTriangulate:
            qlColliderNode = qlTriangulate[0].output.connections(shapes=True,
                                                        type="qlColliderShape")
        return qlColliderNode[0] if qlColliderNode else None
    else:
        return None