Files
Yosuga/3rdparty/Live2D/Src/Framework/src/Motion/CubismMotionQueueEntry.cpp
T
Misaki bb600bbbc4 first
2025-12-04 19:11:29 +08:00

160 lines
3.4 KiB
C++

/**
* Copyright(c) Live2D Inc. All rights reserved.
*
* Use of this source code is governed by the Live2D Open Software license
* that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
*/
#include "CubismMotionQueueEntry.hpp"
#include "CubismFramework.hpp"
namespace Live2D { namespace Cubism { namespace Framework {
CubismMotionQueueEntry::CubismMotionQueueEntry()
: _autoDelete(false)
, _motion(NULL)
, _available(true)
, _finished(false)
, _started(false)
, _startTimeSeconds(-1.0f)
, _fadeInStartTimeSeconds(0.0f)
, _endTimeSeconds(-1.0f)
, _stateTimeSeconds(0.0f)
, _stateWeight(0.0f)
, _lastEventCheckSeconds(0.0f)
, _motionQueueEntryHandle(NULL)
, _fadeOutSeconds(0.0f)
, _IsTriggeredFadeOut(false)
{
this->_motionQueueEntryHandle = this;
}
CubismMotionQueueEntry::~CubismMotionQueueEntry()
{
if (_autoDelete && _motion)
{
ACubismMotion::Delete(_motion); //
}
}
void CubismMotionQueueEntry::SetFadeout(csmFloat32 fadeOutSeconds)
{
_fadeOutSeconds = fadeOutSeconds;
_IsTriggeredFadeOut = true;
}
void CubismMotionQueueEntry::StartFadeout(csmFloat32 fadeOutSeconds, csmFloat32 userTimeSeconds)
{
const csmFloat32 newEndTimeSeconds = userTimeSeconds + fadeOutSeconds;
_IsTriggeredFadeOut = true;
if (_endTimeSeconds < 0.0f || newEndTimeSeconds < _endTimeSeconds)
{
_endTimeSeconds = newEndTimeSeconds;
}
}
csmBool CubismMotionQueueEntry::IsFinished() const
{
return _finished;
}
csmBool CubismMotionQueueEntry::IsStarted() const
{
return _started;
}
csmFloat32 CubismMotionQueueEntry::GetStartTime() const
{
return _startTimeSeconds;
}
csmFloat32 CubismMotionQueueEntry::GetFadeInStartTime() const
{
return _fadeInStartTimeSeconds;
}
csmFloat32 CubismMotionQueueEntry::GetEndTime() const
{
return _endTimeSeconds;
}
void CubismMotionQueueEntry::SetStartTime(csmFloat32 startTime)
{
this->_startTimeSeconds = startTime;
}
void CubismMotionQueueEntry::SetFadeInStartTime(csmFloat32 startTime)
{
this->_fadeInStartTimeSeconds = startTime;
}
void CubismMotionQueueEntry::SetEndTime(csmFloat32 endTime)
{
this->_endTimeSeconds = endTime;
}
void CubismMotionQueueEntry::IsFinished(csmBool f)
{
this->_finished = f;
}
void CubismMotionQueueEntry::IsStarted(csmBool f)
{
this->_started = f;
}
csmBool CubismMotionQueueEntry::IsAvailable() const
{
return _available;
}
void CubismMotionQueueEntry::IsAvailable(csmBool v)
{
this->_available = v;
}
void CubismMotionQueueEntry::SetState(csmFloat32 timeSeconds, csmFloat32 weight)
{
this->_stateTimeSeconds = timeSeconds;
this->_stateWeight = weight;
}
csmFloat32 CubismMotionQueueEntry::GetStateTime() const
{
return this->_stateTimeSeconds;
}
csmFloat32 CubismMotionQueueEntry::GetStateWeight() const
{
return this->_stateWeight;
}
csmFloat32 CubismMotionQueueEntry::GetLastCheckEventTime() const
{
return this->_lastEventCheckSeconds;
}
void CubismMotionQueueEntry::SetLastCheckEventTime(csmFloat32 checkTime)
{
this->_lastEventCheckSeconds = checkTime;
}
csmBool CubismMotionQueueEntry::IsTriggeredFadeOut()
{
return this->_IsTriggeredFadeOut;
}
csmFloat32 CubismMotionQueueEntry::GetFadeOutSeconds()
{
return this->_fadeOutSeconds;
}
ACubismMotion* CubismMotionQueueEntry::GetCubismMotion()
{
return _motion;
}
}}}