在BIMBase的几何接口中,分为了两大类别,分别是基本几何类和几何图形类(几何基本元素)。其中,基本几何类主要是用来构造基础的几何,如点、向量、范围、矩阵、线等,用辅助几何图形的创建、编辑、计算等。下表罗列了所有基本几何类的概述。
| 类型 | 头文件名称 | 描述 |
|---|---|---|
| 点 | GePoint2d | 二维点类型数据,支持二维点运算 |
| GePoint3d | 三维点类型数据,支持三维点运算 | |
| GePoint4d | 四维点类型数据,支持四维点运算 | |
| GePointInt | 整型点类型数据,包括二维整型点和三维整型点 | |
| 向量 | GeVec2d | 二维向量,支持二维向量运算 |
| GeVec3d | 三维向量,支持三维向量运算 | |
| 线 | GeRay3d | 三维射线,支持多种构造方法、参数计算、投影、位置关系等 |
| GeEllipse3d | 三维椭圆弧,支持多种构造方法、参数计算、投影、位置关系等 | |
| GeSegment3d | 三维线段,支持多种构造方法、参数计算、投影、位置关系等 | |
| 范围 | GeRange1d | 一维范围,支持多种构造方法、一维空间范围计算 |
| GeRange2d | 二维范围,支持多种构造方法、二维空间范围计算 | |
| GeRect | 二维矩形,由两个二维整型点构成 | |
| GeRange3d | 三维范围,支持多种构造方法、三维空间范围计算 | |
| GeRangeTree | 网格实体参数范围的计算辅助类,处理范围相关的计算 | |
| 面 | GePlane3d | 三维面,支持多种构造方法,与三维点、向量的空间计算 |
| GeClipPlane | 三维裁剪平面,裁剪计算基本单位平面 | |
| GeClipPlaneSet | 三维裁剪平面集,定义了:1. 点集与裁剪平面位置关系GeClipPlaneContainment2. 凸平面集GeConvexClipPlaneSet (单位平面组成)3. 裁剪平面集GeClipPlaneSet(凸平面集组成) | |
| 角 | GeAngle | 角,包括弧度角、角度角和欧拉角(姿态角)的多种构造方法、相互转换 |
| 矩阵 | GeRotMatrix | 旋转缩放矩阵,为3*3的double型矩阵数据结构,支持多种构造方法、矩阵计算 |
| GeTransform | 几何转换矩阵,为3*4的double型矩阵数据结构,支持多种构造方法、矩阵计算 | |
| GeMatrix4d | 几何齐次变换矩阵,为4*4的double型矩阵数据结构,支持多种构造方法、矩阵计算 | |
| GeMap4d | 一对互逆齐次变换矩阵,分别表示正向和逆向变换 |
<br />
几何基本元素则主要包含可以直接添加到几何,参与显示的曲线、网格实体、基本实体,以及这些元素的信息、处理方法等。下表则为所有几何基本元素的描述。
| 类型 | 头文件名称 | 描述 |
|---|---|---|
| 曲线 | GeCurveBase | 基本曲线,包含曲线类型枚举定义,支持多种类型曲线的构造/获取方法、几何计算,可与曲线组进行嵌套 |
| GeCurveBaseId | 辅助标记曲线的来源实体,可扩展其他主流几何内核表达实体的曲线 | |
| GeCurveArray | 曲线组,包含曲线组类型枚举定义、点的位置分类,由基本曲线嵌套构成,支持自身基本曲线的增删改查,几何关系计算 | |
| GeCurveLocationInfo | 曲线辅助类,生成曲线上点的信息,辅助曲线求交等运算,记录交点信息等 | |
| GeProportCurveInfo | 曲线辅助类,生成曲线的参数分割后的子曲线信息 | |
| GeCurveGapOptions | 曲线容差控制辅助类 | |
| GeCurveOffsetOptions | 曲线偏置控制辅助类 | |
| IGeCurveBaseInfo | 接口基类,用以保存有关曲线图元的其他相关信息 | |
| GeCurveFunction | 曲线方法,包括平面曲线相交、曲线间相近点、最近点/线段计算此类中还定义了圆角弧线信息,用来定义两曲线间以圆角倒角 | |
| GeCurveTopologyId | 辅助标记曲线在来源实体中的拓扑关系,可扩展为Brep,Sweep,Mesh等表达的实体的曲线 | |
| GeCurveBasePtrPair | 曲线图元对,组织为一对曲线图元 | |
| IGeCurveBaseProcess | 辅助关于曲线特定处理的接口类,可递归调用 | |
| GePathLocationInfo | 曲线辅助类,对点沿多曲线路径的位置的详细描述,同时包括整个路径中基本体的索引信息和从开始位置的路径长度信息 | |
| 网格实体 | PolyfacePipeOperatorTmp | 网格实体基类,定义网格的顶点,法向量,UV参数,颜色,面片信息等成员变量 |
| PolyfacePipeOperatorTmpImp | 网格实体辅助类,用以实现查询网格的顶点,法向量,UV参数,颜色,面片信息等公有函数接口 | |
| PolyfaceHandle | 网格实体类,用以生成网格实体,并计算设置相关网格参数 | |
| PolyfaceEdgesIndices | 网格实体的边索引辅助类,用以构造和访问网格的边链数据 | |
| IPolyfacePipeOperator | 网格实体接口基类,用以定义查询网格的顶点,法向量,UV参数,颜色,面片信息等虚函数接口 | |
| EdgeOfFacet | 网格面片的线段边,辅助构造网格实体 | |
| FacetParamRange | 网格实体参数范围的计算辅助类,包括UV参数范围,三维空间范围,法向量范围 | |
| FacetSetting | 设置生成网格实体的参数,辅助构造网格实体 | |
| GeFacetLocationInfo | 网格实体面片的局部点信息,包括点,UV值,法向量,颜色等,辅助显示和计算 | |
| 基本实体 | IGeSolidBase | 基本实体,支持多种类型的实体创建/获取、图元信息读取 |
| GeSolidLocationInfo | 实体定位信息,为基本实体上局部点的相关参数和详细信息,主要用于选择拾取基本实体 | |
| GeSolidBaseDef | 实体类型定义,定义了基本实体实际储存的信息类型,包括空、盒体、圆锥体、拉伸体、旋转扫掠体、截面扫掠体、球体、圆环体 | |
| 以下为各实体类型信息:支持基本几何信息、面标识获取,曲线相交位置信息计算等 | ||
| GeBoxInfo | 盒体信息,由底面矩形、顶面位置坐标和长宽构造而成 | |
| GeConeInfo | 圆锥体信息,由底/顶面的圆心、半径和所在平面的两个垂直向量构造而成 | |
| GeExtrusionInfo | 拉伸体信息,由截面曲线组向拉伸向量方向拉伸构造而成 | |
| GeRotationalSweepInfo | 旋转扫掠体信息,由截面曲线组向射线方向以扫掠角旋转扫掠构造而成 | |
| GeRuledSweepInfo | 截面扫掠体信息,由一系列截面曲线组依次扫掠构造而成,截面曲线组的曲线数量和类型需一致 | |
| GeSphereInfo | 球体信息,由球心,零纬度平面,经向半径,纬向半径和纬向扫掠角度参数来定义 | |
| GeTorusPipeInfo | 圆环体信息,由圆心和长短轴控制圆环的位置和尺寸 | |
| 几何 | IGeometry | 基本几何,支持多种类型的几何创建/获取此类中还定义了几何类型接口,包括曲线、曲线组、实体、样条面(暂未开放接口)、网格实体 |
| TemplateVector | 组模板类,模板的实现类主要用于网格实体的基本参数的保存和访问 |
<br />