1 | //************************************ bs::framework - Copyright 2018 Marko Pintera **************************************// |
---|---|
2 | //*********** Licensed under the MIT license. See LICENSE.md for full terms. This notice is not to be removed. ***********// |
3 | #include "Animation/BsSkeletonMask.h" |
4 | #include "Animation/BsSkeleton.h" |
5 | |
6 | namespace bs |
7 | { |
8 | SkeletonMask::SkeletonMask(UINT32 numBones) |
9 | :mIsDisabled(numBones) |
10 | { } |
11 | |
12 | bool SkeletonMask::isEnabled(UINT32 boneIdx) const |
13 | { |
14 | if (boneIdx >= (UINT32)mIsDisabled.size()) |
15 | return true; |
16 | |
17 | return !mIsDisabled[boneIdx]; |
18 | } |
19 | |
20 | SkeletonMaskBuilder::SkeletonMaskBuilder(const SPtr<Skeleton>& skeleton) |
21 | :mSkeleton(skeleton), mMask(skeleton->getNumBones()) |
22 | { } |
23 | |
24 | void SkeletonMaskBuilder::setBoneState(const String& name, bool enabled) |
25 | { |
26 | UINT32 numBones = mSkeleton->getNumBones(); |
27 | for(UINT32 i = 0; i < numBones; i++) |
28 | { |
29 | if(mSkeleton->getBoneInfo(i).name == name) |
30 | { |
31 | mMask.mIsDisabled[i] = !enabled; |
32 | break; |
33 | } |
34 | } |
35 | } |
36 | } |