All Classes Namespaces Functions Variables Typedefs Enumerations Pages
extrusion.h
1 /*
2  OpenMBV - Open Multi Body Viewer.
3  Copyright (C) 2009 Markus Friedrich
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program 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
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19 
20 #ifndef _OPENMBV_EXTRUSION_H_
21 #define _OPENMBV_EXTRUSION_H_
22 
23 #include <openmbvcppinterface/rigidbody.h>
24 #include <openmbvcppinterface/polygonpoint.h>
25 #include <vector>
26 
27 namespace OpenMBV {
28 
30  class Extrusion : public RigidBody {
31  friend class ObjectFactory;
32  public:
33  enum WindingRule {
34  odd,
35  nonzero,
36  positive,
37  negative,
38  absGEqTwo
39  };
40  protected:
41  WindingRule windingRule;
42  double height;
43  std::vector<boost::shared_ptr<std::vector<boost::shared_ptr<PolygonPoint> > > > contour;
44  Extrusion();
45  ~Extrusion();
46  public:
47 
49  std::string getClassName() { return "Extrusion"; }
50 
55  void setWindingRule(WindingRule windingRule_) {
56  windingRule=windingRule_;
57  }
58 
59  WindingRule getWindingRule() { return windingRule; }
60 
64  void setHeight(double height_) {
65  height=height_;
66  }
67 
68  double getHeight() { return height; }
69 
71  void clearContours() {
72  contour.clear();
73  }
74 
78  void addContour(const boost::shared_ptr<std::vector<boost::shared_ptr<PolygonPoint> > > &contour_) {
79  contour.push_back(contour_);
80  }
81 
82  std::vector<boost::shared_ptr<std::vector<boost::shared_ptr<PolygonPoint> > > >& getContours() {
83  return contour;
84  }
85 
87  virtual void initializeUsingXML(xercesc::DOMElement *element);
88 
89  xercesc::DOMElement *writeXMLFile(xercesc::DOMNode *parent);
90 
91  };
92 
93 }
94 
95 #endif /* _OPENMBV_EXTRUSION_H_ */
96 
void setHeight(double height_)
Definition: extrusion.h:64
virtual void initializeUsingXML(xercesc::DOMElement *element)
Definition: extrusion.cc:60
Abstract base class for all rigid bodies.
Definition: rigidbody.h:70
Definition: objectfactory.h:40
void clearContours()
Definition: extrusion.h:71
void setWindingRule(WindingRule windingRule_)
Definition: extrusion.h:55
void addContour(const boost::shared_ptr< std::vector< boost::shared_ptr< PolygonPoint > > > &contour_)
Definition: extrusion.h:78
Definition: extrusion.h:30
std::string getClassName()
Definition: extrusion.h:49

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML