OpenCasCade数学库 - 包围盒(Bnd_Box)的变换(Transformed)
1.包围盒(Bnd_Box)的定义
class Bnd_Box
{
public:...
private:Standard_Real Xmin;Standard_Real Xmax;Standard_Real Ymin;Standard_Real Ymax;Standard_Real Zmin;Standard_Real Zmax;Standard_Real Gap;Standard_Integer Flags;
};
2.变换(gp_Trsf)的定义
class gp_Trsf
{
public:...
private:Standard_Real scale;gp_TrsfForm shape; //几何变换类型gp_Mat matrix;gp_XYZ loc;
};
3.包围盒的变换(Transformed)
Bnd_Box Bnd_Box::Transformed (const gp_Trsf& T) const
{gp_TrsfForm F = T.Form();Bnd_Box newb(*this);if ( IsVoid() ) return newb;if (F == gp_Identity) {} //没有变化else if (F == gp_Translation) { //平移Standard_Real DX,DY,DZ;(T.TranslationPart()).Coord(DX,DY,DZ);if (!IsOpenXmin()) newb.Xmin += DX;if (!IsOpenXmax()) newb.Xmax += DX;if (!IsOpenYmin()) newb.Ymin += DY;if (!IsOpenYmax()) newb.Ymax += DY;if (!IsOpenZmin()) newb.Zmin += DZ;if (!IsOpenZmax()) newb.Zmax += DZ;}else {gp_Pnt P[8];Standard_Boolean Vertex[8];Standard_Integer i;for (i=0;i<8;i++) Vertex[i] = Standard_True;gp_Dir D[6];
// Standard_Integer vertices = 0;Standard_Integer directions = 0;if (IsOpenXmin()){directions++;D[directions-1].SetCoord(-1., 0., 0.);Vertex[0] = Vertex[2] = Vertex[4] = Vertex[6] = Standard_False;}if (IsOpenXmax()){directions++;D[directions-1].SetCoord( 1., 0., 0.);Vertex[1] = Vertex[3] = Vertex[5] = Vertex[7] = Standard_False;}if (IsOpenYmin()){directions++;D[directions-1].SetCoord( 0.,-1., 0.);Vertex[0] = Vertex[1] = Vertex[4] = Vertex[5] = Standard_False;}if (IsOpenYmax()){directions++;D[directions-1].SetCoord( 0., 1., 0.);Vertex[2] = Vertex[3] = Vertex[6] = Vertex[7] = Standard_False;}if (IsOpenZmin()){directions++;D[directions-1].SetCoord( 0., 0.,-1.);Vertex[0] = Vertex[1] = Vertex[2] = Vertex[3] = Standard_False;}if (IsOpenZmax()){directions++;D[directions-1].SetCoord( 0., 0., 1.);Vertex[4] = Vertex[5] = Vertex[6] = Vertex[7] = Standard_False;}newb.SetVoid();for (i=0;i<directions;i++) { //只对开放区间的方向做转换D[i].Transform(T);newb.Add(D[i]);}P[0].SetCoord(Xmin,Ymin,Zmin);P[1].SetCoord(Xmax,Ymin,Zmin);P[2].SetCoord(Xmin,Ymax,Zmin);P[3].SetCoord(Xmax,Ymax,Zmin);P[4].SetCoord(Xmin,Ymin,Zmax);P[5].SetCoord(Xmax,Ymin,Zmax);P[6].SetCoord(Xmin,Ymax,Zmax);P[7].SetCoord(Xmax,Ymax,Zmax);for (i=0;i<8;i++) {if (Vertex[i]) { //只对封闭区间的点做转换P[i].Transform(T);newb.Add(P[i]);}}newb.Gap=Gap;}return newb;
}
OpenCasCade数学库 - 包围盒(Bnd_Box)的变换(Transformed)相关推荐
- OpenCasCade数学库 - 方向(gp_Dir)
gp_Dir描述了三维空间中的一个单位向量. gp_Dir的定义. class gp_Dir { public:... private:gp_XYZ coord; }; 默认情况下,位置为原点,方向为 ...
- OpenCasCade数学库 - 函数IsEqual
1.gp_Dir 方向的相等判断:方向相同.(方向夹角接近0度) inline Standard_Boolean gp_Dir::IsEqual(const gp_Dir& Other, co ...
- 数学库:Extreme Optimization Numerical 8.1.4 Crack
Extreme Optimization Numerical.NET 的极端优化数值库,更快地构建金融.工程和科学应用程序,具有置信度和预测带的非线性曲线拟合,用于 .NET的极端优化数值库是为 Mi ...
- c++数学库 方法库 向量库等用法
c++数学库 http://www.cplusplus.com/reference/cmath/ C++ 有用库 https://en.cppreference.com/w/cpp/links/lib ...
- math-neon基于NEON指令的数学库
这是一个开源的库,地址为https://code.google.com/p/math-neon/,根据项目介绍应该是利用neon指令实现的数学库:包括三角.对数.指数等基于浮点的运算实现,以及矩阵运算 ...
- STM32 进阶教程 19 - IQmath数学库的使用
前言 STM32 M3 系列是不带浮点运算单元的,小数运算都是采用定点转浮点试式实现的,本节给大家介绍一个很好用的定点转浮点数学运算库,IQmath是德州仪器 (TI) 的一个高度优化的高精度数学函数 ...
- 计算机网络与影视多媒体技术 南京理工大学,计算机网络多媒体数学库和课件结构设计-计算机仿真论文-计算机论文(8页)-原创力文档...
计算机网络多媒体数学库和课件结构设计-计算机仿真论文-计算机论文 --文章均为WORD文档,下载后可直接编辑使用亦可打印-- 摘要:随着互联网时代的来临,计算机技术被广泛应用于各行各业.教育信息的改革 ...
- Lua_第17 章 数学库
第17 章 数学库 在这一章中(以下关于标准库的几章中相同)我的主要目的不是对每个函数给出完整地说明,而是告诉你标准库可以提供什么功能.为了可以清楚地说明问题,我可能 会忽略一些小的选项或者行为.基本 ...
- math.js:灵活强大的JavaScript数学库
最近为期权开发一些基本技术指标,用到一些C++的数学库,刚好看到JavaScript的math.js库,这里对math.js做一下简单介绍. 一.什么是math.js math.js是一个广泛应用于J ...
最新文章
- python【力扣LeetCode算法题库】820- 单词的压缩编码
- 安全研究人受够!再公布WordPress 3大外挂漏洞
- kubernetes1.30集群部署+dashboard+heapster
- C# 2.0 套接字编程实例初探
- Maven常见警告解决办法
- oracle中的new old 关键字
- Short, Integer, Long缓存
- 使用Vue做评论+localStorage存储(js模块化)
- 内存条频率4000MHZ,开启XMP技术内存读写速度前后对比图
- 出了雷军周鸿祎,湖北却消失在中国互联网版图
- 固态硬盘是什么接口_经常买错各种SATA和NVMe固态硬盘,有没有办法快速分辨呢?看接口...
- vscode能写winform窗体吗_vs code 写C#心得
- eccv 2018 image caption generation论文导读
- 西门子S7-PLCSIM仿真软件的应用
- html5播放加速,html5倍速播放插件
- AD19画板外框形状失败的解决办法
- 【机器学习】预测偏差与其原因
- 暗潮:微信小程序第三弹:关于微信小程序吸粉方式的可行性分析
- 梯度下降原理(SGD,Adam,BGD,momentum,Adagrad,NAG)
- mysql 1035_db2删除数据库SQL1035N 数据库当前正在使用。 SQLSTATE=57019