mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

circle_flexibleband.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 */
19
20 #ifndef CIRCLESOLID_FLEXIBLEBAND_H_
21 #define CIRCLESOLID_FLEXIBLEBAND_H_
22
23 #include "mbsim/contact_kinematics/contact_kinematics.h"
24
25 namespace MBSim {
26 class Circle;
27 class Contour;
28 }
29
30 namespace MBSimFlexibleBody {
31
37 class ContactKinematicsCircleFlexibleBand : public MBSim::ContactKinematics {
38 public:
42 ~ContactKinematicsCircleFlexibleBand() override;
43
46 void setNumberOfPossibleContactPerNode(int n) { possibleContactsPerNode = n; }
47
48 /* INHERITED INTERFACE OF CONTACTKINEAMTICS */
49 void assignContours(const std::vector<MBSim::Contour*>& contour) override;
50 void updateg(std::vector<MBSim::SingleContact> &contact) override;
51 /***************************************************/
52
53 private:
57 int icircle{0}, icontour{0};
58
62 int possibleContactsPerNode{1};
63
67 MBSim::Circle *circle{nullptr};
68 MBSim::Contour *extrusion{nullptr};
69
70 fmatvec::Vec staticNodes;
71
72 std::vector<ContactKinematics*> contactKinematics;
73 };
74
75 }
76
77 #endif
MBSimFlexibleBody::ContactKinematicsCircleFlexibleBand
pairing solid cirlce to flexible band, planar only
Definition: circle_flexibleband.h:37
MBSim::Contour
MBSimFlexibleBody::ContactKinematicsCircleFlexibleBand::circle
MBSim::Circle * circle
contour classes
Definition: circle_flexibleband.h:67
MBSimFlexibleBody::ContactKinematicsCircleFlexibleBand::possibleContactsPerNode
int possibleContactsPerNode
possible contacts regarded per node
Definition: circle_flexibleband.h:62
MBSim::Circle
MBSimFlexibleBody::ContactKinematicsCircleFlexibleBand::icircle
int icircle
contour index
Definition: circle_flexibleband.h:57
MBSim::ContactKinematics
MBSimFlexibleBody::ContactKinematicsCircleFlexibleBand::~ContactKinematicsCircleFlexibleBand
~ContactKinematicsCircleFlexibleBand() override
destructor
Definition: circle_flexibleband.cc:169
MBSimFlexibleBody::ContactKinematicsCircleFlexibleBand::setNumberOfPossibleContactPerNode
void setNumberOfPossibleContactPerNode(int n)
Definition: circle_flexibleband.h:46