20#ifndef _SPATIAL_CONTOUR_H_
21#define _SPATIAL_CONTOUR_H_
23#include "mbsim/contours/rigid_contour.h"
25#include "mbsim/utils/boost_parameters.h"
26#include <mbsim/utils/openmbv_utils.h>
30 template <
class Sig>
class Function;
55 void init(
InitStage stage,
const InitConfigSet &config)
override;
56 fmatvec::Vec3 evalKrPS(
const fmatvec::Vec2 &zeta)
override;
57 fmatvec::Vec3 evalKs(
const fmatvec::Vec2 &zeta)
override;
58 fmatvec::Vec3 evalKt(
const fmatvec::Vec2 &zeta)
override;
59 fmatvec::Vec3 evalParDer1Ks(
const fmatvec::Vec2 &zeta)
override;
60 fmatvec::Vec3 evalParDer2Ks(
const fmatvec::Vec2 &zeta)
override;
61 fmatvec::Vec3 evalParDer1Kt(
const fmatvec::Vec2 &zeta)
override;
62 fmatvec::Vec3 evalParDer2Kt(
const fmatvec::Vec2 &zeta)
override;
66 void setContourFunction(
Function<fmatvec::Vec3(fmatvec::Vec2)> *func);
67 Function<fmatvec::Vec3(fmatvec::Vec2)>* getContourFunction() {
return funcCrPC; }
70 BOOST_PARAMETER_MEMBER_FUNCTION( (
void), enableOpenMBV, tag, (optional (etaNodes,(
const std::vector<double>&),std::vector<double>())(xiNodes,(
const std::vector<double>&),std::vector<double>())(diffuseColor,(
const fmatvec::Vec3&),fmatvec::Vec3(std::vector<double>{-1,1,1}))(transparency,(
double),0)(pointSize,(
double),0)(lineWidth,(
double),0))) {
71 ombv = std::shared_ptr<OpenMBVSpatialContour>(
new OpenMBVSpatialContour(etaNodes,xiNodes,diffuseColor,transparency,pointSize,lineWidth));
72 openMBVRigidBody=ombv->createOpenMBV();
75 void initializeUsingXML(xercesc::DOMElement *element)
override;
77 void setEtaNodes(
const std::vector<double> &etaNodes_) { etaNodes = etaNodes_; }
78 void setXiNodes(
const std::vector<double> &xiNodes_) { xiNodes = xiNodes_; }
80 bool isZetaOutside(
const fmatvec::Vec2 &zeta)
override;
82 void setOpenEta(
bool openEta_) { openEta = openEta_; }
83 void setOpenXi(
bool openXi_) { openXi = openXi_; }
86 Function<fmatvec::Vec3(fmatvec::Vec2)> * funcCrPC{
nullptr};
89 std::shared_ptr<OpenMBVSpatialContour> ombv;
InitStage
The stages of the initialization.
Definition: element.h:62
std::string name
name of element
Definition: element.h:260
cartesian frame on bodies used for application of e.g. links and loads
Definition: frame.h:39
Definition: function.h:53
basic class for rigid contours
Definition: rigid_contour.h:37
Frame * R
coordinate system of contour
Definition: rigid_contour.h:135
analytical description of contours with two contour parameters
Definition: spatial_contour.h:38
void init(InitStage stage, const InitConfigSet &config) override
plots time series header
Definition: spatial_contour.cc:71
SpatialContour(const std::string &name="", Frame *R=nullptr)
constructor
Definition: spatial_contour.h:44
~SpatialContour() override
destructor
Definition: spatial_contour.cc:34
namespace MBSim
Definition: bilateral_constraint.cc:30