mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

circlehollow_cylinderflexible.h
1 /* Copyright (C) 2004-2015 MBSim Development Team
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 *
17 * Contact: thorsten.schindler@mytum.de
18 * rzander@users.berlios.de
19 */
20
21 #ifndef _CONTACT_KINEMATICS_CIRCLEHOLLOW_CYLINDERFLEXIBLE_H_
22 #define _CONTACT_KINEMATICS_CIRCLEHOLLOW_CYLINDERFLEXIBLE_H_
23
24 #include "mbsim/contact_kinematics/contact_kinematics.h"
25
26 namespace MBSim {
27 class CircleHollow;
28 class FuncPairContour1sCircleHollow;
29 }
30
31 namespace MBSimFlexibleBody {
32
33 class CylinderFlexible;
34
41 class ContactKinematicsCircleHollowCylinderFlexible : public MBSim::ContactKinematics {
42 public:
46 ContactKinematicsCircleHollowCylinderFlexible() = default;
47
51 ~ContactKinematicsCircleHollowCylinderFlexible() override;
52
53 /* INHERITED INTERFACE */
54 void assignContours(const std::vector<MBSim::Contour*> &contour) override;
55 virtual void updateg(double &g, std::vector<MBSim::Frame*> &cFrame, int index = 0);
56 virtual void updatewb(fmatvec::Vec &wb, double g, std::vector<MBSim::Frame*> &cFrame) { throw std::runtime_error("(ContactKinematicsCircleHollowCylinderFlexible::updatewb): Not implemented!"); };
57 /***************************************************/
58
59 private:
63 int icircle, icylinder;
64
68 MBSim::CircleHollow *circle;
69 CylinderFlexible *cylinder;
70
74 MBSim::FuncPairContour1sCircleHollow *func;
75
79 bool useLocal {false};
80 };
81
82 }
83
84 #endif /* _CONTACT_KINEMATICS_CIRCLEHOLLOW_CYLINDERFLEXIBLE_H_ */
85
MBSimFlexibleBody::ContactKinematicsCircleHollowCylinderFlexible::ContactKinematicsCircleHollowCylinderFlexible
ContactKinematicsCircleHollowCylinderFlexible()=default
constructor
MBSimFlexibleBody::ContactKinematicsCircleHollowCylinderFlexible::useLocal
bool useLocal
flag to use local or global search
Definition: circlehollow_cylinderflexible.h:79
MBSimFlexibleBody::ContactKinematicsCircleHollowCylinderFlexible::~ContactKinematicsCircleHollowCylinderFlexible
~ContactKinematicsCircleHollowCylinderFlexible() override
destructor
Definition: circlehollow_cylinderflexible.cc:33
MBSimFlexibleBody::ContactKinematicsCircleHollowCylinderFlexible::circle
MBSim::CircleHollow * circle
contour classes
Definition: circlehollow_cylinderflexible.h:68
MBSimFlexibleBody::ContactKinematicsCircleHollowCylinderFlexible::icircle
int icircle
contour index
Definition: circlehollow_cylinderflexible.h:56
MBSimFlexibleBody::ContactKinematicsCircleHollowCylinderFlexible
pairing CircleHollow to CylinderFlexible
Definition: circlehollow_cylinderflexible.h:41
MBSimFlexibleBody::CylinderFlexible
flexible cylinder for one dimensional flexible bodies
Definition: cylinder_flexible.h:34
MBSim::ContactKinematics
MBSimFlexibleBody::ContactKinematicsCircleHollowCylinderFlexible::func
MBSim::FuncPairContour1sCircleHollow * func
root function
Definition: circlehollow_cylinderflexible.h:74