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)相关推荐

  1. OpenCasCade数学库 - 方向(gp_Dir)

    gp_Dir描述了三维空间中的一个单位向量. gp_Dir的定义. class gp_Dir { public:... private:gp_XYZ coord; }; 默认情况下,位置为原点,方向为 ...

  2. OpenCasCade数学库 - 函数IsEqual

    1.gp_Dir 方向的相等判断:方向相同.(方向夹角接近0度) inline Standard_Boolean gp_Dir::IsEqual(const gp_Dir& Other, co ...

  3. 数学库:Extreme Optimization Numerical 8.1.4 Crack

    Extreme Optimization Numerical.NET 的极端优化数值库,更快地构建金融.工程和科学应用程序,具有置信度和预测带的非线性曲线拟合,用于 .NET的极端优化数值库是为 Mi ...

  4. c++数学库 方法库 向量库等用法

    c++数学库 http://www.cplusplus.com/reference/cmath/ C++ 有用库 https://en.cppreference.com/w/cpp/links/lib ...

  5. math-neon基于NEON指令的数学库

    这是一个开源的库,地址为https://code.google.com/p/math-neon/,根据项目介绍应该是利用neon指令实现的数学库:包括三角.对数.指数等基于浮点的运算实现,以及矩阵运算 ...

  6. STM32 进阶教程 19 - IQmath数学库的使用

    前言 STM32 M3 系列是不带浮点运算单元的,小数运算都是采用定点转浮点试式实现的,本节给大家介绍一个很好用的定点转浮点数学运算库,IQmath是德州仪器 (TI) 的一个高度优化的高精度数学函数 ...

  7. 计算机网络与影视多媒体技术 南京理工大学,计算机网络多媒体数学库和课件结构设计-计算机仿真论文-计算机论文(8页)-原创力文档...

    计算机网络多媒体数学库和课件结构设计-计算机仿真论文-计算机论文 --文章均为WORD文档,下载后可直接编辑使用亦可打印-- 摘要:随着互联网时代的来临,计算机技术被广泛应用于各行各业.教育信息的改革 ...

  8. Lua_第17 章 数学库

    第17 章 数学库 在这一章中(以下关于标准库的几章中相同)我的主要目的不是对每个函数给出完整地说明,而是告诉你标准库可以提供什么功能.为了可以清楚地说明问题,我可能 会忽略一些小的选项或者行为.基本 ...

  9. math.js:灵活强大的JavaScript数学库

    最近为期权开发一些基本技术指标,用到一些C++的数学库,刚好看到JavaScript的math.js库,这里对math.js做一下简单介绍. 一.什么是math.js math.js是一个广泛应用于J ...

最新文章

  1. python【力扣LeetCode算法题库】820- 单词的压缩编码
  2. 安全研究人受够!再公布WordPress 3大外挂漏洞
  3. kubernetes1.30集群部署+dashboard+heapster
  4. C# 2.0 套接字编程实例初探
  5. Maven常见警告解决办法
  6. oracle中的new old 关键字
  7. Short, Integer, Long缓存
  8. 使用Vue做评论+localStorage存储(js模块化)
  9. 内存条频率4000MHZ,开启XMP技术内存读写速度前后对比图
  10. 出了雷军周鸿祎,湖北却消失在中国互联网版图
  11. 固态硬盘是什么接口_经常买错各种SATA和NVMe固态硬盘,有没有办法快速分辨呢?看接口...
  12. vscode能写winform窗体吗_vs code 写C#心得
  13. eccv 2018 image caption generation论文导读
  14. 西门子S7-PLCSIM仿真软件的应用
  15. html5播放加速,html5倍速播放插件
  16. AD19画板外框形状失败的解决办法
  17. 【机器学习】预测偏差与其原因
  18. 暗潮:微信小程序第三弹:关于微信小程序吸粉方式的可行性分析
  19. 梯度下降原理(SGD,Adam,BGD,momentum,Adagrad,NAG)
  20. mysql 1035_db2删除数据库SQL1035N 数据库当前正在使用。 SQLSTATE=57019

热门文章

  1. java逻辑他推理之公式逆推
  2. [VB]获得RecordSet的记录总数
  3. 《惢客创业日记》2020.01.14(周二)从新学习《长征》
  4. 基恩士plc-EtherCAT三十一轴,控制案例程序
  5. 外呼系统从三个维度提升电销业绩
  6. 上海租房自用攻略—在上海租房前必看
  7. 苹果和虫子c++(新手练习)
  8. 牛牛!!央视春节晚会应该由他去策划
  9. Allegro中尺寸标注显示小数点后位数
  10. Hi-C辅助基因组组装技术以及其常用的软件介绍