1
//---------------------------------------------------------------------------
3
// Project: OpenWalnut ( http://www.openwalnut.org )
5
// Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
6
// For more information see http://www.openwalnut.org/copying
8
// This file is part of OpenWalnut.
10
// OpenWalnut is free software: you can redistribute it and/or modify
11
// it under the terms of the GNU Lesser General Public License as published by
12
// the Free Software Foundation, either version 3 of the License, or
13
// (at your option) any later version.
15
// OpenWalnut is distributed in the hope that it will be useful,
16
// but WITHOUT ANY WARRANTY; without even the implied warranty of
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
// GNU Lesser General Public License for more details.
20
// You should have received a copy of the GNU Lesser General Public License
21
// along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
23
//---------------------------------------------------------------------------
25
#ifndef WBOUNDARYFRAGMENTS_H
26
#define WBOUNDARYFRAGMENTS_H
28
// Use filesystem version 2 for compatibility with newer boost versions.
29
#ifndef BOOST_FILESYSTEM_VERSION
30
#define BOOST_FILESYSTEM_VERSION 2
32
#include <boost/filesystem.hpp>
34
#include <osg/ref_ptr>
36
#include "core/graphicsEngine/shaders/WGEShader.h"
37
#include "core/graphicsEngine/WGEManagedGroupNode.h"
38
#include "WBoundaryBuilder.h"
40
// forward declarations
44
* Constructs the boundary surface curves of the WM and GM via a shader approach.
46
class WBoundaryFragments : public WBoundaryBuilder
50
* Constructs an builder instance.
52
* \param texture The underlying scalar dataset to compute those boundaries for
53
* \param properties Properties, like slice positions, thresholds etc.
54
* \param slices Slice geodes which are controlled (hide/unhide) by the module.
55
* \param localPath Path where to search for the shaders.
57
WBoundaryFragments( boost::shared_ptr< const WDataSetScalar > texture,
58
boost::shared_ptr< const WProperties > properties,
59
boost::array< osg::ref_ptr< WGEManagedGroupNode >, 3 > *slices,
60
boost::filesystem::path localPath );
63
* Starts rendering and finally insert result in output.
65
* \param output Where to put/insert the results.
66
* \param sliceNum If given -1 all slice will perform an update, otherwise only the slice with the given slice number.
68
virtual void run( osg::ref_ptr< WGEManagedGroupNode > output, const char sliceNum = -1 );
74
#endif // WBOUNDARYFRAGMENTS_H