广州seo工资,wordpress分类seo标题,建立网站的内容规划,如何制造一个网站对于一个矩阵元素为浮点型的矩阵#xff0c;你是否还在使每个元素跟1.0f或0.0f进行比较#xff0c;如果这样#xff0c;只能说你的结果不一定正确#xff0c;那我们看看assimp中是如何做的。
template typename TReal
AI_FORCE_INLINE
bool aiMatrix4x4tTReal…对于一个矩阵元素为浮点型的矩阵你是否还在使每个元素跟1.0f或0.0f进行比较如果这样只能说你的结果不一定正确那我们看看assimp中是如何做的。
template typename TReal
AI_FORCE_INLINE
bool aiMatrix4x4tTReal::IsIdentity() const {// Use a small epsilon to solve floating-point inaccuraciesconst static TReal epsilon 10e-3f;return (a2 epsilon a2 -epsilon a3 epsilon a3 -epsilon a4 epsilon a4 -epsilon b1 epsilon b1 -epsilon b3 epsilon b3 -epsilon b4 epsilon b4 -epsilon c1 epsilon c1 -epsilon c2 epsilon c2 -epsilon c4 epsilon c4 -epsilon d1 epsilon d1 -epsilon d2 epsilon d2 -epsilon d3 epsilon d3 -epsilon a1 1.fepsilon a1 1.f-epsilon b2 1.fepsilon b2 1.f-epsilon c3 1.fepsilon c3 1.f-epsilon d4 1.fepsilon d4 1.f-epsilon);
}
这里是定义了一个模板函数对于矩阵元素为整型和浮点型都是可行的。
需要引起我们注意的是极小值epsilon的定义 const static TReal epsilon 10e-3f; 还有双向比较
a2 epsilon a2 -epsilon
a1 1.fepsilon a1 1.f-epsilon
从而保证了元素值为0.0f或1.0f。