Class: cVector

 cObjeto ----+
                                  |
                         cObjetoPersistente ----+
                                                |
                                             cVector

Description:
La clase cVector es la implementación de un vector físico. Esta clase es el esqueleto de la aplicación ya que todas las velocidades y posiciones son del tipo cVector. Todos los calculos de movimientos, distancias, etc. se manejan con los metodos de esta clase

Unit:
Vectores (Vectores.pas)

Constructors:

constructor create( v: cVector ); overload;
Constructor que copia los atributos de un Vector existente
constructor create( x: tLongitud = 0; y: tLongitud = 0; z: tLongitud = 0 ); overload;
Constructor

Methods:

function mAddModulo( modulo: tLongitud ): cVector;
Aumenta (o disminuye si el argumente es negativo) el modulo del vector
function mAddX( x: tLongitud ): cVector;
Agrega un valor a la componente X
function mAddY( y: tLongitud ): cVector;
Agrega un valor a la componente Y
function mAddZ( z: tLongitud ): cVector;
Agrega un valor a la componente Z
procedure mDesSerializar( str: string ); override;
Recrea el objeto a partir de una cadena de texto con el objeto serializado.
function mGetDebugInfo( debugLevel: tDebugInfo = DI_MINI ): string; override;
Método heredado que devuelve un string con el estado del Objeto. Se utiliza para depurar y la información entregada depende del parámetro tDebugInfo.
function mGetDistancia( vec: cVector ): tLongitud;
Obtiene la distancia al a otro vector
function mGetModulo: tLongitud;
Obtiene el modulo del vector
function mGetX: tLongitud;
Obtiene la componente X
function mGetY: tLongitud;
Obtiene la componente Y
function mGetZ: tLongitud;
Obtiene la componente Z
function mHacerVersor: cVector;
Convierte el vector en un versor (norma 1)
function mModificarCon( vel: cVector; dT: tTiempo ): cVector;
Modifica el vector con basandose en otro vector (pensado como velocidad) y un intervalo de tiempo siguiendo la formula física X' = X + V * dt (este metodo esta pensado basicamente para calcular los movimientos)
function mMultiplicar( vec: cVector ): cVector; overload;
Se multiplica vectorialmente a si mismo por el vector vec
function mMultiplicar( esc: tLongitud ): cVector; overload;
Se multiplica por un escalar
function mMultiplicarEsc( vec: cVector ): tLongitud;
Obtiene el producto escalar entre si mismo y el vector vec
function mRestar( vec: cVector ): cVector;
Resta a si mismo el vector vec
function mSerializar: string; override;
Devuelve una cadena de texto con el objeto serializado.
function mSet( x, y, z: tLongitud ): cVector; overload;
Establece los valores del vector x, y, z
function mSet( v: cVector ): cVector; overload;
Modifica las componentes del vector basandose en otro
function mSetModulo( modulo: tLongitud ): cVector;
Setea el modulo del vector a un valor determinado
function mSetX( x: tLongitud ): cVector;
Setea la componente X
function mSetY( y: tLongitud ): cVector;
Setea la componente Y
function mSetZ( z: tLongitud ): cVector;
Setea la componente Z
function mSumar( vec: cVector ): cVector;
Suma a si mismo el vector vec

constructor create( v: cVector ); overload;

Constructor que copia los atributos de un Vector existente


constructor create( x: tLongitud = 0; y: tLongitud = 0; z: tLongitud = 0 ); overload;

Crea un nuevo vector basandose en los atributos dados como parámetro.
Parameters
   x : Componente en el eje X
   y : Componente en el eje Y
   z : Componente en el eje Z


function mAddModulo( modulo: tLongitud ): cVector;

Setea el modulo del vector a un valor determinado (sólo tiene sentido si el modulo actual es distinto de cero)
Parameters
   modulo : Modulo a adherir al verctor


function mAddX( x: tLongitud ): cVector;

Agrega un valor a la componente X
Parameters
   x : Valor a sumarle a la componente X


function mAddY( y: tLongitud ): cVector;

Agrega un valor a la componente Y
Parameters
   y : Valor a sumarle a la componente Y


function mAddZ( z: tLongitud ): cVector;

Agrega un valor a la componente Z
Parameters
   z : Valor a sumarle a la componente Z


procedure mDesSerializar( str: string ); override;

Recrea el objeto a partir de una cadena de texto con el objeto serializado.
Parameters
   str : Cadena de texto con el objeto serializado.


function mGetDebugInfo( debugLevel: tDebugInfo = DI_MINI ): string; override;

Devuelve el estado del objeto basandose en la cantidad de datos requeridos:
Siempre devuelve los valores de las componentes x, y, z y si debugLevel es mayor que DI_NORMAL, también muestra el módulo. @return Cadena de texto con el estado del Objeto.
Parameters
   debugLevel : Cantidad de información requerida


function mGetDistancia( vec: cVector ): tLongitud;

Obtiene la distancia al a otro vector (en realidad se tratan como puntos) @returns Distancia al otro vector
Parameters
   vec : Punto al cual se calcula la distancia


function mGetModulo: tLongitud;

Returns
   Modulo (o norma) del vector


function mGetX: tLongitud;

Returns
   Componente X del vector


function mGetY: tLongitud;

Returns
   Componente Y del vector


function mGetZ: tLongitud;

Returns
   Componente Z del vector


function mHacerVersor: cVector;

Convierte el vector en un versor (sólo tiene sentido si el modulo actual es distinto de cero)


function mModificarCon( vel: cVector; dT: tTiempo ): cVector;

Modifica el vector con basandose en otro vector (pensado como velocidad) y un intervalo de tiempo siguiendo la formula física X' = X + V * dt (este metodo esta pensado basicamente para calcular los movimientos)
Parameters
   vel : Vector velocidad
   dT : Intervalo de tiempo


function mMultiplicar( vec: cVector ): cVector; overload;

Se multiplica por un escalar
Parameters
   esc : Escalar por el cual se multiplica


function mMultiplicar( esc: tLongitud ): cVector; overload;

Se multiplica por un escalar


function mMultiplicarEsc( vec: cVector ): tLongitud;

Obtiene el producto escalar entre si mismo y el vector vec @return Producto escalar entre los vectores
Parameters
   vec : Vector por el cual se multiplica escalarmente


function mRestar( vec: cVector ): cVector;

Resta a si mismo el vector vec
Parameters
   vec : Vector que se resta


function mSerializar: string; override;

Returns
   Cadena de texto con el objeto serializado.


function mSet( x, y, z: tLongitud ): cVector; overload;

Establece las componentes del vector
Parameters
   x : Nuevo valor de la componente en el eje X
   y : Nuevo valor de la componente en el eje Y
   z : Nuevo valor de la componente en el eje Z


function mSet( v: cVector ): cVector; overload;

Modifica las componentes del vector basandose en otro


function mSetModulo( modulo: tLongitud ): cVector;

Setea el modulo del vector a un valor determinado
Parameters
   modulo : Valor del nuevo Módulo


function mSetX( x: tLongitud ): cVector;

Setea la componente X
Parameters
   x : Nuevo valor de la componente en el eje X


function mSetY( y: tLongitud ): cVector;

Setea la componente Y
Parameters
   y : Nuevo valor de la componente en el eje Y


function mSetZ( z: tLongitud ): cVector;

Setea la componente Z
Parameters
   z : Nuevo valor de la componente en el eje Z


function mSumar( vec: cVector ): cVector;

Suma a si mismo el vector vec
Parameters
   vec : Vector a sumarle