BIMHome v1.0.0
BIMHome接口文档说明
IGeometryCurve.h
浏览该文件的文档.
1/************************************************************************
2* @file IGeometryCurve.h
3*
4* @brief 几何曲线(包含组合曲线)特征数据接口类
5*
6* @details 几何曲线特征数据接口类
7*
8* @author sunpeng
9*
10* @version 版本号 V0.1
11*
12* @date 2025-6-24
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef PLATFORMALGORITHM_INTERFACE_IGEOMETRYCURVE_H
19#define PLATFORMALGORITHM_INTERFACE_IGEOMETRYCURVE_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{
34 class PolyLine;
35}
36
37namespace PlatformAlgorithm
38{
44 class PlatformAlgorithmEXPORTS IGeometryCurve
45 {
46 public:
53 static std::shared_ptr<IGeometryCurve> convertDocObjToGeometryCurve(App::IDocumentObject* pCurveObj);
54
61 static std::shared_ptr<IGeometryCurve> convertPolyLineToGeometryCurve(const Base::PolyLine& polyLine);
62
63 public:
69 virtual double firstParameter() const = 0;
70
76 virtual double lastParameter() const = 0;
77
83 virtual bool isClosed() const = 0;
84
91 virtual void d0(const double U, Base::Vector3d& P) const = 0;
92
100 virtual void d1(const double U, Base::Vector3d& P, Base::Vector3d& V1) const = 0;
101
110 virtual void d2(const double U, Base::Vector3d& P, Base::Vector3d& V1, Base::Vector3d& V2) const = 0;
111
121 virtual void d3(const double U, Base::Vector3d& P, Base::Vector3d& V1, Base::Vector3d& V2, Base::Vector3d& V3) const = 0;
122
130 virtual Base::Vector3d dN(const double U, const int N) const = 0;
131
138 virtual Base::Vector3d value(const double U) const = 0;
139 };
140
141}
142
143#endif //PLATFORMALGORITHM_INTERFACE_IGEOMETRYCURVE_H
P
Definition ISnapProcessedBase.h:49
U
Definition ISnapProcessedBase.h:50
N
Definition ISnapProcessedBase.h:49
Definition IDocumentObject.h:35
Definition PolyLine.h:27
virtual bool isClosed() const =0
判断曲线是否闭合
virtual double lastParameter() const =0
获取曲线终止参数值
virtual double firstParameter() const =0
获取曲线起始参数值
virtual void d0(const double U, Base::Vector3d &P) const =0
计算零阶导数
virtual Base::Vector3d dN(const double U, const int N) const =0
计算参数值 U 的 N 阶导数
virtual void d3(const double U, Base::Vector3d &P, Base::Vector3d &V1, Base::Vector3d &V2, Base::Vector3d &V3) const =0
计算三阶导数
virtual void d1(const double U, Base::Vector3d &P, Base::Vector3d &V1) const =0
计算一阶导数
virtual Base::Vector3d value(const double U) const =0
计算给定点的坐标
static std::shared_ptr< IGeometryCurve > convertPolyLineToGeometryCurve(const Base::PolyLine &polyLine)
将多线段对象转换为几何曲线对象
static std::shared_ptr< IGeometryCurve > convertDocObjToGeometryCurve(App::IDocumentObject *pCurveObj)
将文档对象转换为几何曲线对象
virtual void d2(const double U, Base::Vector3d &P, Base::Vector3d &V1, Base::Vector3d &V2) const =0
计算二阶导数
几何曲线接口类
Definition IGeometryCurve.h:45
Definition BaseFigureFactory.h:28
Definition BaseFigureFactory.h:24
Definition BaseFigureFactory.h:33