openmbvcppinterface  3.1.0
OpenMBV C++ Interface
ivbody.h
1/*
2 OpenMBV - Open Multi Body Viewer.
3 Copyright (C) 2009 Markus Friedrich
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18*/
19
20#ifndef _OPENMBV_IVBODY_H_
21#define _OPENMBV_IVBODY_H_
22
23#include <openmbvcppinterface/rigidbody.h>
24#include <string>
25#include <utility>
26
27namespace OpenMBV {
28
34 class IvBody : public RigidBody {
35 friend class ObjectFactory;
36 public:
38 void setIvFileName(std::string ivFileName_) { ivContent=""; ivFileName=std::move(ivFileName_); }
39 std::string getIvFileName() { return ivFileName; }
40
41 void setIvContent(std::string ivContent_) { ivFileName=""; ivContent=std::move(ivContent_); }
42 const std::string& getIvContent() { return ivContent; }
43
47 void setCreaseEdges(double creaseAngle_) { creaseAngle=creaseAngle_; }
48
49 double getCreaseEdges() { return creaseAngle; }
50
53 void setBoundaryEdges(bool b) { boundaryEdges=b; }
54
55 bool getBoundaryEdges() { return boundaryEdges; }
56
58 void addRemoveNodesByName(const std::string &name) { removeNodesByName.emplace_back(name); }
59
60 std::vector<std::string> getRemoveNodesByName() { return removeNodesByName; }
61
63 void addRemoveNodesByType(const std::string &type) { removeNodesByType.emplace_back(type); }
64
65 std::vector<std::string> getRemoveNodesByType() { return removeNodesByType; }
66
68 void initializeUsingXML(xercesc::DOMElement *element) override;
69
70 xercesc::DOMElement* writeXMLFile(xercesc::DOMNode *parent) override;
71
72 protected:
73 IvBody();
74 ~IvBody() override = default;
75 std::string ivFileName;
76 std::string ivContent;
77 double creaseAngle{-1};
78 bool boundaryEdges{false};
79 std::vector<std::string> removeNodesByName;
80 std::vector<std::string> removeNodesByType;
81 };
82
83}
84
85#endif
Definition: ivbody.h:34
void addRemoveNodesByName(const std::string &name)
Definition: ivbody.h:58
void setBoundaryEdges(bool b)
Definition: ivbody.h:53
void setCreaseEdges(double creaseAngle_)
Definition: ivbody.h:47
void addRemoveNodesByType(const std::string &type)
Definition: ivbody.h:63
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: ivbody.cc:50
void setIvFileName(std::string ivFileName_)
Definition: ivbody.h:38
Definition: objectfactory.h:38
Abstract base class for all rigid bodies.
Definition: rigidbody.h:68