BIMHome v1.0.0
BIMHome接口文档说明
IGeometryCircle.h
浏览该文件的文档.
1/************************************************************************
2* @file IGeometryCircle.h
3*
4* @brief 几何圆特征数据接口类
5*
6* @details 几何圆特征数据接口类
7*
8* @author sunpeng
9*
10* @version 版本号 V0.1
11*
12* @date 2025-6-26
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef PLATFORMALGORITHM_INTERFACE_IGEOMETRYCIRCLE_H
19#define PLATFORMALGORITHM_INTERFACE_IGEOMETRYCIRCLE_H
20
21#include <BHGlobal.h>
22#include <string>
23#include "Base/Vector3D.h"
24#include <vector>
25#include <memory>
26
27namespace App {
28 class IDocument;
29 class IDocumentObject;
30}
31
32namespace Base {
33 class Axis;
34 class Axis2;
35}
36
37namespace PlatformAlgorithm
38{
39 class PlatformAlgorithmEXPORTS IGeometryCircle
40 {
41 public:
48 static std::shared_ptr<IGeometryCircle> convertDocObjToGeometryCircle(App::IDocumentObject* pCircleObj);
49
50 public:
51
57 virtual double area() const = 0;
58
64 virtual const Base::Axis axis() const = 0;
65
71 virtual double length() const = 0;
72
78 virtual const Base::Vector3d location() const = 0;
79
85 virtual double radius() const = 0;
86
87
93 virtual Base::Axis xAxis() const = 0;
94
100 virtual Base::Axis yAxis() const = 0;
101
108 virtual double distance(const Base::Vector3d& P) const = 0;
109
116 virtual double squareDistance(const Base::Vector3d& P) const = 0;
117
125 virtual bool contains(const Base::Vector3d& P, const double LinearTolerance) const = 0;
126
127 };
128}
129
130#endif //PLATFORMALGORITHM_INTERFACE_IGEOMETRYCIRCLE_H
P
Definition ISnapProcessedBase.h:49
Definition IDocumentObject.h:35
Axis 类,用于表示三维空间中的轴
Definition Axis.h:31
virtual double length() const =0
计算圆的周长
virtual double distance(const Base::Vector3d &P) const =0
计算圆上一点到给定点的最短距离
virtual double area() const =0
计算圆的面积
virtual bool contains(const Base::Vector3d &P, const double LinearTolerance) const =0
判断点是否在圆上
virtual const Base::Vector3d location() const =0
计算圆的圆心
virtual const Base::Axis axis() const =0
计算圆的主轴
virtual double radius() const =0
计算圆的半径
virtual Base::Axis yAxis() const =0
计算圆的Y主轴
virtual Base::Axis xAxis() const =0
计算圆的X主轴
static std::shared_ptr< IGeometryCircle > convertDocObjToGeometryCircle(App::IDocumentObject *pCircleObj)
将文档对象转换为几何曲线对象
virtual double squareDistance(const Base::Vector3d &P) const =0
计算圆上一点到给定点的最短距离平方
Definition IGeometryCircle.h:40
Definition BaseFigureFactory.h:28
Definition BaseFigureFactory.h:24
Definition BaseFigureFactory.h:33