BIMHome v1.0.0
BIMHome接口文档说明
Public 成员函数 | Private 类型 | Private 属性 | 所有成员列表
Matrix4D类 参考

Matrix4D 类,表示一个 4x4 矩阵 更多...

#include <Matrix.h>

Public 成员函数

std::string analyse () const
 分析矩阵的类型和特性
 
double determinant () const
 计算矩阵的行列式
 
double determinant3 () const
 计算 3x3 子矩阵的行列式
 
void fromString (const std::string &str)
 从字符串中读取矩阵
 
Vector3d getCol (unsigned short usNdx) const
 获取矩阵的指定列
 
void getGLMatrix (double dMtrx[16]) const
 获取 OpenGL 风格的矩阵
 
void getMatrix (double dMtrx[16]) const
 将矩阵数据复制到一维数组中
 
unsigned long getMemSpace ()
 获取矩阵占用的内存空间大小
 
Vector3d getRow (unsigned short usNdx) const
 获取矩阵的指定行
 
ScaleType hasScale (double tol=0.0) const
 检查矩阵是否包含缩放成分
 
Matrix4DHat (const Vector3d &rV)
 将一个三维向量 rV 转换成一个 4x4 旋转矩阵的斜对称矩阵
 
Matrix4DHat (const Vector3f &rV)
 将一个三维向量转换为斜对称矩阵
 
void inverse ()
 求取矩阵的逆矩阵
 
void inverseGauss ()
 通过高斯-约当消元法计算矩阵的逆
 
void inverseOrthogonal ()
 求取正交变换矩阵的逆矩阵
 
bool isNull () const
 检查矩阵是否为零矩阵
 
bool isUnity () const
 检查矩阵是否为单位矩阵
 
 Matrix4D ()
 默认构造函数,初始化为单位矩阵
 
 Matrix4D (const Matrix4D &rclMtrx)
 复制构造函数
 
 Matrix4D (const Vector3d &rclBase, const Vector3d &rclDir, double fAngle)
 构造函数,创建一个围绕特定轴旋转特定角度的变换矩阵
 
 Matrix4D (const Vector3f &rclBase, const Vector3f &rclDir, float fAngle)
 构造函数,创建一个围绕特定轴旋转特定角度的变换矩阵
 
 Matrix4D (double a11, double a12, double a13, double a14, double a21, double a22, double a23, double a24, double a31, double a32, double a33, double a34, double a41, double a42, double a43, double a44)
 构造函数,创建一个 4x4 矩阵
 
 Matrix4D (float a11, float a12, float a13, float a14, float a21, float a22, float a23, float a24, float a31, float a32, float a33, float a34, float a41, float a42, float a43, float a44)
 构造函数,创建一个 4x4 矩阵
 
void move (const Vector3d &rclVct)
 沿指定向量移动矩阵
 
void move (const Vector3f &rclVct)
 沿指定向量移动矩阵
 
void move (double x, double y, double z)
 沿 x、y、z 轴移动矩阵
 
void move (float x, float y, float z)
 沿 x、y、z 轴移动矩阵
 
void multVec (const Vector3d &src, Vector3d &dst) const
 将矩阵与一个三维向量相乘
 
void multVec (const Vector3f &src, Vector3f &dst) const
 将矩阵与一个三维浮点向量相乘
 
void nullify ()
 将矩阵设置为零矩阵
 
bool operator!= (const Matrix4D &rclMtrx) const
 矩阵不等运算符重载
 
Matrix4D operator* (const Matrix4D &rclMtrx) const
 矩阵乘法运算符重载
 
Vector3d operator* (const Vector3d &rclVct) const
 矩阵与向量的乘法运算符重载
 
Vector3f operator* (const Vector3f &rclVct) const
 矩阵与向量的乘法运算符重载
 
Matrix4D operator* (double scalar) const
 矩阵与标量的乘法运算符重载
 
Matrix4Doperator*= (const Matrix4D &rclMtrx)
 矩阵乘法赋值运算符重载
 
