All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
rigid_contour.h
1 /* Copyright (C) 2004-2009 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: martin.o.foerg@googlemail.com
18  */
19 
20 #ifndef _RIGID_CONTOUR_H_
21 #define _RIGID_CONTOUR_H_
22 
23 #include "mbsim/contours/contour.h"
24 
25 namespace OpenMBV {
26  class RigidBody;
27 }
28 
29 namespace MBSim {
30 
37  class RigidContour : public Contour {
38  public:
43  RigidContour(const std::string &name, Frame *R_=NULL) : Contour(name), R(R_) {}
44 
45  virtual ~RigidContour() { }
46 
47  ContourFrame* createContourFrame(const std::string &name="P");
48 
49  Frame* getFrame() { return R; }
50  Frame* getFrameOfReference() { return R; }
51  void setFrameOfReference(Frame *frame) { R = frame; }
52  void setFrameOfReference(const std::string &frame) { saved_frameOfReference = frame; }
53 
54  /* INHERITED INTERFACE OF ELEMENT */
55  std::string getType() const { return "RigidContour"; }
56  virtual void plot();
57  virtual void init(InitStage stage);
58  /***************************************************/
59 
60  fmatvec::Vec3 evalPosition(const fmatvec::Vec2 &zeta);
61  fmatvec::Vec3 evalParDer1Wn(const fmatvec::Vec2 &zeta);
62  fmatvec::Vec3 evalParDer2Wn(const fmatvec::Vec2 &zeta);
63  fmatvec::Vec3 evalParDer1Wu(const fmatvec::Vec2 &zeta);
64  fmatvec::Vec3 evalParDer2Wu(const fmatvec::Vec2 &zeta);
65  fmatvec::Vec3 evalParDer1Wv(const fmatvec::Vec2 &zeta);
66  fmatvec::Vec3 evalParDer2Wv(const fmatvec::Vec2 &zeta);
67  fmatvec::Vec3 evalWrPS(const fmatvec::Vec2 &zeta);
68  fmatvec::Vec3 evalWs(const fmatvec::Vec2 &zeta);
69  fmatvec::Vec3 evalWt(const fmatvec::Vec2 &zeta);
70 
76  ContactKinematics * findContactPairingWith(std::string type0, std::string type1);
77 
78  virtual void initializeUsingXML(xercesc::DOMElement *element);
79 
80  std::shared_ptr<OpenMBV::RigidBody>& getOpenMBVRigidBody() { return openMBVRigidBody; }
81 
82  void setOpenMBVRigidBody(const std::shared_ptr<OpenMBV::RigidBody> &ombvBody) { openMBVRigidBody = ombvBody; }
83 
84  protected:
88  Frame *R;
89 
90  std::shared_ptr<OpenMBV::RigidBody> openMBVRigidBody;
91 
92  private:
93  std::string saved_frameOfReference;
94  };
95 
96 }
97 
98 #endif /* _CONTOUR_H_ */
99 
basic class for rigid contours
Definition: rigid_contour.h:37
fmatvec::Vec3 evalWs(const fmatvec::Vec2 &zeta)
Definition: rigid_contour.cc:95
virtual void plot()
plots time dependent data
Definition: rigid_contour.cc:103
ContactKinematics * findContactPairingWith(std::string type0, std::string type1)
contact search for RigidContours
Definition: rigid_contour.cc:122
RigidContour(const std::string &name, Frame *R_=NULL)
constructor
Definition: rigid_contour.h:43
fmatvec::Vec3 evalParDer1Wu(const fmatvec::Vec2 &zeta)
Definition: rigid_contour.cc:75
fmatvec::Vec3 evalParDer1Wn(const fmatvec::Vec2 &zeta)
Definition: rigid_contour.cc:67
fmatvec::Vec3 evalParDer2Wu(const fmatvec::Vec2 &zeta)
Definition: rigid_contour.cc:79
basic class for contour definition for rigid (which do not know about their shape) and flexible (they...
Definition: contour.h:40
virtual void init(InitStage stage)
plots time series header
Definition: rigid_contour.cc:36
fmatvec::Vec3 evalWrPS(const fmatvec::Vec2 &zeta)
Definition: rigid_contour.cc:91
std::string getType() const
Definition: rigid_contour.h:55
fmatvec::Vec3 evalParDer2Wv(const fmatvec::Vec2 &zeta)
Definition: rigid_contour.cc:87
fmatvec::Vec3 evalParDer1Wv(const fmatvec::Vec2 &zeta)
Definition: rigid_contour.cc:83
InitStage
The stages of the initialization.
Definition: element.h:97
std::string name
name of element
Definition: element.h:298
cartesian frame on bodies used for application of e.g. links and loads
Definition: frame.h:37
fmatvec::Vec3 evalParDer2Wn(const fmatvec::Vec2 &zeta)
Definition: rigid_contour.cc:71
fmatvec::Vec3 evalWt(const fmatvec::Vec2 &zeta)
Definition: rigid_contour.cc:99
basic class for contact kinematical calculations
Definition: contact_kinematics.h:39
Frame * R
coordinate system of contour
Definition: rigid_contour.h:88
fmatvec::Vec3 evalPosition(const fmatvec::Vec2 &zeta)
Definition: rigid_contour.cc:63

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML