mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-27 03:26:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include <components/resource/animation.hpp>
 | |
| 
 | |
| #include <osg/ref_ptr>
 | |
| #include <osgAnimation/Channel>
 | |
| 
 | |
| namespace Resource
 | |
| {
 | |
|     Animation::Animation(const Animation& anim, const osg::CopyOp& copyop)
 | |
|         : osg::Object(anim, copyop)
 | |
|         , mDuration(0.0f)
 | |
|         , mStartTime(0.0f)
 | |
|     {
 | |
|         const osgAnimation::ChannelList& channels = anim.getChannels();
 | |
|         for (const auto& channel : channels)
 | |
|             addChannel(channel.get()->clone());
 | |
|     }
 | |
| 
 | |
|     void Animation::addChannel(osg::ref_ptr<osgAnimation::Channel> pChannel)
 | |
|     {
 | |
|         mChannels.push_back(pChannel);
 | |
|     }
 | |
| 
 | |
|     std::vector<osg::ref_ptr<osgAnimation::Channel>>& Animation::getChannels()
 | |
|     {
 | |
|         return mChannels;
 | |
|     }
 | |
| 
 | |
|     const std::vector<osg::ref_ptr<osgAnimation::Channel>>& Animation::getChannels() const
 | |
|     {
 | |
|         return mChannels;
 | |
|     }
 | |
| 
 | |
|     bool Animation::update(double time)
 | |
|     {
 | |
|         for (const auto& channel : mChannels)
 | |
|         {
 | |
|             channel->update(time, 1.0f, 0);
 | |
|         }
 | |
|         return true;
 | |
|     }
 | |
| }
 |