8 #ifndef NURBSSURFACE_HH_
9 #define NURBSSURFACE_HH_
12 #include <Base/Math/Vector2.hh>
13 #include <Base/Geometry/HomgPoint3D.hh>
21 void Init(
int dimu,
int dimv,
int degree);
124 int FindSpan(
int n,
int p,
double u, std::vector<double> U);
125 std::vector<double>
BasisFuns(
int i,
double u,
int p, std::vector<double> U);
int FindSpan(int n, int p, double u, std::vector< double > U)
void SetCtrlPoint(int i, int j, HomgPoint3D val)
std::vector< double > knotsu_
void SetWeight(int i, int j, double val)
void Set(const HOMGPOINT3D_TYPE &x, const HOMGPOINT3D_TYPE &y, const HOMGPOINT3D_TYPE &z)
set elementwise with given 3 euclidean scalar values.
std::vector< double > BasisFuns(int i, double u, int p, std::vector< double > U)
double GetWeight(int i, int j)
void SetDegree(int degree)
void SetKnotV(int i, double val)
int LoadFromXML(std::string xmlfile)
void SetInitialized(bool initialized)
Vector3< double > GetSurfacePoint(double u, double v)
std::vector< double > GetKnotsU() const
std::vector< std::vector< HomgPoint3D > > ctrlpoints_
void SetCTRLPointsToRandom(Vector2< double > start, Vector2< double > ende)
std::vector< double > knotsv_
class HomgPoint3D describes a point with 3 degrees of freedom in projective coordinates.
void Init(int dimu, int dimv, int degree)
std::vector< double > GetKnotsV() const
void SaveToXML(std::string xmlfile)
HomgPoint3D GetCtrlPoint(int i, int j)
void LoadFromXMLWeighted(std::string xmlfile, float weight)
bool GetInitialized() const
void SetKnotU(int i, double val)