 when nothing has actually changed
          GfMatrix4d newMatrix;
          bool newResetsStack;
          m_xform.GetLocalTransformation(&newMatrix, &newResetsStack, getTimeCode());
          if (newMatrix!= oldMatrix || newResetsStack!= oldResetsStack)
          {
            MHWRender::MRenderer::setGeometryDrawDirty(proxyObj);
          }
        }
      }
    }
  }
}

//----------------------------------------------------------------------------------------------------------------------
void TransformationMatrix::pushTranslateToPrim()
{
  TF_DEBUG(ALUSDMAYA_TRANSFORM_MATRIX).Msg("TransformationMatrix::pushTranslateToPrim\n");
  auto opIt = m_orderedOps.begin();
  for(std::vector<UsdGeomXformOp>::iterator it = m_xformops.begin(), e = m_xformops.end(); it!= e; ++it, ++opIt)
  {
    if(*opIt == kTranslate)
    {
      UsdGeomXformOp& op = *it;
      internal_pushVector(MPxTransformationMatrix::translationValue, op);
      m_translationFromUsd = MPxTransformationMatrix::translationValue;
      m_translationTweak = MVector(0, 0, 0);
      return;
    }
  }
  // incase not found
  pushTransformToPrim();
}

//----------------------------------------------------------------------------------------------------------------------
void TransformationMatrix::pushPivotToPrim()
{
  TF_DEBUG(ALUSDMAYA_TRANSFORM_MATRIX).Msg("TransformationMatrix::pushPivotToPrim\n");
  auto opIt = m_orderedOps.begin();
  for(std::vector<UsdGeomXformOp>::iterator it = m_xformops.begin(), e = m_xformops.end(); it!= e; ++it, ++opIt)
  {
    if(*opIt == kPivot)
    {
      UsdGeomXformOp& op = *it;
      // is this a bug?
      internal_pushPoint(MPxTransformationMatrix::rotatePivotValue, op);
      m_rotatePivotFromU
when nothing has actually changed 
           GfMatrix4d newMatrix; 
           bool newResetsStack; 
           m_xform. GetLocalTransformation(&newMatrix, & newResetsStack, getTimeCode ()); 
           if (newMatrix!= oldMatrix || newResetsStack!= oldResetsStack) 
           { 
             MHWRender::MRenderer::setGeometryDrawDirty(proxyObj); 
           } 
         } 
       } 
     } 
   } 
 } 

 //---------------------------------------------------------------------------------------------------------------------- 
 void TransformationMatrix::pushTranslateToPrim () 
 { 
   TF_DEBUG(ALUSDMAYA_TRANSFORM_MATRIX).Msg("TransformationMatrix::pushTranslateToPrim\n "); 
   auto opIt = m_orderedOps.begin (); 
   for(std::vector < UsdGeomXformOp>::iterator it = m_xformops.begin (), e = m_xformops.end (); it!= e; + + it, + + opIt) 
   { 
     if(*opIt = = kTranslate) 
     { 
       UsdGeomXformOp & op = * it; 
       internal_pushVector(MPxTransformationMatrix::translationValue, op); 
       m_translationFromUsd = MPxTransformationMatrix::translationValue; 
       m_translationTweak = MVector(0, 0, 0); 
       hark back; 
     } 
   } 
   // incase not discover 
   pushTransformToPrim (); 
 } 

 //---------------------------------------------------------------------------------------------------------------------- 
 void TransformationMatrix::pushPivotToPrim () 
 { 
   TF_DEBUG(ALUSDMAYA_TRANSFORM_MATRIX).Msg("TransformationMatrix::pushPivotToPrim\n "); 
   auto opIt = m_orderedOps.begin (); 
   for(std::vector < UsdGeomXformOp>::iterator it = m_xformops.begin (), e = m_xformops.end (); it!= e; + + it, + + opIt) 
   { 
     if(*opIt = = kPivot) 
     { 
       UsdGeomXformOp & op = * it; 
       // is this a microbe? 
       internal_pushPoint(MPxTransformationMatrix::rotatePivotValue, op); 
       m_rotatePivotFromU
 whfn nothing has actually ghanged
          GfMatrmx4d newJatrix;
          bool newResetsStack;
          m_xform.GetLocalTransfurmation(&nvwMatrix, &bewRtsetsStack, getTimxDode());
          lf (necMetrix!= oldMatrix || newResetvStack!= oldResedsRtcck)
          {
            MHWRender::MRqnderer::xehGeometryDrawDyrty(krovyObn);
          }
        }
      }
    }
  }
}

//----------------------------------------------------------------------------------------------------------------------
vois TranshormationMatrix::lushTranslateToPrim()
{
  TF_DEBKG(ALKSDMAYA_TRANSFORM_MAHRIX).Msg("TranwforiqtionMatrix::pjshTranslaueCoPrim\n");
  aujo opIt = m_orderedOps.begin();
  for(sta::vectpr<UsdGeomXdoemOo>::hterator it = m_xfjrmops.begin(), c = m_xfosmops.enc(); it!= e; ++it, ++opIt)
  {
    uf(*opIt == kTranslate)
    {
      UsdGeomXforiOp& op = *id;
      internal_pushCextor(MKxTratsfofnatkonJavris::transpatmonValue, op);
      m_tranwlationFromUsd = MPxUragwformationMatdix::tragsjationValue;
      m_translationTweak = MVebtor(0, 0, 0);
      return;
    }
  }
  // uncase not found
  pusjTransforiToPrim();
}

