LibCarna Version 3.4.0
Loading...
Searching...
No Matches
BoundingVolume.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2010 - 2016 Leonid Kostrykin
3 *
4 * Chair of Medical Engineering (mediTEC)
5 * RWTH Aachen University
6 * Pauwelsstr. 20
7 * 52074 Aachen
8 * Germany
9 *
10 *
11 * Copyright (C) 2021 - 2025 Leonid Kostrykin
12 *
13 */
14
15#ifndef BOUNDINGVOLUME_H_6014714286
16#define BOUNDINGVOLUME_H_6014714286
17
18#include <LibCarna/LibCarna.hpp>
21
27namespace LibCarna
28{
29
30namespace base
31{
32
33
34
35// ----------------------------------------------------------------------------------
36// BoundingVolume
37// ----------------------------------------------------------------------------------
38
45class LIBCARNA BoundingVolume
46{
47
49
50 struct Details;
51 const std::unique_ptr< Details > pimpl;
52
53public:
54
59
63 virtual ~BoundingVolume();
64
69 virtual void computeClosemostPoint( math::Vector3f& out, const math::Vector3f& reference ) const = 0;
70
75 void setTransform( const math::Matrix4f& transform );
76
81 const math::Matrix4f& transform() const;
82
88
89}; // BoundingVolume
90
91
92
93} // namespace LibCarna :: base
94
95} // namespace LibCarna
96
97#endif // BOUNDINGVOLUME_H_6014714286
Contains forward-declarations.
Represents an association.
Represents a Geometry minimal boundary volume of simple geometric shape. The volume is centered withi...
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.
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.
Defines LibCarna::base::math namespace and LIBCARNA_FOR_VECTOR3UI.
Eigen::Matrix< float, 3, 1 > Vector3f
Defines vector.
Definition math.hpp:200
Eigen::Matrix< float, 4, 4, Eigen::ColMajor > Matrix4f
Defines matrix.
Definition math.hpp:197
Defines LibCarna::base::noncopyable and NON_COPYABLE.
#define NON_COPYABLE
Marks the class that it is placed in as non-copyable.