def reparameterize()

in common/spline.py [0:0]


    def reparameterize(self, points_per_unit, smoothing_factor):
        """
        Reparameterize this spline to have equal-length segments.
        """
        if self.closed:
            # Round to nearest integer
            num_steps = int(np.ceil(self.length() * points_per_unit))
            dists = np.linspace(0, self.length(), num_steps, endpoint=False)
        else:
            # Shorten the spline a little bit
            dists = np.arange(0, self.length(), step=1/points_per_unit)
            
        points = self.interpolate(dists)
        points_smooth = scipy.ndimage.filters.gaussian_filter1d(points.T, points_per_unit*smoothing_factor).T
        
        new_spline = Spline(points, closed=self.closed)
        new_spline._compute_tangents(points_smooth)
        for track_name, track_val in self.tracks.items():
            if track_name in ['tangent', 'curvature']:
                continue
            new_track = self.interpolate(dists, track=track_name)
            if track_val[1] == 'linear':
                new_track = scipy.ndimage.filters.gaussian_filter1d(new_track.T, points_per_unit*smoothing_factor).T
            new_spline.add_track(track_name, new_track, interp_mode=track_val[1])
        return new_spline