예제 #1
0
파일: Joint.cpp 프로젝트: jslee02/wafr2016
//==============================================================================
const std::string& Joint::setName(const std::string& _name, bool _renameDofs)
{
  if (mAspectProperties.mName == _name)
  {
    if (_renameDofs)
      updateDegreeOfFreedomNames();
    return mAspectProperties.mName;
  }

  const SkeletonPtr& skel = mChildBodyNode?
        mChildBodyNode->getSkeleton() : nullptr;
  if (skel)
  {
    skel->mNameMgrForJoints.removeName(mAspectProperties.mName);
    mAspectProperties.mName = _name;

    skel->addEntryToJointNameMgr(this, _renameDofs);
  }
  else
  {
    mAspectProperties.mName = _name;

    if (_renameDofs)
      updateDegreeOfFreedomNames();
  }

  return mAspectProperties.mName;
}
예제 #2
0
파일: EulerJoint.cpp 프로젝트: jpgr87/dart
//==============================================================================
void EulerJoint::setAxisOrder(EulerJoint::AxisOrder _order, bool _renameDofs)
{
  mEulerP.mAxisOrder = _order;
  if (_renameDofs)
    updateDegreeOfFreedomNames();
  notifyPositionUpdate();
}
예제 #3
0
파일: PlanarJoint.cpp 프로젝트: jpgr87/dart
//==============================================================================
void PlanarJoint::setZXPlane(bool _renameDofs)
{
  mPlanarP.setZXPlane();

  if (_renameDofs)
    updateDegreeOfFreedomNames();
  notifyPositionUpdate();
}
예제 #4
0
//==============================================================================
void PlanarJoint::setZXPlane(bool _renameDofs)
{
  mAspectProperties.setZXPlane();

  if (_renameDofs)
    updateDegreeOfFreedomNames();
  notifyPositionUpdated();
}
예제 #5
0
//==============================================================================
void PlanarJoint::setYZPlane(bool _renameDofs)
{
  getPlanarJointAddon()->setYZPlane();

  if (_renameDofs)
    updateDegreeOfFreedomNames();
  notifyPositionUpdate();
}
예제 #6
0
파일: PlanarJoint.cpp 프로젝트: jpgr87/dart
//==============================================================================
void PlanarJoint::setArbitraryPlane(const Eigen::Vector3d& _transAxis1,
                                    const Eigen::Vector3d& _transAxis2,
                                    bool _renameDofs)
{
  mPlanarP.setArbitraryPlane(_transAxis1, _transAxis2);

  if (_renameDofs)
    updateDegreeOfFreedomNames();
  notifyPositionUpdate();
}
예제 #7
0
파일: EulerJoint.cpp 프로젝트: dartsim/dart
//==============================================================================
void EulerJoint::setAxisOrder(EulerJoint::AxisOrder _order, bool _renameDofs)
{
  mAspectProperties.mAxisOrder = _order;
  if (_renameDofs)
    updateDegreeOfFreedomNames();

  Joint::notifyPositionUpdated();
  updateRelativeJacobian(true);
  Joint::incrementVersion();
}
예제 #8
0
파일: PlanarJoint.cpp 프로젝트: jpgr87/dart
//==============================================================================
PlanarJoint::PlanarJoint(const Properties& _properties)
  : MultiDofJoint<3>(_properties)
{
  setProperties(_properties);
  updateDegreeOfFreedomNames();
}
예제 #9
0
//==============================================================================
FreeJoint::FreeJoint(const std::string& _name)
  : MultiDofJoint(_name),
    mQ(Eigen::Isometry3d::Identity())
{
  updateDegreeOfFreedomNames();
}