18#ifndef BIMHOMEBASE_NURBSCURVE2D_H
19#define BIMHOMEBASE_NURBSCURVE2D_H
21#include "Base/Math/Geometry/Curve2D.h"
22#include "Base/Math/Geometry/BSplineCurve2D.h"
42 const std::vector<double>& Knots,
43 const std::vector<int>& Multiplicities,
45 const bool Periodic =
false);
59 const std::vector<double>& Weights,
60 const std::vector<double>& Knots,
61 const std::vector<int>& Multiplicities,
63 const bool Periodic =
false,
64 const bool CheckRational =
true);
79 void setPoles(
const std::vector<Base::Vector2d>& poles);
Definition BSplineCurve2D.h:27
Definition Geometry2D.h:72
void setDegree(int degree)
设置阶数
std::vector< int > & getMultiplicities()
获取重数
int getDegree() const
获取阶数
bool getPeriodic() const
获取是否为周期性曲线
void setPoles(const std::vector< Base::Vector2d > &poles)
设置构造点
NURBSCurve2D(const std::vector< Base::Vector2d > &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样条曲线
void setRational(bool rational)
设置是否为有理性曲线
bool getRational() const
获取是否为有理性曲线
std::vector< double > & getWeights()
获取权值
NURBSCurve2D(const std::vector< Base::Vector2d > &Poles, const std::vector< double > &Knots, const std::vector< int > &Multiplicities, const int Degree, const bool Periodic=false)
构造B样条曲线
virtual Geometry2D * copy(void) const
void setPeriodic(bool periodic)
设置是否为周期性曲线
std::vector< Base::Vector2d > & getPoles()
获取构造点
double getLength() const
获取长度
void setWeights(const std::vector< double > &weights)
设置权值
void setMultiplicities(const std::vector< int > &multiplicities)
设置重数
std::vector< double > mWeights
Definition NURBSCurve2D.h:150
Definition NURBSCurve2D.h:27
Definition BaseFigureFactory.h:24