openmbvcppinterface  3.1.0
OpenMBV C++ Interface
cuboid.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_CUBOID_H_
21#define _OPENMBV_CUBOID_H_
22
23#include <openmbvcppinterface/rigidbody.h>
24
25namespace OpenMBV {
26
28 class Cuboid : public RigidBody {
29 friend class ObjectFactory;
30 protected:
31 std::vector<double> length;
32 Cuboid();
33 ~Cuboid() override = default;
34 public:
36 void setLength(const std::vector<double>& length_) {
37 if(length_.size()!=3) throw std::runtime_error("the dimension does not match");
38 length=length_;
39 }
40
41 std::vector<double> getLength() { return length; }
42
44 void setLength(double x, double y, double z) {
45 std::vector<double> length_;
46 length_.push_back(x);
47 length_.push_back(y);
48 length_.push_back(z);
49 length=length_;
50 }
51
53 void initializeUsingXML(xercesc::DOMElement *element) override;
54
55 xercesc::DOMElement* writeXMLFile(xercesc::DOMNode *parent) override;
56 };
57
58}
59
60#endif
Definition: cuboid.h:28
void setLength(double x, double y, double z)
Definition: cuboid.h:44
void setLength(const std::vector< double > &length_)
Definition: cuboid.h:36
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: cuboid.cc:43
Definition: objectfactory.h:38
Abstract base class for all rigid bodies.
Definition: rigidbody.h:68