Terminus
polyline.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 
5 #include <QVector3D>
6 
7 namespace terminus
8 {
9 
14 class Polyline
15 {
16 public:
17  Polyline(const std::vector<QVector3D> & controlPoints = {{0.f, 0.f, 0.f}, {1.f, 0.f, 0.f}});
18 
24  QVector3D getPosition(float distance) const;
25 
31  QVector3D getTangent(float distance) const;
32 
36  float length() const;
37 
38 protected:
39  void calculateKnotSequence();
40  int getIndex(float distance) const;
41 
42 protected:
43  std::vector<QVector3D> m_controlPoints;
44 
45  std::vector<float> m_knotSequence;
46  float m_tEnd;
47 };
48 
49 }//namespace terminus
int getIndex(float distance) const
Definition: polyline.cpp:49
The Polyline class implements a sequence of line segments and is used to approximate a real spline...
Definition: polyline.h:14
std::vector< QVector3D > m_controlPoints
Definition: polyline.h:43
QVector3D getPosition(float distance) const
Definition: polyline.cpp:14
float m_tEnd
Definition: polyline.h:46
std::vector< float > m_knotSequence
Definition: polyline.h:45
void calculateKnotSequence()
Definition: polyline.cpp:36
Definition: eventhandler.cpp:18
QVector3D getTangent(float distance) const
Definition: polyline.cpp:24
float length() const
Definition: polyline.cpp:31
Polyline(const std::vector< QVector3D > &controlPoints={{0.f, 0.f, 0.f},{1.f, 0.f, 0.f}})
Definition: polyline.cpp:8