OpenLexocad  28.0
Beam.h
Go to the documentation of this file.
1 #pragma once
2 #include <OpenLxApp/Element.h>
3 
4 #include <memory>
5 
6 FORWARD_DECL(App, Beam)
7 
8 
13 namespace OpenLxApp
14 {
23 class LX_OPENLXAPP_EXPORT Beam : public Element
24 {
25  PROXY_HEADER(Beam, App::Beam, IFCBEAM)
26 
27 public:
28  enum class BeamTypeEnum
29  {
30  BEAM,
31  JOIST,
32  HOLLOWCORE,
33  LINTEL,
34  SPANDREL,
35  T_BEAM,
36  USERDEFINED,
37  NOTDEFINED
38 
39  };
40 
43 
44  virtual ~Beam(void);
45 
46  static std::shared_ptr<Beam> buildFrom2Points(std::shared_ptr<Document> aDoc,
47  double aWidth,
48  double aHeight,
49  const Geom::Pnt& aPnt1,
50  const Geom::Pnt& aPnt2);
51 
52 
53 protected:
54  Beam() {}
55 };
56 
57 } // namespace OpenLxApp
OpenLxApp
Definition: ActiveScript.h:10
Element.h
FORWARD_DECL
#define FORWARD_DECL(x, y)
Definition: Globals.h:93
OpenLxApp::Beam
An Beam is a horizontal, or nearly horizontal, structural member that is capable of withstanding load...
Definition: Beam.h:24
OpenLxApp::Beam::~Beam
virtual ~Beam(void)
OpenLxApp::Beam::buildFrom2Points
static std::shared_ptr< Beam > buildFrom2Points(std::shared_ptr< Document > aDoc, double aWidth, double aHeight, const Geom::Pnt &aPnt1, const Geom::Pnt &aPnt2)
OpenLxApp::Element
An element is a generalization of all components that make up an AEC product. Those elements can be l...
Definition: Element.h:30
OpenLxApp::Beam::setPredefinedType
void setPredefinedType(BeamTypeEnum aType)
Geom::Pnt
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:44
OpenLxApp::Beam::getPredefinedType
BeamTypeEnum getPredefinedType() const
OpenLxApp::Beam::BeamTypeEnum
BeamTypeEnum
Definition: Beam.h:29
PROXY_HEADER
#define PROXY_HEADER(_openlexocadclass_, _corelexocadclass_, _type_)
Definition: Globals.h:146
OpenLxApp::Beam::Beam
Beam()
Definition: Beam.h:54