All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
compound_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 _COMPOUND_CONTOUR_H_
21 #define _COMPOUND_CONTOUR_H_
22 
23 #include "mbsim/contours/rigid_contour.h"
24 
25 namespace MBSim {
26 
27  class FixedRelativeFrame;
28 
34  class CompoundContour : public RigidContour {
35  public:
40  CompoundContour(const std::string &name="", Frame *R=0);
41 
46 
47  /* INHERITED INTERFACE OF ELEMENT */
48  std::string getType() const {
49  return "CompoundContour";
50  }
51  virtual void plot();
52  std::shared_ptr<OpenMBV::Group> getOpenMBVGrp() { return openMBVGroup; }
53  /***************************************************/
54 
55  void init(InitStage stage);
56  Contour* getContourElement(int i) {
57  return element[i];
58  }
59  Contour* getContour(int i) { return element[i]; }
60  void addContour(RigidContour* ce);
61  void addFrame(FixedRelativeFrame* f);
62  unsigned int getNumberOfElements() { return element.size(); }
63 
64  void resetUpToDate();
65 
66  protected:
70  std::vector<RigidContour*> element;
71 
75  std::vector<FixedRelativeFrame*> frame;
76 
80  std::vector<fmatvec::SqrMat3> AIK;
81 
82  std::shared_ptr<OpenMBV::Group> openMBVGroup;
83  };
84 }
85 
86 #endif /* _COMPOUND_CONTOUR_H_ */
87 
CompoundContour(const std::string &name="", Frame *R=0)
constructor
Definition: compound_contour.cc:31
basic class for rigid contours
Definition: rigid_contour.h:37
contour consisting of primitive contour elements
Definition: compound_contour.h:34
RigidContour(const std::string &name, Frame *R_=NULL)
constructor
Definition: rigid_contour.h:43
virtual void plot()
plots time dependent data
Definition: compound_contour.cc:48
void init(InitStage stage)
plots time series header
Definition: compound_contour.cc:59
std::vector< fmatvec::SqrMat3 > AIK
Orientations of the single elements in the contour frame.
Definition: compound_contour.h:80
std::vector< RigidContour * > element
list of all subelements
Definition: compound_contour.h:70
Contour(const std::string &name)
constructor
Definition: contour.cc:30
InitStage
The stages of the initialization.
Definition: element.h:97
std::vector< FixedRelativeFrame * > frame
List of all frames on the contour.
Definition: compound_contour.h:75
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
~CompoundContour()
destructor
Definition: compound_contour.cc:36
Frame * R
coordinate system of contour
Definition: rigid_contour.h:88
std::string getType() const
Definition: compound_contour.h:48

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML