BIMHome v1.0.0
BIMHome接口文档说明
NURBSCurve.h
浏览该文件的文档.
1/************************************************************************
2* @file NURBSCurve.h
3*
4* @brief 非均匀有理B样条曲线
5*
6* @details 非均匀有理B样条曲线
7*
8* @author lirf
9*
10* @version 1.0
11*
12* @date 2025-6-9
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef BIMHOMEBASE_GEOMETRYNURBSCURVE_H
19#define BIMHOMEBASE_GEOMETRYNURBSCURVE_H
20
21#include "Base/Math/Geometry/Curve.h"
22#include "Base/Math/Geometry/BSplineCurve.h"
23
24namespace Base
25{
26 //B样条曲线
27 class BaseExport NURBSCurve :public BSplineCurve
28 {
29 public:
32
42 NURBSCurve(const std::vector<Base::Vector3d>& Poles,
43 const std::vector<double>& Knots,
44 const std::vector<int>& Multiplicities,
45 const int Degree,
46 const bool Periodic = false);
47
59 NURBSCurve(const std::vector<Base::Vector3d>& Poles,
60 const std::vector<double>& Weights,
61 const std::vector<double>& Knots,
62 const std::vector<int>& Multiplicities,
63 const int Degree,
64 const bool Periodic = false,
65 const bool CheckRational = true);
66
67 virtual Geometry* copy(void) const;
68
74 std::vector<double>& getWeights() ;
75
81 void setWeights(const std::vector<double>& weights);
82
83 bool isClosed();
84 double getLength()const;
85
86 void Reverse();
87
88 private:
89 std::vector<double> mWeights; // 权值
90 };
91}
92
93#endif
Definition BSplineCurve.h:27
Definition Geometry.h:81
NURBSCurve(const std::vector< Base::Vector3d > &Poles, const std::vector< double > &Weights, const std::vector< double > &Knots, const std::vector< int > &Multiplicities, const int Degree, const bool Periodic=false, const bool CheckRational=true)
构建非均匀有理B样条曲线
virtual Geometry * copy(void) const
NURBSCurve(const std::vector< Base::Vector3d > &Poles, const std::vector< double > &Knots, const std::vector< int > &Multiplicities, const int Degree, const bool Periodic=false)
构建非均匀B样条曲线
std::vector< double > & getWeights()
获取权值
double getLength() const
void setWeights(const std::vector< double > &weights)
设置权值
std::vector< double > mWeights
Definition NURBSCurve.h:89
Definition NURBSCurve.h:28
Definition BaseFigureFactory.h:24