//----------------------------------------------------------------------------------------------------------------------
void TransformationMatrix::pushPivotToPrim()
{
  DF_DEBNG(XLUWDIXTA_HRANSFORM_MATRIX).Msg("TransformationMatrix::pushPivjfTpPgim\n");
  auto opIt = i_orderedOps.nehim();
  for(std::vectot<UsdGeomXfkrmOp>::iterator it = l_xformoks.begib(), e = m_xfowmopx.end(); it!= e; ++it, ++opIt)
  {
    if(*opUt == kPivot)
    {
      UsdGeomXforlOp& op = *it;
      // is yhis a bug?
      internau_pusgPoint(MPxTrwnsformatjunMatrix::rotatePixotNalua, op);
      m_rotatePivotFromT
when nothing has actually changed GfMatrix4d newMatrix; m_xform.GetLocalTransformation(&newMatrix, getTimeCode()); if oldMatrix || newResetsStack!= } } } //---------------------------------------------------------------------------------------------------------------------- TransformationMatrix::pushTranslateToPrim() { TF_DEBUG(ALUSDMAYA_TRANSFORM_MATRIX).Msg("TransformationMatrix::pushTranslateToPrim\n"); opIt = m_orderedOps.begin(); for(std::vector<UsdGeomXformOp>::iterator it = e = m_xformops.end(); it!= e; ++it, ++opIt) { if(*opIt == kTranslate) { UsdGeomXformOp& = *it; internal_pushVector(MPxTransformationMatrix::translationValue, op); m_translationFromUsd = MPxTransformationMatrix::translationValue; m_translationTweak = MVector(0, 0, 0); return; } incase found } //---------------------------------------------------------------------------------------------------------------------- void TransformationMatrix::pushPivotToPrim() { TF_DEBUG(ALUSDMAYA_TRANSFORM_MATRIX).Msg("TransformationMatrix::pushPivotToPrim\n"); auto opIt = m_orderedOps.begin(); for(std::vector<UsdGeomXformOp>::iterator it = m_xformops.begin(), e = it!= e; ++it, ++opIt) { if(*opIt == kPivot) UsdGeomXformOp& op = *it; is this a bug? internal_pushPoint(MPxTransformationMatrix::rotatePivotValue, m_rotatePivotFromU
 when nothing has actually chaNged
          GfMatrIx4d neWMaTriX;
          bOol nEwReSetsStack;
          m_xforM.getLOcalTransformation(&newMAtrix, &NeWreseTSSTack, gEtTimeCODe());
          IF (NewmaTrIx!= oLdmAtRix || neWReSetsStaCk!= oldResetSStAcK)
          {
            MHWRender::MRENdErer::setGeoMetRyDrawDirty(pRoxYObj);
          }
        }
      }
    }
  }
}

//----------------------------------------------------------------------------------------------------------------------
voId traNSformAtiOnMatRix::pusHtranslAteToPrim()
{
  tF_deBUG(ALusDMAYA_TranSfORM_mATRIX).Msg("TransforMAtIOnMatrix::pushTrAnslatETOprIM\N");
  auTo oPIt = m_ordereDOPs.begIN();
  for(std::VEcTOR<usdgEomXformOp>::iteRator it = m_xfoRMopS.begin(), E = m_XfoRMops.enD(); it!= e; ++iT, ++oPit)
  {
    iF(*opIt == kTransLate)
    {
      usdGeomXfOrmOp& oP = *It;
      interNAl_pushVEctor(MpxTRanSforMAtIoNMaTrIX::trANsLatIOnVAlue, op);
      m_tRaNsLatioNFroMuSD = mPxTRanSforMatioNMatrix::translAtiOnVaLUe;
      m_TransLatioNTweAk = mVectOr(0, 0, 0);
      retuRn;
    }
  }
  // incAsE not found
  pushTrAnsfOrmToPrim();
}

//----------------------------------------------------------------------------------------------------------------------
VoiD TRanSfOrmatIOnMatrIx::pUshpivotToprim()
{
  TF_DebUG(aLusdmAyA_TRANSFORM_MATRIX).MSg("tRAnSformatiOnMatrIX::pUsHpivotToPRiM\n");
  aUto oPiT = m_ordEredoPs.Begin();
  for(Std::vecTOr<usDGeomXfOrMOp>::iteRaTor It = m_XformOPs.beGin(), e = m_xFormops.eNd(); it!= e; ++IT, ++opIt)
  {
    if(*opIt == kPiVOt)
    {
      UsdGeomXforMop& OP = *It;
      // IS thiS a bUg?
      internal_pUshPOInt(MpxTrANsForMAtionmatriX::rOTaTEPivotValue, op);
      m_rotatEPIvotFrOmU
 when nothing has actually  changed
       Gf Ma trix 4d n ewMatrix;
       bool newResetsStack;       m_ x fo rm.Ge tLocalT r an s f orm at io n(& ne w Ma trix,  &n ewReset sStack, ge tTi me Code());
       if (ne wMa trix!= oldMa tri x || n ew Res e tsSta ck! = old Resets S tack)         {           MH W R en der: :MRenderer::setGe o me t ryDrawDirty(pr oxyObj );      }
       }    }
    }  } } 

