<commit_before>pc.extend(pc, function () {
    var Key = function Key(time, position, rotation, scale) {
        this.time = time;
        this.position = position;
        this.rotation = rotation;
        this.scale = scale;
    };

    /**
     * @private
     * @name pc.Node
     * @class A animation node has a name and contains an array of keyframes.
     * @description Create a new animation node
     * @returns {pc.Node} A new pc.Node.
     */
    var Node = function Node() {
        this._name = "";
        this._keys = [];
    };

    /**
     * @name pc.Animation
     * @class An animation is a sequence of keyframe arrays which map to the nodes of a skeletal hierarchy.
     * It controls how the nodes of the hierarchy are transformed over time.
     * @returns {pc.Animation} A new pc.Animation object.
     */
    var Animation = function Animation() {
        this._name = "";
        this._duration = 0;
        this._nodes = [];
        this._nodeDict = {};
    };

    /**
     * @function
     * @name pc.Animation#getDuration
     * @description Returns the duration of the animation in seconds.
     * @returns {number} The duration of the animation in seconds.
     * @author <NAME>
     */
    Animation.prototype.getDuration = function () {
        return this._duration;
    };

    /**
     * @function
     * @name pc.Animation#getName
     * @description Returns the human-readable name of the animation.
     * @returns {string} The name of the animation.
     * @author <NAME>
     */
    Animation.prototype.getName = function () {
        return this._name;
    };

    /**
     * @function
     * @name pc.Animation#getNode
     * @description Gets a {@link pc.Node} by name
     * @param {string} name The name of the pc.Node
     * @returns {pc.Node} The pc.Node with the specified name
     * @author <NAME>
     */
    Animation.prototype.getNode = function (name) {
        return this._nodeDict[name];
    };

    /**
     * @function
     * @name pc.Animation#getNodes
     * @description Gets the {@link pc.Node}s of this {@link pc.Animation}
     * @returns {pc.Node[]} An array of nodes.
     * @author <NAME>
     */
    Animation.prototype.getNodes = function () {
        return this._nodes;
    };

    /**
     * @function
     * @name pc.Animation#setDuration
     * @description Sets the duration of the specified animation in seconds.
     * @param {number} duration The duration of the animation in seconds.
     * @author <NAME>
     */
    Animation.prototype.setDuration = function (duration) {
        this._duration = duration;
    };

    /**
     * @function
     * @name pc.Animation#setName
     * @description Sets the human-readable name of the specified animation.
     * @param {string} name The new name for the animation.
     * @author <NAME>
     */
    Animation.prototype.setName = function (name) {
        this._name = name;
    };

    /**
     * @function
     * @name pc.Animation#addNode
     * @description Adds a node the the internal nodes array.
     * @param {pc.Node} node The node to add.
     * @author <NAME>
     */
    Animation.prototype.addNode = function (node) {
        this._nodes.push(node);
        this._nodeDict[node._name] = node;
    };
<commit_msg>Fixed more API ref typos<commit_after>pc.extend(pc, function () {
    var Key = function Key(time, position, rotation, scale) {
        this.time = time;
        this.position = position;
        this.rotation = rotation;
        this.scale = scale;
    };

    /**
     * @private
     * @name pc.Node
     * @class A animation node has a name and contains an array of keyframes.
     * @description Create a new animation node
     * @returns {pc.Node} A new pc.Node.
     */
    var Node = function Node() {
        this._name = "";
        this._keys = [];
    };

    /**
     * @name pc.Animation
     * @class An animation is a sequence of keyframe arrays which map to the nodes of a skeletal hierarchy.
     * It controls how the nodes of the hierarchy are transformed over time.
     * @returns {pc.Animation} A new pc.Animation object.
     */
    var Animation = function Animation() {
        this._name = "";
        this._duration = 0;
        this._nodes = [];
        this._nodeDict = {};
    };

    /**
     * @function
     * @name pc.Animation#getDuration
     * @description Returns the duration of the animation in seconds.
     * @returns {Number} The duration of the animation in seconds.
     * @author <NAME>
     */
    Animation.prototype.getDuration = function () {
        return this._duration;
    };

    /**
     * @function
     * @name pc.Animation#getName
     * @description Returns the human-readable name of the animation.
     * @returns {String} The name of the animation.
     * @author <NAME>
     */
    Animation.prototype.getName = function () {
        return this._name;
    };

    /**
     * @function
     * @name pc.Animation#getNode
     * @description Gets a {@link pc.Node} by name
     * @param {String} name The name of the pc.Node
     * @returns {pc.Node} The pc.Node with the specified name
     * @author <NAME>
     */
    Animation.prototype.getNode = function (name) {
        return this._nodeDict[name];
    };

    /**
     * @function
     * @name pc.Animation#getNodes
     * @description Gets the {@link pc.Node}s of this {@link pc.Animation}
     * @returns {pc.Node[]} An array of nodes.
     * @author <NAME>
     */
    Animation.prototype.getNodes = function () {
        return this._nodes;
    };

    /**
     * @function
     * @name pc.Animation#setDuration
     * @description Sets the duration of the specified animation in seconds.
     * @param {Number} duration The duration of the animation in seconds.
     * @author <NAME>
     */
    Animation.prototype.setDuration = function (duration) {
        this._duration = duration;
    };

    /**
     * @function
     * @name pc.Animation#setName
     * @description Sets the human-readable name of the specified animation.
     * @param {String} name The new name for the animation.
     * @author <NAME>
     */
    Animation.prototype.setName = function (name) {
        this._name = name;
    };

    /**
     * @function
     * @name pc.Animation#addNode
     * @description Adds a node the the internal nodes array.
     * @param {pc.Node} node The node to add.
     * @author <NAME>
     */
    Animation.prototype.addNode = function (node) {
        this._nodes.push(node);
        this._nodeDict[node._name] = node;
    };

{'fraction_non_alphanumeric': 0.11589759313199448, 'fraction_numerical': 0.00030660738923808065, 'mean_word_length': 2.138047138047138, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1751306', 'n_tokens_mistral': 1860, 'n_tokens_neox': 1817, 'n_words': 584}