📄 coretrack.h
字号:
//****************************************************************************//
// coretrack.h //
// Copyright (C) 2001, 2002 Bruno 'Beosil' Heidelberger //
//****************************************************************************//
// This library is free software; you can redistribute it and/or modify it //
// under the terms of the GNU Lesser General Public License as published by //
// the Free Software Foundation; either version 2.1 of the License, or (at //
// your option) any later version. //
//****************************************************************************//
#ifndef CAL_CORETRACK_H
#define CAL_CORETRACK_H
//****************************************************************************//
// Includes //
//****************************************************************************//
#include "cal3d/global.h"
#include "cal3d/matrix.h"
#include "cal3d/vector.h"
#include "cal3d/quaternion.h"
//****************************************************************************//
// Forward declarations //
//****************************************************************************//
class CalCoreBone;
class CalCoreKeyframe;
//****************************************************************************//
// Class declaration //
//****************************************************************************//
//*****************************************************************************/
//** The core track class.
//*****************************************************************************/
class CAL3D_API CalCoreTrack
{
// member variables
protected:
/// The index of the associated CoreBone in the CoreSkeleton.
int m_coreBoneId;
/// List of keyframes, always sorted by time.
std::vector<CalCoreKeyframe*> m_keyframes;
// constructors/destructor
public:
CalCoreTrack();
virtual ~CalCoreTrack();
bool create();
void destroy();
bool getState(float time, CalVector& translation, CalQuaternion& rotation);
/*****************************************************************************/
/** Returns the ID of the core bone.
*
* This function returns the ID of the core bone to which the core track
* instance is attached to.
*
* @return One of the following values:
* \li the \b ID of the core bone
* \li \b -1 if an error happend
*****************************************************************************/
inline int getCoreBoneId()
{
return m_coreBoneId;
}
bool setCoreBoneId(int coreBoneId);
int getCoreKeyframeCount();
CalCoreKeyframe* getCoreKeyframe(int idx);
bool addCoreKeyframe(CalCoreKeyframe *pCoreKeyframe);
void removeCoreKeyFrame(int _i) { m_keyframes.erase( m_keyframes.begin() + _i); }
void scale(float factor);
private:
std::vector<CalCoreKeyframe*>::iterator getUpperBound(float time);
};
#endif
//****************************************************************************//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -