MCPcopy Create free account
hub / github.com/Kitware/VTK / SetupWeightedTransformFilterForGLTFSkinning

Function SetupWeightedTransformFilterForGLTFSkinning

IO/Geometry/vtkGLTFReader.cxx:210–237  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

208
209//------------------------------------------------------------------------------
210void SetupWeightedTransformFilterForGLTFSkinning(vtkSmartPointer<vtkWeightedTransformFilter> filter,
211 const std::vector<vtkSmartPointer<vtkMatrix4x4>>& jointMats,
212 const vtkSmartPointer<vtkPolyData> poly)
213{
214 filter->SetInputData(poly);
215
216 // Add transforms to weightedTransformFilter (min. 4 transforms. If we have less than 4
217 // transforms, complete with identity)
218 size_t nbTransforms = vtkMath::Max<size_t>(jointMats.size(), 4);
219 filter->SetNumberOfTransforms(static_cast<int>(nbTransforms));
220 for (unsigned int i = 0; i < nbTransforms; i++)
221 {
222 vtkNew<vtkTransform> transform;
223 if (i >= jointMats.size())
224 {
225 filter->SetTransform(transform, i);
226 }
227 else
228 {
229 transform->SetMatrix(jointMats[i]);
230 filter->SetTransform(transform, i);
231 }
232 }
233
234 // Add joint index and weight array information
235 filter->SetTransformIndexArray("JOINTS_0");
236 filter->SetWeightArray("WEIGHTS_0");
237}
238
239//------------------------------------------------------------------------------
240void AddTransformToFieldData(const vtkSmartPointer<vtkMatrix4x4> transform,

Callers 1

Calls 5

SetNumberOfTransformsMethod · 0.80
SetInputDataMethod · 0.45
sizeMethod · 0.45
SetTransformMethod · 0.45
SetMatrixMethod · 0.45

Tested by

no test coverage detected