valid()
    {
        return !isNaN(this.a) && this.a !== Infinity
            && !isNaN(this.b) && this.b !== Infinity
            && !isNaN(this.c) && this.c !== Infinity
            && !isNaN(this.d) && this.d !== Infinity
            && !isNaN(this.tx) && this.tx !== Infinity
            && !isNaN(this.ty) && this.ty !== Infinity;
    }
/**
     * Checks if the matrix has NaN or Infinity anywhere.
     *
     * @return {boolean} True if the matrix is valid, false otherwise.
     */
Checks if the matrix has NaN or Infinity anywhere.
@return {boolean} True if the matrix is valid, false otherwise.
Checks if the matrix has NaN or Infinity anywhere . @return { boolean } True if the matrix is valid false otherwise .
valid()
    {
        return !isNaN(this.a) && this.a !== Infinity
            && !isNaN(this.b) && this.b !== Infinity
            && !isNaN(this.c) && this.c !== Infinity
            && !isNaN(this.d) && this.d !== Infinity
            && !isNaN(this.tx) && this.tx !== Infinity
            && !isNaN(this.ty) && this.ty !== Infinity;
    }
valid ( ) { return ! isNaN ( this . a ) && this . a !== Infinity && ! isNaN ( this . b ) && this . b !== Infinity && ! isNaN ( this . c ) && this . c !== Infinity && ! isNaN ( this . d ) && this . d !== Infinity && ! isNaN ( this . tx ) && this . tx !== Infinity && ! isNaN ( this . ty ) && this . ty !== Infinity ; }
Checks if the matrix has NaN or Infinity anywhere.
Checks if the matrix has NaN or Infinity anywhere .