Matrix4Doperator*= (double scalar)
 矩阵与标量的乘法赋值运算符重载
 
Matrix4D operator+ (const Matrix4D &rclMtrx) const
 矩阵加法运算符重载
 
Matrix4Doperator+= (const Matrix4D &rclMtrx)
 矩阵加法赋值运算符重载
 
Matrix4D operator- (const Matrix4D &rclMtrx) const
 矩阵减法运算符重载
 
Matrix4Doperator-= (const Matrix4D &rclMtrx)
 矩阵减法赋值运算符重载
 
Matrix4Doperator= (const Matrix4D &rclMtrx)
 矩阵赋值运算符重载
 
bool operator== (const Matrix4D &rclMtrx) const
 矩阵等运算符重载
 
double * operator[] (unsigned short usNdx)
 提供对矩阵行的直接访问
 
const double * operator[] (unsigned short usNdx) const
 提供对矩阵行的只读访问
 
Matrix4DOuter (const Vector3d &rV1, const Vector3d &rV2)
 创建一个由两个三维向量的外积构成的矩阵
 
Matrix4DOuter (const Vector3f &rV1, const Vector3f &rV2)
 创建一个由两个三维向量的外积构成的矩阵
 
void Print () const
 打印矩阵的每一行
 
void rotLine (const Vector3d &rclBase, const Vector3d &rclDir, double fAngle)
 绕任意轴旋转
 
void rotLine (const Vector3d &rclVct, double fAngle)
 绕任意轴旋转
 
void rotLine (const Vector3f &rclBase, const Vector3f &rclDir, float fAngle)
 绕任意轴旋转
 
void rotLine (const Vector3f &rclVct, float fAngle)
 绕任意轴旋转
 
void rotX (double fAngle)
 绕 X 轴旋转
 
void rotY (double fAngle)
 绕 Y 轴旋转
 
void rotZ (double fAngle)
 绕 Z 轴旋转
 
void scale (const Vector3d &rclVct)
 缩放矩阵
 
void scale (const Vector3f &rclVct)
 缩放矩阵
 
void scale (double scalexyz)
 均匀缩放矩阵
 
void scale (double x, double y, double z)
 缩放矩阵
 
void scale (float scalexyz)
 均匀缩放矩阵
 
void scale (float x, float y, float z)
 缩放矩阵
 
void setCol (unsigned short usNdx, const Vector3d &v)
 设置矩阵的指定列
 
void setGLMatrix (const double dMtrx[16])
 设置 OpenGL 风格的矩阵
 
void setMatrix (const double dMtrx[16])
 将一维数组中的矩阵数据复制到矩阵对象中
 
void setRow (unsigned short usNdx, const Vector3d &v)
 设置矩阵的指定行
 
void setToUnity ()
 设置矩阵为单位矩阵
 
void setTrace (const Vector3d &v)
 设置矩阵的主对角线元素
 
bool toAxisAngle (Vector3d &rclBase, Vector3d &rclDir, double &fAngle, double &fTranslation) const
 将矩阵转换为轴角表示
 
bool toAxisAngle (Vector3f &rclBase, Vector3f &rclDir, float &fAngle, float &fTranslation) const
 将矩阵转换为轴角表示
 
std::string toString () const
 将矩阵转换为字符串
 
Vector3d trace () const
 计算矩阵主对角线上的元素
 
void transform (const Vector3d &rclVct, const Matrix4D &rclMtrx)
 围绕一个点进行变换
 
void transform (const Vector3f &rclVct, const Matrix4D &rclMtrx)
 围绕一个点进行变换
 
void transpose ()
 求取矩阵的转置
 
 ~Matrix4D ()
 析构函数
 

Private 类型

typedef float_traits< double > traits_type
 定义了矩阵元素的数值类型特性
 

Private 属性

double dMtrx4D [4][4]
 矩阵数据
 

详细描述

Matrix4D 类,表示一个 4x4 矩阵

该类用于表示和操作 4x4 矩阵,常用于图形变换和线性代数运算。


该类的文档由以下文件生成: