def METHOD_NAME(self):
    """Recomputes the curve after its properties have changed.
    Normally it is not necessary for the user to call this
    directly."""
    if not self.showRope:
        return
    numVerts = len(self.verts)
    self.curve.reset(numVerts)
    self.curve.setOrder(self.order)
    defaultNodePath = None
    defaultPoint = (0, 0, 0)
    defaultColor = (1, 1, 1, 1)
    defaultThickness = 1
    useVertexColor = self.ropeNode.getUseVertexColor()
    useVertexThickness = self.ropeNode.getUseVertexThickness()
    vcd = self.ropeNode.getVertexColorDimension()
    vtd = self.ropeNode.getVertexThicknessDimension()
    for i in range(numVerts):
        v = self.verts[i]
        if isinstance(v, tuple):
            nodePath, point = v
            color = defaultColor
            thickness = defaultThickness
        else:
            nodePath = v.get('node', defaultNodePath)
            point = v.get('point', defaultPoint)
            color = v.get('color', defaultColor)
            thickness = v.get('thickness', defaultThickness)
        if isinstance(point, tuple):
            if len(point) >= 4:
                self.curve.setVertex(i, VBase4(point[0], point[1], point[2], point[3]))
            else:
                self.curve.setVertex(i, VBase3(point[0], point[1], point[2]))
        else:
            self.curve.setVertex(i, point)
        if nodePath:
            self.curve.setVertexSpace(i, nodePath)
        if useVertexColor:
            self.curve.setExtendedVertex(i, vcd + 0, color[0])
            self.curve.setExtendedVertex(i, vcd + 1, color[1])
            self.curve.setExtendedVertex(i, vcd + 2, color[2])
            self.curve.setExtendedVertex(i, vcd + 3, color[3])
        if useVertexThickness:
            self.curve.setExtendedVertex(i, vtd, thickness)
    if self.knots is not None:
        for i in range(len(self.knots)):
            self.curve.setKnot(i, self.knots[i])
    self.ropeNode.resetBound(self)