23 #include <mbsim/links/single_contact.h>
28 class ContactKinematics;
29 class GeneralizedForceLaw;
30 class GeneralizedImpactLaw;
31 class FrictionForceLaw;
32 class FrictionImpactLaw;
61 std::shared_ptr<OpenMBV::Group> getOpenMBVGrp();
65 virtual void updatewb();
66 virtual void updateW(
int i = 0);
67 virtual void updateV(
int i = 0);
68 virtual void updateh(
int i = 0);
69 virtual void updateg();
70 virtual void updategd();
71 virtual void updateStopVector();
72 virtual void updateJacobians(
int j = 0);
91 virtual void calcxSize();
102 virtual void updateLinkStatus();
103 virtual void updateLinkStatusReg();
119 virtual void setlaTol(
double tol);
120 virtual void setLaTol(
double tol);
121 virtual void setgTol(
double tol);
122 virtual void setgdTol(
double tol);
123 virtual void setgddTol(
double tol);
124 virtual void setrMax(
double rMax_);
125 virtual void setLinkStatusInd(
int LinkStatusInd_);
126 virtual void setLinkStatusRegInd(
int LinkStatusRegInd_);
127 virtual void setsvInd(
int svInd_);
128 virtual void setlaInd(
int laInd_);
129 virtual void setgInd(
int gInd_);
130 virtual void setgdInd(
int gdInd_);
131 virtual void setrFactorInd(
int rFactorInd_);
135 virtual void updatecorr(
int j);
136 virtual void calccorrSize(
int j);
137 virtual void setcorrInd(
int corrInd_);
138 virtual void checkRoot();
139 virtual void updateGeneralizedNormalForce();
141 std::shared_ptr<OpenMBV::Frame>& getOpenMBVFrame() {
return openMBVFrame;}
142 std::shared_ptr<OpenMBV::Arrow>& getOpenMBVNormalForceArrow() {
return contactArrow;}
143 std::shared_ptr<OpenMBV::Arrow>& getOpenMBVTangentialForceArrow() {
return frictionArrow;}
154 void resetUpToDate();
172 BOOST_PARAMETER_MEMBER_FUNCTION( (
void), enableOpenMBVNormalForce, tag, (optional (scaleLength,(
double),1)(scaleSize,(
double),1)(referencePoint,(OpenMBV::Arrow::ReferencePoint),OpenMBV::Arrow::toPoint)(diffuseColor,(
const fmatvec::Vec3&),
"[-1;1;1]")(transparency,(
double),0))) {
173 OpenMBVArrow ombv(diffuseColor,transparency,OpenMBV::Arrow::toHead,referencePoint,scaleLength,scaleSize);
184 BOOST_PARAMETER_MEMBER_FUNCTION( (
void), enableOpenMBVTangentialForce, tag, (optional (scaleLength,(
double),1)(scaleSize,(
double),1)(referencePoint,(OpenMBV::Arrow::ReferencePoint),OpenMBV::Arrow::toPoint)(diffuseColor,(
const fmatvec::Vec3&),
"[-1;1;1]")(transparency,(
double),0))) {
185 OpenMBVArrow ombv(diffuseColor,transparency,OpenMBV::Arrow::toHead,referencePoint,scaleLength,scaleSize);
186 frictionArrow=ombv.createOpenMBV();
193 void setNormalImpactLaw(GeneralizedImpactLaw *fnil_);
194 void setTangentialForceLaw(FrictionForceLaw *fdf_);
195 void setTangentialImpactLaw(FrictionImpactLaw *ftil_);
196 void setContactKinematics(ContactKinematics* ck,
size_t index = 0) {
200 ContactKinematics* getContactKinematics(
size_t index = 0)
const {
205 ContactKinematics* findContactKinematics(std::string cKName)
const {
207 if (pos < static_cast<int>(
ckNames.size())) {
210 throw MBSimError(
"Name of contact Kinematics is not valid");
214 const std::vector<std::vector<SingleContact> > & getSubcontacts()
const {
235 Contour* getContour(
int i,
int j=0) {
return contour[i][j]; }
237 virtual void initializeUsingXML(xercesc::DOMElement *element);
239 void setSearchAllContactPoints(
bool searchAllCP_) { searchAllCP = searchAllCP_; }
240 void setInitialGuess(
const fmatvec::VecV &zeta0_) { zeta0 = zeta0_; }
253 std::vector<std::vector<Contour*> > contour;
312 std::string contourPairingName;
314 std::vector<saved_references> saved_ref;
basic force law on acceleration level for constraint description
Definition: generalized_force_law.h:32
general link to one or more objects
Definition: link.h:46
Definition: openmbv_utils.h:54
Definition: openmbv_utils.h:66
basic friction force law on velocity level for constraint description
Definition: friction_impact_law.h:32
InitStage
The stages of the initialization.
Definition: element.h:97
basic friction force law on acceleration level for constraint description
Definition: friction_force_law.h:32
basic force law on velocity level for constraint description
Definition: generalized_impact_law.h:32
std::string name
name of element
Definition: element.h:298
PlotFeatureStatus
Plot feature status.
Definition: element.h:61
PlotFeature
Plot Features.
Definition: element.h:74