INOS
cinosmovepathinterpolatornurbs.h
Go to the documentation of this file.
1//******************************************************************************
26//******************************************************************************
27#ifndef INC_CINOSMOVEPATHINTERPOLATORNURBS_H
28#define INC_CINOSMOVEPATHINTERPOLATORNURBS_H
29//------------------------------------------------------------------------------
30// defines
31//------------------------------------------------------------------------------
32//
33//------------------------------------------------------------------------------
34// includes
35//------------------------------------------------------------------------------
36//
37// system
38#include <inos.h>
39#include <cinosnurbscurve.h>
41//
42// C++
43//
44// project
45//
46//------------------------------------------------------------------------------
47// struct definition
48//------------------------------------------------------------------------------
49//
69//
70//------------------------------------------------------------------------------
71// class definition
72//------------------------------------------------------------------------------
73//
75{
76 //--- user interface ---------------------------------------------------
77
78 // public member functions
79 public :
80
82 virtual double GetCurveLength() override;
83
86 TINOSMovePathVec& ovPos) override;
88 virtual void GetDirection(double adP,
89 TINOSMovePathVec& ovDir) override;
91 virtual void GetDirectionLast(TINOSMovePathVec& ovDir) override;
93 virtual void GetDerivative(uint32 auLevel, double adP,
94 TINOSMovePathVec& ovDer) override;
96 virtual void GetD2max(double adBgn, double adEnd, TINOSMovePathVec& aD2max) override;
98 virtual void GetD3max(double adBgn, double adEnd, TINOSMovePathVec& aD3max) override;
99
101 virtual uint32 Prepare() override;
102 //--- internals --------------------------------------------------------
103
104 // constructor / destructor
105 public :
112 CINOSMovePathInterpolatorNurbs::NurbsCleanup();
113 };
114
115
117 virtual uint32 PreparePart(
121 double adTolerance, double adShorten = 0.0, double adExtend = 0.0);
123 virtual SINOSNurbsPart* GetPart(double adP);
131 double adTolerance);
132
133 protected :
134 // protected member functions
136 virtual void Cleanup() override;
137
138 private:
139 // private member functions
140
142 void NurbsCleanup();
143
144 protected :
145
146 // protected members
148 double m_dLength;
150 uint32 m_uParts;
164 TINOSMovePathVec m_OverlapPos{};
167
168 // dynamic
170};
171
172//------------------------------------------------------------------------------
173// end of file
174//------------------------------------------------------------------------------
175
176#endif // INC_CINOSMOVEPATHINTERPOLATORNURBS_H
The CINOSMovePathInterpolator class.
The CINOSNurbsCurve class.
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
Definition cinosmcmodule.h:1900
Definition cinosmovepathcurve.h:56
Definition cinosmovepathinterpolatornurbs.h:75
virtual void GetD3max(double adBgn, double adEnd, TINOSMovePathVec &aD3max) override
get max D3 vector of given range
virtual uint32 PreparePart(CINOSMovePathSegmentBase *apBgn, CINOSMovePathSegmentBase *apEnd, CINOSMovePathSegmentBase *apNxt, double adTolerance, double adShorten=0.0, double adExtend=0.0)
prepare part
virtual double CalcAngle(CINOSMovePathSegment *apSeg1, CINOSMovePathSegment *apSeg2)
calc angle between segments
virtual void GetDerivative(uint32 auLevel, double adP, TINOSMovePathVec &ovDer) override
get auLevel derivative vector at 'adP'
double m_dOverlapExtend
overlap reduce length
Definition cinosmovepathinterpolatornurbs.h:166
double m_dVectorize
vectorize factor
Definition cinosmovepathinterpolatornurbs.h:158
virtual SINOSNurbsPart * GetPart(double adP)
get part
virtual void GetD2max(double adBgn, double adEnd, TINOSMovePathVec &aD2max) override
get max D2 vector of given range
SINOSNurbsPart * m_pPart[DF_INOS_MOVEPATH_MAX_POINTS]
array of parts
Definition cinosmovepathinterpolatornurbs.h:154
virtual void GetPosition(double adP, CINOSMovePathSegment *&opSegment, TINOSMovePathVec &ovPos) override
get position vector at 'adP'
virtual void GetDirectionLast(TINOSMovePathVec &ovDir) override
get direction vector at the end
virtual ~CINOSMovePathInterpolatorNurbs()
destructor
Definition cinosmovepathinterpolatornurbs.h:111
uint32 m_uLastPart
last part index
Definition cinosmovepathinterpolatornurbs.h:152
uint32 GetPartPoints(CINOSMovePathSegmentBase *apBgn, CINOSMovePathSegmentBase *apEnd, double adTolerance)
get number of part points
uint32 m_uInterpolationPoints
nurbs interpolation points
Definition cinosmovepathinterpolatornurbs.h:160
double m_dVectorLength[DF_INOS_MOVEPATH_MAX_POINTS > >1]
sub parts vector lengths
Definition cinosmovepathinterpolatornurbs.h:156
virtual void GetDirection(double adP, TINOSMovePathVec &ovDir) override
get direction vector at 'adP'
TINOSMovePathVec m_OverlapPos
overlap position
Definition cinosmovepathinterpolatornurbs.h:164
virtual double GetCurveLength() override
get curve length
virtual void Cleanup() override
cleanup
CINOSMovePathInterpolatorNurbs(CINOSMovePathCurve *apCurve, CINOSMovePath *apPath=NULL)
constructor
virtual uint32 Prepare() override
do precalculation
double m_dLength
curve length
Definition cinosmovepathinterpolatornurbs.h:148
bool m_bOverlapPos
overlap position valid
Definition cinosmovepathinterpolatornurbs.h:162
uint32 m_uParts
number of parts
Definition cinosmovepathinterpolatornurbs.h:150
Definition cinosmovepathinterpolator.h:82
Definition cinosmovepathsegmentbase.h:48
Definition cinosmovepathsegment.h:45
Definition cinosmovepath.h:566
#define DF_INOS_NURBSCURVE_INTERPOLATION_POINTS
Definition inosdefault.h:188
#define DF_INOS_MOVEPATH_MAX_POINTS
Definition inosdefault.h:153
Definition cinosmovepathinterpolatornurbs.h:51
double m_dStart
part start
Definition cinosmovepathinterpolatornurbs.h:53
CINOSMovePathSegment * m_pSegmentFirst
pointer to first curve segment
Definition cinosmovepathinterpolatornurbs.h:59
uint32 m_uSegmentActualId
actual segment id
Definition cinosmovepathinterpolatornurbs.h:65
CINOSNurbsCurve< DF_INOS_MOVEPATH_MAX_AXES > m_Curve
curve
Definition cinosmovepathinterpolatornurbs.h:67
uint32 m_uSegmentActualIndex
actual segment index
Definition cinosmovepathinterpolatornurbs.h:63
CINOSMovePathSegment * m_pSegmentActual
pointer to actual curve segment
Definition cinosmovepathinterpolatornurbs.h:61