Шаг 40 - Описание структуры D3DXMATRIX

Описывает матрицу:

typedef struct D3DXMATRIX : public D3DMATRIX {
public:
	D3DXMATRIX() {};
	D3DXMATRIX( CONST FLOAT * );
	D3DXMATRIX( CONST D3DMATRIX& );
	D3DXMATRIX(
		FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14,
		FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24,
		FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34,
		FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44
	);

	// предоставляет доступ
	FLOAT& operator () ( UINT Row, UINT Col );
	FLOAT  operator () ( UINT Row, UINT Col ) const;

	// casting operators
	operator FLOAT* ();
	operator CONST FLOAT* () const;

	// операторы назначения
	D3DXMATRIX& operator *= ( CONST D3DXMATRIX& );
	D3DXMATRIX& operator += ( CONST D3DXMATRIX& );
	D3DXMATRIX& operator -= ( CONST D3DXMATRIX& );
	D3DXMATRIX& operator *= ( FLOAT );
	D3DXMATRIX& operator /= ( FLOAT );

	// одиночные операторы
	D3DXMATRIX operator + () const;
	D3DXMATRIX operator - () const;

	// двойные операторы
	D3DXMATRIX operator * ( CONST D3DXMATRIX& ) const;
	D3DXMATRIX operator + ( CONST D3DXMATRIX& ) const;
	D3DXMATRIX operator - ( CONST D3DXMATRIX& ) const;
	D3DXMATRIX operator * ( FLOAT ) const;
	D3DXMATRIX operator / ( FLOAT ) const;

	friend D3DXMATRIX operator * ( FLOAT, CONST D3DXMATRIX& );

	BOOL operator == ( CONST D3DXMATRIX& ) const;
	BOOL operator != ( CONST D3DXMATRIX& ) const;

} D3DXMATRIX, *LPD3DXMATRIX;

Примечание

Эта структура прямой наследник структуры D3DMATRIX. Все эти параметры должны использовать структуру D3DMATRIX.

В Direct3D параметр 34 не может быть отрицательным. Оно принимает значение -1, если Вы собираетесь масштабировать.

В С++ программисты могут воспользоваться перегрузкой операторов. В С++ используя структуру D3DMATRIX перегружает конструкторы, одиночные и двойные операторы (включая равно).

Требования

Заголовки: объявить D3dx8math.h.

Примеры

См. раздел Direct3D: "Шаг 13 - Вращаем разноцветный трехмерный треугольник".


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Хавов Евгений Валерьевич - 25.08.2002