| 846 | //------------------------------------------------------------------------------------- |
| 847 | |
| 848 | void TSShapeInstance::animate(S32 dl) |
| 849 | { |
| 850 | PROFILE_SCOPE( TSShapeInstance_animate ); |
| 851 | |
| 852 | if (dl==-1) |
| 853 | // nothing to do |
| 854 | return; |
| 855 | |
| 856 | S32 ss = mShape->details[dl].subShapeNum; |
| 857 | |
| 858 | // this is a billboard detail... |
| 859 | if (ss<0) |
| 860 | return; |
| 861 | |
| 862 | U32 dirtyFlags = mDirtyFlags[ss]; |
| 863 | |
| 864 | if (dirtyFlags & ThreadDirty) |
| 865 | sortThreads(); |
| 866 | |
| 867 | // animate nodes? |
| 868 | if (dirtyFlags & TransformDirty) |
| 869 | animateNodes(ss); |
| 870 | |
| 871 | // animate objects? |
| 872 | if (dirtyFlags & VisDirty) |
| 873 | animateVisibility(ss); |
| 874 | |
| 875 | if (dirtyFlags & FrameDirty) |
| 876 | animateFrame(ss); |
| 877 | |
| 878 | if (dirtyFlags & MatFrameDirty) |
| 879 | animateMatFrame(ss); |
| 880 | |
| 881 | mDirtyFlags[ss] = 0; |
| 882 | } |
| 883 | |
| 884 | void TSShapeInstance::animateNodeSubtrees(bool forceFull) |
| 885 | { |
no outgoing calls
no test coverage detected