[Soc-2005-cvs] CVS commit: soc-blender/intern/iksolver/intern IK_QChain.cpp IK_QChain.h IK_QJacobian.cpp IK_QJacobian.h IK_QJacobianSolver.cpp IK_QJacobianSolver.h IK_QSegment.cpp IK_QSegment.h IK_Solver.cpp soc-blender/intern/moto/include MT_Matrix3x3.h soc-blender/source/blender/blenkernel ...

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Jul 5 22:20:48 CEST 2005


blendix (Brecht Van Lommel) 2005/07/05 22:20:48 CEST

  Modified files:        (Branch: blendix)
    soc-blender/intern/iksolver/intern IK_QChain.cpp IK_QChain.h 
                                       IK_QJacobian.cpp 
                                       IK_QJacobian.h 
                                       IK_QJacobianSolver.cpp 
                                       IK_QJacobianSolver.h 
                                       IK_QSegment.cpp 
                                       IK_QSegment.h IK_Solver.cpp 
    soc-blender/intern/moto/include MT_Matrix3x3.h 
    soc-blender/source/blender/blenkernel BKE_armature.h 
    soc-blender/source/blender/blenkernel/intern armature.c 
                                                 constraint.c 
    soc-blender/source/blender/blenkernel/bad_level_call_stubs 
                                                               stubs.c 
    soc-blender/intern/iksolver/extern IK_solver.h 
  
  Log:
  Throwing out the exponential map (aka axis-angle) parametrization:
  
  The reason it was used is that the typical euler angles suffer from
  singularities (gimbal lock), and quaternions can drift away from
  valid rotations.
  
  The problem however is that the 3 paramaters of the exponential map
  have no useful meaning (much like quaternions). Computing the
  derivatives of and/or reparametrizing the exponential map is
  cumbersome (and slow).
  
  The simpler solution used now is to avoid using a parametrization
  altogether, and directly update the rotation matrix. The derivatives
  are the same as for euler angles, but the rotation matrix is
  updated using Rodrigues' formula, reference:
  
  "Dynamics Computation of Structure-Varying Kinematics Chains and its
  application to human figures", by Nakamura et al.
  
  This change might break backwards compatibility, but the results from
  my test cases at least look identical. The exponential map could be
  enabled again for older files if needed..
  
  Except for the change in angle parametrization much of the code have
  also been simplified.
  
  Revision  Changes    Path
  1.1.1.1.2.3 +27 -95    soc-blender/intern/iksolver/intern/IK_QChain.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_QChain.cpp.diff?r1=1.1.1.1.2.2&r2=1.1.1.1.2.3&cvsroot=soc-2005>
  1.1.1.1.2.2 +8 -8      soc-blender/intern/iksolver/intern/IK_QChain.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_QChain.h.diff?r1=1.1.1.1.2.1&r2=1.1.1.1.2.2&cvsroot=soc-2005>
  1.1.2.2   +97 -34    soc-blender/intern/iksolver/intern/Attic/IK_QJacobian.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/Attic/IK_QJacobian.cpp.diff?r1=1.1.2.1&r2=1.1.2.2&cvsroot=soc-2005>
  1.1.2.2   +11 -15    soc-blender/intern/iksolver/intern/Attic/IK_QJacobian.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/Attic/IK_QJacobian.h.diff?r1=1.1.2.1&r2=1.1.2.2&cvsroot=soc-2005>
  1.1.1.1.2.5 +13 -22    soc-blender/intern/iksolver/intern/IK_QJacobianSolver.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_QJacobianSolver.cpp.diff?r1=1.1.1.1.2.4&r2=1.1.1.1.2.5&cvsroot=soc-2005>
  1.1.1.1.2.2 +2 -2      soc-blender/intern/iksolver/intern/IK_QJacobianSolver.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_QJacobianSolver.h.diff?r1=1.1.1.1.2.1&r2=1.1.1.1.2.2&cvsroot=soc-2005>
  1.1.1.1.2.2 +117 -252  soc-blender/intern/iksolver/intern/IK_QSegment.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_QSegment.cpp.diff?r1=1.1.1.1.2.1&r2=1.1.1.1.2.2&cvsroot=soc-2005>
  1.1.1.1.2.2 +121 -183  soc-blender/intern/iksolver/intern/IK_QSegment.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_QSegment.h.diff?r1=1.1.1.1.2.1&r2=1.1.1.1.2.2&cvsroot=soc-2005>
  1.1.1.1.2.3 +34 -21    soc-blender/intern/iksolver/intern/IK_Solver.cpp
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_Solver.cpp.diff?r1=1.1.1.1.2.2&r2=1.1.1.1.2.3&cvsroot=soc-2005>
  1.1.1.1.2.1 +10 -1     soc-blender/intern/moto/include/MT_Matrix3x3.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/moto/include/MT_Matrix3x3.h.diff?r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
  1.1.1.1.2.1 +2 -2      soc-blender/source/blender/blenkernel/BKE_armature.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/source/blender/blenkernel/BKE_armature.h.diff?r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
  1.1.1.1.2.1 +8 -5      soc-blender/source/blender/blenkernel/intern/armature.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/source/blender/blenkernel/intern/armature.c.diff?r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
  1.1.1.1.2.1 +2 -2      soc-blender/source/blender/blenkernel/intern/constraint.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/source/blender/blenkernel/intern/constraint.c.diff?r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
  1.1.1.1.2.1 +3 -2      soc-blender/source/blender/blenkernel/bad_level_call_stubs/stubs.c
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/source/blender/blenkernel/bad_level_call_stubs/stubs.c.diff?r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
  1.1.1.1.2.1 +6 -4      soc-blender/intern/iksolver/extern/IK_solver.h
    <http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/extern/IK_solver.h.diff?r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>


More information about the Soc-2005-cvs mailing list