Logo Search packages:      
Sourcecode: blender version File versions  Download package


 * Copyright (c) 2005 Erwin Coumans http://continuousphysics.com/Bullet/
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies.
 * Erwin Coumans makes no representations about the suitability 
 * of this software for any purpose.  
 * It is provided "as is" without express or implied warranty.

#ifndef B_SCREWING_H
#define B_SCREWING_H

#include <SimdVector3.h>
#include <SimdPoint3.h>
#include <SimdTransform.h>

#define SCREWEPSILON 0.00001f

///BU_Screwing implements screwing motion interpolation.
00024 class BU_Screwing

      BU_Screwing(const SimdVector3& relLinVel,const SimdVector3& relAngVel);

      ~BU_Screwing() {
      SimdScalar CalculateF(SimdScalar t) const;
      //gives interpolated position for time in [0..1] in screwing frame

      inline SimdPoint3 InBetweenPosition(const SimdPoint3& pt,SimdScalar t) const
            return SimdPoint3(

      inline SimdVector3      InBetweenVector(const SimdVector3& vec,SimdScalar t) const
            return SimdVector3(

      //gives interpolated transform for time in [0..1] in screwing frame
      SimdTransform     InBetweenTransform(const SimdTransform& tr,SimdScalar t) const;

      //gives matrix from global frame into screwing frame
      void  LocalMatrix(SimdTransform &t) const;

      inline const SimdVector3& GetU() const {  return m_u;}
      inline const SimdVector3& GetO() const {return m_o;}
      inline const SimdScalar GetS() const{ return m_s;}
      inline const SimdScalar GetW() const { return m_w;}
      float       m_w;
      float       m_s;
      SimdVector3 m_u;
      SimdVector3 m_o;

#endif //B_SCREWING_H

Generated by  Doxygen 1.6.0   Back to index