mbsim 4.0.0 MBSim Kernel

observer.h
1 /* Copyright (C) 2004-2013 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@gmail.com
18 */
19
20 #ifndef _OBSERVER_H__
21 #define _OBSERVER_H__
22 #include "mbsim/element.h"
23
24 namespace MBSim {
25
26 class Observer : public Element {
27 private:
28 std::shared_ptr<OpenMBV::Group> openMBVGrp;
29
30 public:
31 Observer(const std::string &name);
32
33 void init(InitStage stage, const InitConfigSet &config) override;
34
35 std::shared_ptr<OpenMBV::Group> getOpenMBVGrp() override { return openMBVGrp; }
36
37 void createPlotGroup() override;
38
39 int getisInd() { return isInd; }
40 int getisSize() { return isSize; }
41 virtual void calcisSize() { isSize = 0; }
42
48 virtual void aboutToUpdateInternalState() {}
49
50 virtual void postprocessing() {}
51
52 virtual void setisInd(int isInd_) { isInd = isInd_; }
53 virtual void updateInternalStateRef(fmatvec::Vec& cur, fmatvec::Vec& next);
54
55 protected:
56 fmatvec::Vec curis, nextis;
57 int isSize { 0 }, isInd { 0 };
58 };
59
60 }
61
62 #endif
MBSim::Observer::init
void init(InitStage stage, const InitConfigSet &config) override
plots time series header
Definition: observer.cc:33
MBSim::Element
basic class of MBSim mainly for plotting
Definition: element.h:56
MBSim::Element::InitStage
InitStage
The stages of the initialization.
Definition: element.h:62
MBSim::Element::name
std::string name
name of element
Definition: element.h:260
MBSim::Observer::createPlotGroup
void createPlotGroup() override
creates the plotGroup for H5-output
Definition: observer.cc:45
MBSim::Observer
Definition: observer.h:26
MBSim::Observer::aboutToUpdateInternalState
virtual void aboutToUpdateInternalState()
Definition: observer.h:48
MBSim
namespace MBSim
Definition: bilateral_constraint.cc:30