BIMHome v1.0.0
BIMHome接口文档说明
ArcofEllipse.h
浏览该文件的文档.
1/************************************************************************
2* @file ArcofEllipse.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_GEOMETRYELLIPSEARC_H
19#define BIMHOMEBASE_GEOMETRYELLIPSEARC_H
20
21#include "Base/Math/Geometry/Curve.h"
22
23namespace Base
24{
25 //椭圆弧
26 class BaseExport ArcofEllipse :public Curve
27 {
28 public:
41 ArcofEllipse(Base::Vector3d centerPoint, Base::Vector3d majorAxisDir, double majorRadius, double minorRadius, double startAngle, double EndAngle, bool clockWise);
42 virtual Geometry* copy(void) const;
43
45
51
57 void setCenterPoint(const Base::Vector3d& centerPoint);
58
64
70 void setNormal(const Base::Vector3d& normal);
71
77
83 void setMajorAxisDir(const Base::Vector3d& majorAxisDir);
84
90 double getMajorRadius() const;
91
97 void setMajorRadius(double majorRadius);
98
104 double getMinorRadius() const;
105
111 void setMinorRadius(double minorRadius);
112
118 double getStartAngle() const;
119
125 void setStartAngle(double startAngle);
126
132 double getEndAngle() const;
133
139 void setEndAngle(double EndAngle);
140
146 bool isClockWise() const;
147
150
151 bool isClosed();
152 virtual double getLength()const override;
153
154 void Reverse();
155
156 private:
158 Base::Vector3d mNormal;//所在平面的法向量
159 Base::Vector3d mMajorAxisDir;//主轴的方向,即基准轴
160 double mMajorRadius;//主轴半径
161 double mMinorRadius;//副轴半径
162 double mStartAngle;//起始角度 弧度制
163 double mEndAngle;//终止角度 弧度制
164 bool mClockWise;//true逆时针,false顺时针
167 };
168}
169
170#endif
double mMajorRadius
Definition ArcofEllipse.h:160
Base::Vector3d getEndPoint() const
Base::Vector3d getStartPoint() const
bool isClockWise() const
获取方向
void setMinorRadius(double minorRadius)
设置副轴半径
virtual double getLength() const override
void calculateStartEndPoint()
double getMajorRadius() const
获取主轴半径
ArcofEllipse(Base::Vector3d centerPoint, Base::Vector3d majorAxisDir, double majorRadius, double minorRadius, double startAngle, double EndAngle, bool clockWise)
构建三维椭圆弧
Base::Vector3d mEndPoint
Definition ArcofEllipse.h:166
double mStartAngle
Definition ArcofEllipse.h:162
void setNormal(const Base::Vector3d &normal)
设置所在平面的法向量
void setMajorRadius(double majorRadius)
设置主轴半径
void setStartAngle(double startAngle)
设置起始角度
virtual Geometry * copy(void) const
double mMinorRadius
Definition ArcofEllipse.h:161
void setCenterPoint(const Base::Vector3d &centerPoint)
设置中心点
Base::Vector3d getNormal() const
获取所在平面的法向量
void setEndAngle(double EndAngle)
设置终止角度
void setMajorAxisDir(const Base::Vector3d &majorAxisDir)
设置主轴方向
Base::Vector3d mMajorAxisDir
Definition ArcofEllipse.h:159
Base::Vector3d mStartPoint
Definition ArcofEllipse.h:165
double getMinorRadius() const
获取副轴半径
Base::Vector3d getMajorAxisDir() const
获取主轴方向
Base::Vector3d mCenterPoint
Definition ArcofEllipse.h:157
bool mClockWise
Definition ArcofEllipse.h:164
double mEndAngle
Definition ArcofEllipse.h:163
double getEndAngle() const
获取终止角度
Base::Vector3d getCenterPoint() const
获取中心点
double getStartAngle() const
获取起始角度
Base::Vector3d mNormal
Definition ArcofEllipse.h:158
Definition ArcofEllipse.h:27
Definition Curve.h:27
Definition Geometry.h:81
Definition BaseFigureFactory.h:24