📄 matrix.h
字号:
#ifndef MATRIX_H_
#define MATRIX_H_
#include <string.h>
#include "point3d.h"
/********************
* ATENTION **********
********************
* The matrixes are accessed as in math, [line][colune].
*/
typedef double MATRIX_4x4 [4][4];
typedef double *PMATRIX_4x4;
/*
* Sets the matrix with NULL values.
*/
#define MatrixClear(pMatrix_4x4) (memset (pMatrix_4x4, 0, sizeof (double) * 4 * 4))
/*
* Builds a translation Matrix
* It's like operator T (dX, dY, dZ)
*/
PMATRIX_4x4 MatrixTranslation (double deltaX, double deltaY, double deltaZ, MATRIX_4x4 pDest);
/*
* Builds a scale Matrix
* It's like operator S (dX, dY, dZ)
*/
PMATRIX_4x4 MatrixScale (double deltaX, double deltaY, double deltaZ, MATRIX_4x4 pDest);
/*
* Builds a rotation matrix around XX axis.
* The angle is in degrees.
* It's like operator Rx (alfa)
*/
PMATRIX_4x4 MatrixRotateX (double dAngle, MATRIX_4x4 pDest);
/*
* Builds a rotation matrix around YY axis.
* The angle is in degrees.
* It's like operator Ry (alfa)
*/
PMATRIX_4x4 MatrixRotateY (double dAngle, MATRIX_4x4 pDest);
/*
* Builds a rotation matrix around ZZ axis.
* The angle is in degrees.
* It's like operator Rz (alfa)
*/
PMATRIX_4x4 MatrixRotateZ (double dAngle, MATRIX_4x4 pDest);
/*
* Builds a projection matrix for main view.
*/
PMATRIX_4x4 MatrixFront (MATRIX_4x4 pMatrix);
/*
* Constroi uma matriz de proje玢o para o al鏰do lateral.
*/
PMATRIX_4x4 MatrixSide (MATRIX_4x4 pDest);
/*
* Builds a projection matrix for top view.
*/
PMATRIX_4x4 MatrixAbove (MATRIX_4x4 pDest);
/*
* Builds a projection matrix for oblique view.
*/
PMATRIX_4x4 MatrixOblique (MATRIX_4x4 pDest, double dFactor, double dAngle);
/*
* Builds a projection matrix for perpective view.
*/
PMATRIX_4x4 MatrixPerspective (MATRIX_4x4 pDest, double dDistance);
/*
* Builds a projection matrix for axonometric view.
*/
PMATRIX_4x4 MatrixAxonometric (MATRIX_4x4 pDest, double dA, double dB);
/*
* Multiplies 2 matrixes.
*/
PMATRIX_4x4 MatrixMultiply (MATRIX_4x4 pLeft, MATRIX_4x4 pRight, MATRIX_4x4 pDest);
/*
* Multiplies a matrix with a 3D point.
*/
PPOINT_3D MatrixMultiplyPoint (const MATRIX_4x4 pMatrix, const PPOINT_3D pPoint, PPOINT_3D pDest);
#endif /* MATRIX_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -