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
27 namespace 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
OpenMBV::IvBody::addRemoveNodesByName
void addRemoveNodesByName(const std::string &name)
Definition: ivbody.h:58
OpenMBV::IvBody::setBoundaryEdges
void setBoundaryEdges(bool b)
Definition: ivbody.h:53
OpenMBV::IvBody
Definition: ivbody.h:34
OpenMBV::IvBody::initializeUsingXML
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: ivbody.cc:50
OpenMBV::RigidBody
Abstract base class for all rigid bodies.
Definition: rigidbody.h:68
OpenMBV::ObjectFactory
Definition: objectfactory.h:38
OpenMBV::IvBody::setIvFileName
void setIvFileName(std::string ivFileName_)
Definition: ivbody.h:38
OpenMBV::IvBody::setCreaseEdges
void setCreaseEdges(double creaseAngle_)
Definition: ivbody.h:47
OpenMBV::IvBody::addRemoveNodesByType
void addRemoveNodesByType(const std::string &type)
Definition: ivbody.h:63