Carna Version 3.3.3
Loading...
Searching...
No Matches
BoundingVolume.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 BOUNDINGVOLUME_H_6014714286
13#define BOUNDINGVOLUME_H_6014714286
14
15#include <Carna/Carna.h>
17#include <Carna/base/math.h>
18
23namespace Carna
24{
25
26namespace base
27{
28
29
30
31// ----------------------------------------------------------------------------------
32// BoundingVolume
33// ----------------------------------------------------------------------------------
34
42class CARNA_LIB BoundingVolume
43{
44
46
47 struct Details;
48 const std::unique_ptr< Details > pimpl;
49
50public:
51
56
60 virtual ~BoundingVolume();
61
66 virtual void computeClosemostPoint( math::Vector3f& out, const math::Vector3f& reference ) const = 0;
67
72 void setTransform( const math::Matrix4f& transform );
73
78 const math::Matrix4f& transform() const;
79
85
86}; // BoundingVolume
87
88
89
90} // namespace Carna :: base
91
92} // namespace Carna
93
94#endif // BOUNDINGVOLUME_H_6014714286
Represents an association.
Definition Association.h:45
Represents a Geometry minimal boundary volume of simple geometric shape. The volume is centered withi...
BoundingVolume()
Instantiates.
const math::Matrix4f & transform() const
Tells the transform from the local coordinate system of this bounding volume to the model space of th...
virtual void computeClosemostPoint(math::Vector3f &out, const math::Vector3f &reference) const =0
Computes the point out in model space that is close-most to reference, that is also in model space.
const math::Matrix4f & inverseTransform() const
Tells the transform from the model space of the Geometry object that uses this bounding volume to its...
void setTransform(const math::Matrix4f &transform)
Sets the transform from the local coordinate system of this bounding volume to the Geometry object th...
virtual ~BoundingVolume()
Deletes.
Defines Carna::base::math namespace and CARNA_FOR_VECTOR3UI.
Eigen::Matrix< float, 3, 1 > Vector3f
Defines vector.
Definition math.h:196
Eigen::Matrix< float, 4, 4, Eigen::ColMajor > Matrix4f
Defines matrix.
Definition math.h:193
#define NON_COPYABLE
Features class it is placed in as non-copyable.