Carna  Version 3.3.2
BoundingBox.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2010 - 2015 Leonid Kostrykin
3  *
4  * Chair of Medical Engineering (mediTEC)
5  * RWTH Aachen University
6  * Pauwelsstr. 20
7  * 52074 Aachen
8  * Germany
9  *
10  */
11 
12 #ifndef BOUNDINGBOX_H_6014714286
13 #define BOUNDINGBOX_H_6014714286
14 
15 #include <Carna/Carna.h>
17 
22 namespace Carna
23 {
24 
25 namespace base
26 {
27 
28 
29 
30 // ----------------------------------------------------------------------------------
31 // BoundingBox
32 // ----------------------------------------------------------------------------------
33 
40 class CARNA_LIB BoundingBox : public BoundingVolume
41 {
42 
43  struct Details;
44  const std::unique_ptr< Details > pimpl;
45 
46 public:
47 
52  BoundingBox( const math::Vector3f& size );
53 
56  BoundingBox( float width, float height, float depth );
57 
61  virtual ~BoundingBox();
62 
67  const math::Vector3f& size() const;
68 
73  void setSize( const math::Vector3f& size );
74 
77  void setSize( float width, float height, float depth );
78 
79  virtual void computeClosemostPoint( math::Vector3f& out, const math::Vector3f& reference ) const override;
80 
81 }; // BoundingBox
82 
83 
84 
85 } // namespace Carna :: base
86 
87 } // namespace Carna
88 
89 #endif // BOUNDINGBOX_H_6014714286
Defines Carna::base::BoundingVolume.
Defines a Geometry minimal boundary box.
Definition: BoundingBox.h:40
Eigen::Matrix< float, 3, 1 > Vector3f
Defines vector.
Definition: math.h:196
Represents a Geometry minimal boundary volume of simple geometric shape. The volume is centered withi...