20#ifndef _CONTACT_KINEMATICS_H_
21#define _CONTACT_KINEMATICS_H_
23#include "mbsim/links/single_contact.h"
24#include "fmatvec/fmatvec.h"
25#include "fmatvec/atom.h"
32 template<
typename Sig>
class Function;
58 virtual void assignContours(
const std::vector<Contour*> &contour_) { contour = contour_; }
60 virtual void calcisSize() { isSize = 0; }
61 void setisInd(
int ind) { isInd = ind; }
62 int getisSize() {
return isSize; }
63 virtual void updateInternalStateRef(fmatvec::Vec &curisParent, fmatvec::Vec &nextisParent) {
64 curis.ref(curisParent, fmatvec::RangeV(isInd,isInd+isSize-1));
65 nextis.ref(nextisParent, fmatvec::RangeV(isInd,isInd+isSize-1));
68 virtual void search() { }
75 virtual void updateg(std::vector<SingleContact> &contact);
110 void setGlobalSearch(
bool gS_=
true) { gS = gS_; }
111 void setInitialGlobalSearch(
bool iGS_=
true) { iGS = iGS_; }
128 static std::vector<double> searchPossibleContactPoints(
Function<
double(
double)> *func,
double eta,
const std::vector<double> &nodes,
double tol);
130 static std::vector<double> searchPossibleContactPoints(
Function<fmatvec::Vec(fmatvec::Vec)> *func,
int i, fmatvec::Vec &zeta,
const std::vector<double> &nodes,
double tol);
143 fmatvec::Vec curis, nextis;
147 std::vector<Contour*> contour;
basic class for contour definition for rigid (which do not know about their shape) and flexible (they...
Definition: contour.h:40
Definition: function.h:53
namespace MBSim
Definition: bilateral_constraint.cc:30