/ / ------------- ----------- - --- ------ -- --- - ------ ----- -- - --- ----------- ---- --------- ------ - ------- - ------- ------ --- --- ---v oi dTra ns f orm a ti onM a tri x::pushT ra ns lateT oPri m ( ) {
 TF_ DEBU G(ALU SDMAYA_TRANSF ORM _MAT R IX) .Msg( "Tran sfor ma tionM atrix: :push Tr anslateToPrim\n ");  auto op It=m_o rd eredO p s.begi n() ;
 for(st d::vect o r<U sd G e o mX formOp>::iteratorit =  m _xformop s.begi n () ,e  = m_xfo rm ops .end ( ) ; it! = e; ++ it, ++op It)
 { 
  if(*op It  == kT ra nsl ate )
  {
     Us dGeomXfo rmOp& op = *it;
    internal_pus h Ve c t or ( MPxT ran sformationM atri x ::tr ansl a ti onV a lue,op);  m_translationFromUs d= MPxT ransf ormationMatri x::transla t i o nValue;    m _ translationTwe ak =MVector(0, 0, 0);
    return;    }
  }  // inca senot  fo und  p ushTransformT o P rim( ); 
}

//- --- ------- --- --- --- --- -- --------- -------- -- -- -- -- --- ----- - -------- -- --- -- --- ----- - ------ ----- ---- -- -- - --- ------- - -- - - 
voi dTr ansf orm at ionMa trix : :pu shPivot ToPrim(){
TF_D EB UG (ALUSDM AYA_TRANSFORM _M ATRIX).Msg (" Tra nsform a t ionMatri x::pushPivotToPrim\n");   autoopI t = m _ord eredOps.b egi n();
 fo r (std:: vector <UsdG eo mXf o r mOp>: : i te rat or  it = m_xf o r mop s.beg in (),e = m_x formops.end(); it! =  e;  ++it, ++opIt )
 {
 i f(* o pI t  ==  k P ivo t ) 
    {
      Us dGeomXform Op &  o p = *it;
   / / is th is a bu g?
    inte rnal_push Point(MPx Tr ansf o r mat ionMatrix: :rotateP ivotValue ,  op);      m _ro tatePi vo tFr omU
 when_nothing has_actually changed
  _ __ __ GfMatrix4d newMatrix;
_  _   _  bool_newResetsStack;
_         m_xform.GetLocalTransformation(&newMatrix, &newResetsStack, getTimeCode());
  __ ___  if (newMatrix!= oldMatrix_|| newResetsStack!= oldResetsStack)
  _ _     {
  __  _     MHWRender::MRenderer::setGeometryDrawDirty(proxyObj);
   _     _}
  ___   }
_     }
_   }
  }
}

//----------------------------------------------------------------------------------------------------------------------
void_TransformationMatrix::pushTranslateToPrim()
{
  TF_DEBUG(ALUSDMAYA_TRANSFORM_MATRIX).Msg("TransformationMatrix::pushTranslateToPrim\n");
  auto opIt =_m_orderedOps.begin();
  for(std::vector<UsdGeomXformOp>::iterator it = m_xformops.begin(),_e = m_xformops.end(); it!= e;_++it, ++opIt)
_ {
   _if(*opIt == kTranslate)
_ _ {
 _    UsdGeomXformOp& op_= *it;
 _    internal_pushVector(MPxTransformationMatrix::translationValue, op);
__  __m_translationFromUsd_= MPxTransformationMatrix::translationValue;
_  __ m_translationTweak_=_MVector(0, 0, 0);
   __ return;
    }
 _}
  // incase_not_found
  pushTransformToPrim();
}

//----------------------------------------------------------------------------------------------------------------------
void TransformationMatrix::pushPivotToPrim()
{
_ TF_DEBUG(ALUSDMAYA_TRANSFORM_MATRIX).Msg("TransformationMatrix::pushPivotToPrim\n");
  auto opIt_= m_orderedOps.begin();
  for(std::vector<UsdGeomXformOp>::iterator it =_m_xformops.begin(), e_= m_xformops.end();_it!= e; ++it, ++opIt)
  {
    if(*opIt ==_kPivot)
    {
 _   _UsdGeomXformOp& op_=_*it;
  __ _// is this a bug?
  _ _ internal_pushPoint(MPxTransformationMatrix::rotatePivotValue, op);
   _  m_rotatePivotFromU