Йэххххххх захотелось тут мне тряхнуть стариной и решил я снова покодить на старом добром C++. И кодить я стал не абы что а обратился к мечте детства - разработке игр. Разумеется всё решил писать с нуля. Ибо делается это для удовольствия а не для профита. И начал я с класса вектора:

#ifndef __VECTOR4D_H__
#define __VECTOR4D_H__

#include "core.h"

class CVector4D
{
/**
* Vector components.
*/
float x , y , z , w;

public:

/**
* Default constructor.
*/
CVector4D( void );

/**
* Set components constructor.
*/
CVector4D( float x , float y , float z , float w );

/**
* Copy constructor.
*/
CVector4D( const CVector4D & Vector );

/**
* Assign operator.
*/
CVector4D operator=( const CVector4D & Vector );

/**
* Add operator.
*/
CVector4D operator+( const CVector4D & Vector );

/**
* Assignable addition operator.
*/
CVector4D operator+=( const CVector4D & Vector );

/**
* Sub operator.
*/
CVector4D operator-( const CVector4D & Vector );

/**
* Assignable sub operator.
*/
CVector4D operator-=( const CVector4D & Vector );

/**
* Scale operator.
*/
CVector4D operator*( const float Scale );

/**
* Get x component.
*/
float GetX( void ) const;

/**
* Get y component.
*/
float GetY( void ) const;

/**
* Get z component.
*/
float GetZ( void ) const;

/**
* Get w component.
*/
float GetW( void ) const;

/**
* Set x component.
*/
void SetX( float x );

/**
* Set y component.
*/
void SetY( float y );

/**
* Set z component.
*/
void SetZ( float z );

/**
* Set w component.
*/
void SetW( float w );

/**
* Vector dot product.
*/
float dot( const CVector4D & Vector );

/**
* Vector cross product.
*/
CVector4D cross( const CVector4D & Vector );
};

#endif

Вот такой вот класс получился.

Исходники.

Добавить комментарий


Защитный код
Обновить