openmbvcppinterface  3.1.0
OpenMBV C++ Interface
frustum.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_FRUSTUM_H_
21#define _OPENMBV_FRUSTUM_H_
22
23#include <openmbvcppinterface/rigidbody.h>
24
25namespace OpenMBV {
26
28 class Frustum : public RigidBody {
29 friend class ObjectFactory;
30 protected:
31 double baseRadius{1};
32 double topRadius{1};
33 double height{2};
34 double innerBaseRadius{0};
35 double innerTopRadius{0};
36 Frustum();
37 ~Frustum() override = default;
38 public:
40 void setBaseRadius(double radius) {
41 baseRadius=radius;
42 }
43
44 double getBaseRadius() { return baseRadius; }
45
47 void setTopRadius(double radius) {
48 topRadius=radius;
49 }
50
51 double getTopRadius() { return topRadius; }
52
54 void setHeight(double height_) {
55 height=height_;
56 }
57
58 double getHeight() { return height; }
59
61 void setInnerBaseRadius(double radius) {
62 innerBaseRadius=radius;
63 }
64
65 double getInnerBaseRadius() { return innerBaseRadius; }
66
68 void setInnerTopRadius(double radius) {
69 innerTopRadius=radius;
70 }
71
72 double getInnerTopRadius() { return innerTopRadius; }
73
75 void initializeUsingXML(xercesc::DOMElement *element) override;
76
77 xercesc::DOMElement* writeXMLFile(xercesc::DOMNode *parent) override;
78 };
79
80}
81
82#endif
Definition: frustum.h:28
void setInnerBaseRadius(double radius)
Definition: frustum.h:61
void setHeight(double height_)
Definition: frustum.h:54
void setInnerTopRadius(double radius)
Definition: frustum.h:68
void setTopRadius(double radius)
Definition: frustum.h:47
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: frustum.cc:45
void setBaseRadius(double radius)
Definition: frustum.h:40
Definition: objectfactory.h:38
Abstract base class for all rigid bodies.
Definition: rigidbody.h:68