GeoModel - GeoModelCore
GeoTessellatedSolid.h
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GEOMODELKERNEL_GEOTESSELLATEDSOLID_H
6 #define GEOMODELKERNEL_GEOTESSELLATEDSOLID_H
7 
8 #include "GeoModelKernel/GeoShape.h"
9 #include "GeoModelKernel/GeoFacet.h"
10 
12 {
13  public:
15 
16  virtual double volume() const;
17 
18  virtual const std::string& type() const;
19  virtual ShapeType typeID() const;
20 
21  static const std::string& getClassType();
22  static ShapeType getClassTypeID();
23 
24  virtual void exec(GeoShapeAction *action) const;
25 
26  void addFacet(GeoFacet*);
27  GeoFacet* getFacet(size_t) const;
28  size_t getNumberOfFacets() const;
29 
31  // bool isValid () const; // TODO: implement, like, e.g., in GeoPgon
32 
33  protected:
34  virtual ~GeoTessellatedSolid();
35 
36  private:
38  GeoTessellatedSolid& operator=(const GeoTessellatedSolid &right);
39 
40  static const std::string s_classType;
41  static const ShapeType s_classTypeID;
42 
43  std::vector<GeoFacet*> m_facets;
44 };
45 
46 inline const std::string& GeoTessellatedSolid::getClassType()
47 {
48  return s_classType;
49 }
50 
51 inline ShapeType GeoTessellatedSolid::getClassTypeID()
52 {
53  return s_classTypeID;
54 }
55 
56 // TODO: implement, like, e.g., in GeoPgon
57 //inline bool GeoPgon::isValid () const
58 //{
59 // return m_zPlane.size () >= 2;
60 //}
61 
62 #endif
Base class for GeoModel Facets Two implementations exist:
Definition: GeoFacet.h:24
virtual ~GeoTessellatedSolid()
True if the polygon has at least two facets. False otherwise.
This class is a visitor for shapes. It allows a navigation of the boolean expression tree for shapes...
This class describes a Shape. Shapes will be able to do the following things:
Definition: GeoShape.h:38