Line data Source code
1 : /* Copyright (c) 2016-2017, Human Brain Project
2 : * Ahmet.Bilgili@epfl.ch
3 : */
4 :
5 : #pragma once
6 :
7 : #include <lexis/api.h>
8 : #include <lexis/render/detail/clipPlanes.h>
9 : #include <vmmlib/types.hpp>
10 :
11 : namespace lexis
12 : {
13 : namespace render
14 : {
15 :
16 1 : class ClipPlanes : public detail::ClipPlanes
17 : {
18 : public:
19 : /**
20 : * Adds 6 othogonal planes in normalized space (+x,-x,+y,-y,+z,-z). Convex
21 : * region is defined as an AABB (-0.5,-0.5,-0.5) to (0.5, 0.5, 0.5).
22 : */
23 : LEXIS_API ClipPlanes();
24 :
25 : /** @return true if there are no clipping planes. */
26 : LEXIS_API bool isEmpty() const;
27 :
28 : /** Clears all planes, results in isEmpty() == true. */
29 : LEXIS_API void clear();
30 :
31 : /** Reset to planes setup by constructor. */
32 : LEXIS_API void reset();
33 :
34 : /** @return true if the box is outside the clip planes, aka shall be clipped.*/
35 : LEXIS_API bool isOutside( const vmml::AABBf& box ) const;
36 : };
37 :
38 : }
39 : }
|