MCPcopy Create free account
hub / github.com/carbonengine/trinity / InitializeMorphTargets

Method InitializeMorphTargets

trinity/Tr2Mesh.cpp:148–191  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

146}
147
148void Tr2Mesh::InitializeMorphTargets()
149{
150 m_morphAnimations.clear();
151 auto names = GetMorphTargetNames();
152
153 if( names )
154 {
155 std::vector<std::string>& morphTargetNames = *names;
156
157 bool clearSerializedData = false;
158 if( morphTargetNames.size() == m_serializedMorphAnimations.size() )
159 {
160 for( int32_t i = 0; i < morphTargetNames.size(); i++ )
161 {
162 if( morphTargetNames[i] != m_serializedMorphAnimations[i]->m_name )
163 {
164 clearSerializedData = true;
165 break;
166 }
167 }
168 }
169 else
170 {
171 clearSerializedData = true;
172 }
173 if( clearSerializedData )
174 {
175 m_serializedMorphAnimations.Clear();
176 for( int32_t i = 0; i < morphTargetNames.size(); i++ )
177 {
178 Tr2SerializedMorphAnimationPtr serializedWeight;
179 serializedWeight.CreateInstance();
180 serializedWeight->m_name = morphTargetNames[i];
181 serializedWeight->m_weight = 0.f;
182 m_serializedMorphAnimations.Append( serializedWeight );
183 }
184 }
185
186 for( int32_t i = 0; i < morphTargetNames.size(); i++ )
187 {
188 m_morphAnimations[morphTargetNames[i]] = Tr2MorphTargetAnimationData( i, m_serializedMorphAnimations[i]->m_weight );
189 }
190 }
191}
192
193void Tr2Mesh::RebuildCachedData( BlueAsyncRes* p )
194{

Callers

nothing calls this directly

Calls 5

sizeMethod · 0.80
CreateInstanceMethod · 0.80
AppendMethod · 0.80
ClearMethod · 0.45

Tested by

no test coverage detected