Overte C++ Documentation
SoftAttachmentModel.h
1 //
2 // Created by Anthony J. Thibault on 12/17/15.
3 // Copyright 2015 High Fidelity, Inc.
4 //
5 // Distributed under the Apache License, Version 2.0.
6 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
7 //
8 
9 #ifndef hifi_SoftAttachmentModel_h
10 #define hifi_SoftAttachmentModel_h
11 
12 #include "CauterizedModel.h"
13 
14 // A model that allows the creator to specify a secondary rig instance.
15 // When the cluster matrices are created for rendering, the
16 // cluster matrices will use the secondary rig for the joint poses
17 // instead of the primary rig.
18 //
19 // This is used by Avatar instances to wear clothing that follows the same
20 // animated pose as the SkeletonModel.
21 
22 class SoftAttachmentModel : public CauterizedModel {
23  Q_OBJECT
24 
25 public:
26  SoftAttachmentModel(QObject* parent, const Rig& rigOverride);
27  ~SoftAttachmentModel();
28 
29  void updateRig(float deltaTime, glm::mat4 parentTransform) override;
30  void updateClusterMatrices() override;
31 
32 protected:
33  int getJointIndexOverride(int i) const;
34 
35  const Rig& _rigOverride;
36 };
37 
38 #endif // hifi_SoftAttachmentModel_h