18 #include "../../Api.h"
20 #include "pxr/usd/sdf/path.h"
21 #include "pxr/usd/usd/prim.h"
23 #include "maya/MPxData.h"
24 #include "maya/MVector.h"
25 #include "maya/MMatrix.h"
29 #include "AL/maya/utils/ForwardDeclares.h"
30 #include "AL/usd/utils/ForwardDeclares.h"
32 PXR_NAMESPACE_USING_DIRECTIVE
56 : m_drivenPrimPaths(), m_drivenMatrix(), m_drivenVisibility(), m_dirtyMatrices(), m_dirtyVisibilities() {}
60 {
return m_drivenPrimPaths.size(); }
70 { m_drivenPrimPaths = primPaths; }
77 bool update(UsdStageRefPtr stage,
const MTime& currentTime);
84 m_drivenVisibility[primIndex] = newValue;
85 m_dirtyVisibilities.push_back(primIndex);
91 inline void dirtyMatrix(
const int32_t primIndex,
const MMatrix& newValue)
93 m_drivenMatrix[primIndex] = newValue;
94 m_dirtyMatrices.push_back(primIndex);
100 {
return m_drivenPrimPaths; }
105 {
return m_dirtyMatrices; }
110 {
return m_dirtyVisibilities; }
115 {
return m_drivenMatrix; }
120 {
return m_drivenVisibility; }
123 void updateDrivenVisibility(std::vector<UsdPrim>& drivenPrims,
const MTime& currentTime);
124 void updateDrivenTransforms(std::vector<UsdPrim>& drivenPrims,
const MTime& currentTime);
126 SdfPathVector m_drivenPrimPaths;
127 std::vector<MMatrix> m_drivenMatrix;
128 std::vector<bool> m_drivenVisibility;
129 std::vector<int32_t> m_dirtyMatrices;
130 std::vector<int32_t> m_dirtyVisibilities;