﻿/*
2008
Jaime Espinosa jespinosa@constructorasoftware.com
http://www.constructorasoftware.com
*/
function restituye() {
    this.dblPosX = this.dblPosXR;
    this.dblPosY = this.dblPosYR;
    this.dblAltoControl = this.dblAltoControlR;
    this.dblAnchoControl = this.dblAnchoControlR;
}
function inicializa() {
    // copia las variables de restitucion
    this.dblPosXR = this.dblPosX;
    this.dblPosYR = this.dblPosY;
    this.dblAltoControlR = this.dblAltoControl;
    this.dblAnchoControlR = this.dblAnchoControl;

    if (this.PosicionSiguiente != null) {
        // CALCULOS QUE SOLO CAMBIAN CUANDO EL CONTROL CAMBIA DE POSICION
        this.dblPasoXAvance = ((this.PosicionSiguiente.dblPosX - this.dblPosX) / this.intNumeroIteraciones);
        this.dblPasoYAvance = ((this.PosicionSiguiente.dblPosY - this.dblPosY) / this.intNumeroIteraciones);
        this.dblCrecimientoAltoAvance = ((this.PosicionSiguiente.dblAltoControl - this.dblAltoControl) / this.intNumeroIteraciones);
        this.dblCrecimientoAnchoAvance = ((this.PosicionSiguiente.dblAnchoControl - this.dblAnchoControl) / this.intNumeroIteraciones);
    }
    if (this.PosicionAnterior != null) {
        this.dblPasoXRetroceso = ((this.PosicionAnterior.dblPosX - this.dblPosX) / this.intNumeroIteraciones);
        this.dblPasoYRetroceso = ((this.PosicionAnterior.dblPosY - this.dblPosY) / this.intNumeroIteraciones);
        this.dblCrecimientoAltoRetroceso = ((this.PosicionAnterior.dblAltoControl - this.dblAltoControl) / this.intNumeroIteraciones);
        this.dblCrecimientoAnchoRetroceso = ((this.PosicionAnterior.dblAnchoControl - this.dblAnchoControl) / this.intNumeroIteraciones);
    }
}
function moverAdelante() {
    this.dblPosX += this.dblPasoXAvance;
    this.dblPosY += this.dblPasoYAvance;
    this.dblAltoControl += this.dblCrecimientoAltoAvance;
    this.dblAnchoControl += this.dblCrecimientoAnchoAvance;
}
function moverAtras() {
    this.dblPosX += this.dblPasoXRetroceso;
    this.dblPosY += this.dblPasoYRetroceso;
    this.dblAltoControl += this.dblCrecimientoAltoRetroceso;
    this.dblAnchoControl += this.dblCrecimientoAnchoRetroceso;
}
function CPosicion(dblX, dblY, dblAncho, dblAlto) {
    this.dblPosX = dblX;
    this.dblPosY = dblY;
    this.dblAltoControl = dblAlto;
    this.dblAnchoControl = dblAncho;    // RESTITUCION DE POSICION Y FORMA

    // NUMERO DE ITERACIONES EN U MOVIMIENTO DE ANIMACION
    this.intNumeroIteraciones = 0;    // POSICION Y FORMA

    this.dblPosXR = 0;
    this.dblPosYR = 0;
    this.dblAltoControlR = 0;
    this.dblAnchoControlR = 0;    // CARACTERISTICAS DE ANIMACION

    //CUANTO AVANZA CUANDO EL MOVIMIENTO ES HACIA LA POSICION SIGUENTE
    this.dblPasoXAvance = 0;
    this.dblPasoYAvance = 0;    // CUANTO RETROCEDE CUANDO EL MOVIMIENTO ES HACIA LA POSICION ANTERIOR
    this.dblPasoXRetroceso = 0;
    this.dblPasoYRetroceso = 0;    // CUANTO CRECE CUANDO EL MOVIMIENTO ES HACIA LA POSICION SIGUENTE
    this.dblCrecimientoAltoAvance = 0;
    this.dblCrecimientoAnchoAvance = 0;    // CUANTO CRECE CUANDO EL MOVIMIENTO ES HACIA LA POSICION ANTERIOR
    this.dblCrecimientoAltoRetroceso = 0;
    this.dblCrecimientoAnchoRetroceso = 0;

    var PosicionSiguiente;
    var PosicionAnterior;

    var Item;

    this.restituye = restituye;
    this.inicializa = inicializa;
    this.moverAdelante = moverAdelante;
    this.moverAtras = moverAtras;
};

