LCPForceFeedback.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef SOFA_COMPONENT_CONTROLLER_LCPFORCEFEEDBACK_H
00026 #define SOFA_COMPONENT_CONTROLLER_LCPFORCEFEEDBACK_H
00027
00028 #include <sofa/component/controller/ForceFeedback.h>
00029 #include <sofa/component/controller/OmniDriver.h>
00030 #include <sofa/component/mastersolver/MasterContactSolver.h>
00031
00032 namespace sofa
00033 {
00034
00035 namespace component
00036 {
00037
00038 namespace controller
00039 {
00040 using namespace std;
00041
00045 class LCPForceFeedback : public sofa::component::controller::ForceFeedback
00046 {
00047
00048 public:
00049 void init();
00050 Data<double> forceCoef;
00051 virtual void computeForce(double x, double y, double z, double u, double v, double w, double q, double& fx, double& fy, double& fz);
00052
00053 LCPForceFeedback() :
00054 forceCoef(initData(&forceCoef, 0.03, "forceCoef","multiply haptic force by this coef.")) {};
00055
00056 protected:
00057 component::odesolver::LCP* lcp;
00058 core::componentmodel::behavior::MechanicalState<Rigid3dTypes> *mState;
00059 sofa::component::odesolver::MasterContactSolver* mastersolver;
00060 };
00061
00062 }
00063
00064 }
00065
00066 }
00067
00068 #endif