src/geometry/ext/Geometry.Animation.js
function (styles) {
        const symbol = this._getInternalSymbol();
        const stylesToAnimate = {};
        for (const p in styles) {
            if (styles.hasOwnProperty(p)) {
                const v = styles[p];
                if (p !== 'translate' && p !== 'symbol') {
                    //this.getRadius() / this.getWidth(), etc.
                    const fnName = 'get' + p[0].toUpperCase() + p.substring(1);
                    const current = this[fnName]();
                    stylesToAnimate[p] = [current, v];
                } else if (p === 'symbol') {
                    let symbolToAnimate;
                    if (Array.isArray(styles['symbol'])) {
                        if (!Array.isArray(symbol)) {
                            throw new Error('geometry\'symbol isn\'t a composite symbol, while the symbol in styles is.');
                        }
                        symbolToAnimate = [];
                        const symbolInStyles = styles['symbol'];
                        for (let i = 0; i < symbolInStyles.length; i++) {
                            if (!symbolInStyles[i]) {
                                symbolToAnimate.push(null);
                                continue;
                            }
                            const a = {};
                            for (const sp in symbolInStyles[i]) {
                                if (symbolInStyles[i].hasOwnProperty(sp)) {
                                    a[sp] = [symbol[i][sp], symbolInStyles[i][sp]];
                                }
                            }
                            symbolToAnimate.push(a);
                        }
                    } else {
                        if (Array.isArray(symbol)) {
                            throw new Error('geometry\'symbol is a composite symbol, while the symbol in styles isn\'t.');
                        }
                        symbolToAnimate = {};
                        for (const sp in v) {
                            if (v.hasOwnProperty(sp)) {
                                symbolToAnimate[sp] = [symbol[sp], v[sp]];
                            }
                        }
                    }
                    stylesToAnimate['symbol'] = symbolToAnimate;
                } else if (p === 'translate') {
                    stylesToAnimate['translate'] = new Coordinate(v);
                }
            }
        }
        return stylesToAnimate;
    }
function (styles) {
        const symbol = this._getInternalSymbol();
        const stylesToAnimate = {};
        for (const p in styles) {
            if (styles.hasOwnProperty(p)) {
                const v = styles[p];
                if (p !== 'translate' && p !== 'symbol') {
                    //this.getRadius() / this.getWidth(), etc.
                    const fnName = 'get' + p[0].toUpperCase() + p.substring(1);
                    const current = this[fnName]();
                    stylesToAnimate[p] = [current, v];
                } else if (p === 'symbol') {
                    let symbolToAnimate;
                    if (Array.isArray(styles['symbol'])) {
                        if (!Array.isArray(symbol)) {
                            throw new Error('geometry\'symbol isn\'t a composite symbol, while the symbol in styles is.');
                        }
                        symbolToAnimate = [];
                        const symbolInStyles = styles['symbol'];
                        for (let i = 0; i < symbolInStyles.length; i++) {
                            if (!symbolInStyles[i]) {
                                symbolToAnimate.push(null);
                                continue;
                            }
                            const a = {};
                            for (const sp in symbolInStyles[i]) {
                                if (symbolInStyles[i].hasOwnProperty(sp)) {
                                    a[sp] = [symbol[i][sp], symbolInStyles[i][sp]];
                                }
                            }
                            symbolToAnimate.push(a);
                        }
                    } else {
                        if (Array.isArray(symbol)) {
                            throw new Error('geometry\'symbol is a composite symbol, while the symbol in styles isn\'t.');
                        }
                        symbolToAnimate = {};
                        for (const sp in v) {
                            if (v.hasOwnProperty(sp)) {
                                symbolToAnimate[sp] = [symbol[sp], v[sp]];
                            }
                        }
                    }
                    stylesToAnimate['symbol'] = symbolToAnimate;
                } else if (p === 'translate') {
                    stylesToAnimate['translate'] = new Coordinate(v);
                }
            }
        }
        return stylesToAnimate;
    }
function ( styles ) { const symbol = this . _getInternalSymbol ( ) ; const stylesToAnimate = { } ; for ( const p in styles ) { if ( styles . hasOwnProperty ( p ) ) { const v = styles [ p ] ; if ( p !== 'translate' && p !== 'symbol' ) { //this.getRadius() / this.getWidth(), etc. const fnName = 'get' + p [ 0 ] . toUpperCase ( ) + p . substring ( 1 ) ; const current = this [ fnName ] ( ) ; stylesToAnimate [ p ] = [ current , v ] ; } else if ( p === 'symbol' ) { let symbolToAnimate ; if ( Array . isArray ( styles [ 'symbol' ] ) ) { if ( ! Array . isArray ( symbol ) ) { throw new Error ( 'geometry\'symbol isn\'t a composite symbol, while the symbol in styles is.' ) ; } symbolToAnimate = [ ] ; const symbolInStyles = styles [ 'symbol' ] ; for ( let i = 0 ; i < symbolInStyles . length ; i ++ ) { if ( ! symbolInStyles [ i ] ) { symbolToAnimate . push ( null ) ; continue ; } const a = { } ; for ( const sp in symbolInStyles [ i ] ) { if ( symbolInStyles [ i ] . hasOwnProperty ( sp ) ) { a [ sp ] = [ symbol [ i ] [ sp ] , symbolInStyles [ i ] [ sp ] ] ; } } symbolToAnimate . push ( a ) ; } } else { if ( Array . isArray ( symbol ) ) { throw new Error ( 'geometry\'symbol is a composite symbol, while the symbol in styles isn\'t.' ) ; } symbolToAnimate = { } ; for ( const sp in v ) { if ( v . hasOwnProperty ( sp ) ) { symbolToAnimate [ sp ] = [ symbol [ sp ] , v [ sp ] ] ; } } } stylesToAnimate [ 'symbol' ] = symbolToAnimate ; } else if ( p === 'translate' ) { stylesToAnimate [ 'translate' ] = new Coordinate ( v ) ; } } } return stylesToAnimate ; }
Prepare styles for animation
@return {Object} styles
@private
Prepare styles for animation