27#ifndef INC_CINOSMOVEPATHINTERPOLATOR_H
28#define INC_CINOSMOVEPATHINTERPOLATOR_H
57#define SECURE_INC(index) \
58 if (index<(DF_INOS_MOVEPATH_MAX_POINTS-1)){ \
62 return INOS_MOVEPATH_ERROR_ITP_MAX_SEGMENTS; \
66#define INOS_REGISTER_MOVEPATH_INTERPOLATOR(aName, aClass ) \
67 static int aClass##RegistrationRet = CINOSMovePathInterpolator::AddInterpolator(aName, ([](CINOSMovePathCurve* c, CINOSMovePath* p){return new aClass(c, p);}));
93 TINOSMovePathVec&
ovPos);
96 TINOSMovePathVec&
ovDir);
101 TINOSMovePathVec&
ovDer);
125 return m_pLastSegment;
199 typedef std::map<std::string, TINOSInterpolatorConstructor> TINOSInterpolatorMap;
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
Definition cinosmcmodule.h:1900
Definition cinosmovepathcurve.h:56
Definition cinosmovepathinterpolator.h:82
static int AddInterpolator(const char *apInterpolatorType, const TINOSInterpolatorConstructor &constructor_call)
add new interpolator constructor to the interplators map
virtual void GetDirection(double adP, TINOSMovePathVec &ovDir)
get direction vector at 'adP'
inosName32 m_cType
interpolator type
Definition cinosmovepathinterpolator.h:212
void ReleaseRegister()
release inco registration
char m_cSpeedSet[64]
speedset name
Definition cinosmovepathinterpolator.h:216
virtual bool IsCurveContinuous(uint32 auLevel)
check if curve continuous
Definition cinosmovepathinterpolator.h:111
CINCOObject * m_pRegister
pointer to inco registration
Definition cinosmovepathinterpolator.h:229
bool IsBlendingRequired(CINOSMovePathSegment *apSegment1, CINOSMovePathSegment *apSegment2)
return true if blending between segment 1 and 2 required
virtual void GetPosition(double adP, CINOSMovePathSegment *&opSegment, TINOSMovePathVec &ovPos)
get position vector at 'adP'
virtual ~CINOSMovePathInterpolator()
destructor
Definition cinosmovepathinterpolator.h:152
void SetPath(class CINOSMovePath *apPath)
set pointer to my path
Definition cinosmovepathinterpolator.h:170
virtual void GetD2max(double adBgn, double adEnd, TINOSMovePathVec &aD2max)
get max D2 vector of given range
virtual double GetCurveLength()
get curve length
SINOSRampParam m_sSpeedSet
speedset
Definition cinosmovepathinterpolator.h:218
bool IsContinuous(CINOSMovePathSegment *apSegment1, CINOSMovePathSegment *apSegment2, uint32 auLevel)
return true if segment 1 and 2 are auLevel continuous
virtual CINCOObject * RequestRegister()
return pointer to inco registration
CINCOObject * GetRegister()
get pointer to inco registration (if any)
Definition cinosmovepathinterpolator.h:194
virtual void GetDerivative(uint32 auLevel, double adP, TINOSMovePathVec &ovDer)
get auLevel derivative vector at 'adP'
virtual void GetDirectionLast(TINOSMovePathVec &ovDir)
get direction vector at the end
static bool CheckInterpolatorType(const char *apInterpolatorType)
check if an interpolator with the given name is in the interpolators map
CINOSMovePathInterpolator(CINOSMovePathCurve *apCurve, class CINOSMovePath *apPath=NULL)
constructor
virtual uint32 Prepare()
do precalculation
virtual void Cleanup()
cleanup
double m_dCycleTime
cycle time
Definition cinosmovepathinterpolator.h:222
class CINOSMovePathCurve * GetCurve()
get pointer to my curve
virtual void GetD3max(double adBgn, double adEnd, TINOSMovePathVec &aD3max)
get max D3 vector of given range
class CINOSMovePath * m_pPath
pointer to my path
Definition cinosmovepathinterpolator.h:214
double m_dCycleTime_1
inverse cycle time
Definition cinosmovepathinterpolator.h:224
static TINOSInterpolatorMap & GetInterpolatorsMap()
get interpolatos map, to avoid inserting before initialization
uint32 m_uRegisterCnt
inco tree registration counter
Definition cinosmovepathinterpolator.h:227
double m_dTolerance
requested tolerance
Definition cinosmovepathinterpolator.h:220
bool IsBlendingAllowed(CINOSMovePathSegment *apSegment1, CINOSMovePathSegment *apSegment2)
return true if blending between segment 1 and 2 allowed
class CINOSMovePath * GetPath()
get pointer to my path
Definition cinosmovepathinterpolator.h:167
class CINOSMovePathInterpolatorSegment * m_pFirstSegment
array of interpolator segments
Definition cinosmovepathinterpolator.h:234
Definition cinosmovepathsegment.h:45
Definition cinosmovepath.h:566
ramp parameters
Definition cinosbaseramp.h:503