BIMHome v1.0.0
BIMHome接口文档说明
Geometry.h
浏览该文件的文档.
1/************************************************************************
2* @file Geometry.h
3*
4* @brief 基础集合图形定义
5*
6* @details 基础集合图形定义
7*
8* @author lirf
9*
10* @version 1.0
11*
12* @date 2025-6-7
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef BIMHOMEBASE_GEOMETRY_H
19#define BIMHOMEBASE_GEOMETRY_H
20
21#include <Base/Vector3D.h>
22#include <Base/Tools2D.h>#include "BHGlobal.h"
23#include <string>
24#include <vector>
25#include <memory>
26
27#define GEOMETRY_HEADER(_name_) \
28public: \
29 virtual std::string getTypeName();
30
31#define GEOMETRY_SRC(_name_) \
32std::string _name_::getTypeName() { return #_name_;}
33
34namespace Base
35{
36 enum class GeometryType
37 {
38 None, // 空
39 Point, // 点
40
41 Curve, // 曲线
42 Line, // 直线
43 LineSegment, // 线段
44 PolyLine, // 多段线
45 Circle, // 圆
46 Ellipse, // 椭圆
47 Arc, // 圆弧
48 EllipseArc, // 椭圆弧
49
50 BSplineCurve, // B样条曲线
51 BezierCurve, // 贝塞尔曲线
52 NURBS, // NURBS曲线
53 Parabola, // 抛物线
54 Hyperbola, // 双曲线
55
56 Surface, // 曲面
57 Plane, // 平面
58 BezierSurface, // 贝塞尔曲面
59 BSplineSurface, // B样条曲面
60 ConicalSurface, // 圆锥曲面
61 CylindricalSurface, // 圆柱曲面
62 SphericalSurface, // 球面
63 LinearExtrusionSurface, // 线性拉伸曲面
64 RevolutionSurface, // 旋转曲面
65 SweepSurface, // 扫掠曲面
66 OffsetSurface, // 偏移曲面
67 OsculatingSurface, // 接触曲面
68 BoundedSurface, // 有界曲面
69
70 //几何体
71 Cone, //圆锥
72 Cylinder, //圆柱
73 //
74
75 Hatch, //填充
76 Block, //块
77 //扩展
78 };
79
80 class BaseExport Geometry
81 {
83 public:
85 virtual ~Geometry();
86
88 Geometry* clone(void) const;
89 virtual Geometry* copy(void) const = 0;
90 virtual double getLength() const;//计算geom长度
91
92 protected:
94 };
95
96}
97
98#endif // BIMHOMEBASE_AXIS_H
#define GEOMETRY_HEADER(_name_)
Definition Geometry.h:27
Definition BSplineCurve.h:27
Definition BezierCurve.h:27
Definition Block.h:26
Definition Circle.h:27
Definition Curve.h:27
Definition Ellipse.h:28
virtual Geometry * copy(void) const =0
Geometry * clone(void) const
GeometryType getType() const
virtual double getLength() const
GeometryType mType
Definition Geometry.h:93
virtual ~Geometry()
Definition Geometry.h:81
Definition Hatch.h:26
Definition Hyperbola.h:29
Definition Line.h:28
Definition LineSegment.h:28
Definition Parabola.h:30
Definition Point.h:27
Definition PolyLine.h:27
GeometryType
Definition Geometry.h:37
Definition BaseFigureFactory.h:24