2016-04-13 06:07:23 +00:00
|
|
|
#ifndef __URDE_CANIMTREETWEENBASE_HPP__
|
|
|
|
#define __URDE_CANIMTREETWEENBASE_HPP__
|
2016-04-10 21:22:59 +00:00
|
|
|
|
2016-04-11 03:59:54 +00:00
|
|
|
#include "CAnimTreeDoubleChild.hpp"
|
|
|
|
|
2016-04-10 21:22:59 +00:00
|
|
|
namespace urde
|
|
|
|
{
|
|
|
|
|
2016-04-11 03:59:54 +00:00
|
|
|
class CAnimTreeTweenBase : public CAnimTreeDoubleChild
|
2016-04-10 21:22:59 +00:00
|
|
|
{
|
2016-09-10 04:50:00 +00:00
|
|
|
protected:
|
2016-09-04 02:27:35 +00:00
|
|
|
int x1c_flags;
|
|
|
|
bool x20_31_b1;
|
|
|
|
bool x20_30_b2 = false;
|
|
|
|
public:
|
|
|
|
CAnimTreeTweenBase(bool,
|
2016-09-10 04:50:00 +00:00
|
|
|
const std::weak_ptr<CAnimTreeNode>& a,
|
|
|
|
const std::weak_ptr<CAnimTreeNode>& b,
|
2016-09-04 02:27:35 +00:00
|
|
|
int, const std::string& name);
|
|
|
|
|
|
|
|
virtual void SetBlendingWeight(float w)=0;
|
|
|
|
virtual float VGetBlendingWeight() const=0;
|
|
|
|
|
|
|
|
float GetBlendingWeight() const { return VGetBlendingWeight(); }
|
|
|
|
|
|
|
|
float VGetLeftChildWeight() const { return 1.f - GetBlendingWeight(); }
|
|
|
|
float VGetRightChildWeight() const { return GetBlendingWeight(); }
|
|
|
|
|
|
|
|
void VGetSegStatementSet(const CSegIdList& list, CSegStatementSet& setOut) const;
|
|
|
|
void VGetSegStatementSet(const CSegIdList& list, CSegStatementSet& setOut, const CCharAnimTime& time) const;
|
|
|
|
bool VHasOffset(const CSegId& seg) const;
|
|
|
|
zeus::CVector3f VGetOffset(const CSegId& seg) const;
|
|
|
|
zeus::CQuaternion VGetRotation(const CSegId& seg) const;
|
|
|
|
|
|
|
|
std::shared_ptr<IAnimReader> VSimplified();
|
|
|
|
bool ShouldCullTree() const { return false; }
|
2016-04-10 21:22:59 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2016-04-13 06:07:23 +00:00
|
|
|
#endif // __URDE_CANIMTREETWEENBASE_HPP__
|