columbia1.h 4.1 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// ================================================================================================
// 
// This file is part of the CAMPVis Software Framework.
// 
// If not explicitly stated otherwise: Copyright (C) 2012, all rights reserved,
//      Christian Schulte zu Berge <christian.szb@in.tum.de>
//      Chair for Computer Aided Medical Procedures
//      Technische Universitt Mnchen
//      Boltzmannstr. 3, 85748 Garching b. Mnchen, Germany
// For a full list of authors and contributors, please refer to the file "AUTHORS.txt".
// 
// The licensing of this softare is not yet resolved. Until then, redistribution in source or
// binary forms outside the CAMP chair is not permitted, unless explicitly stated in legal form.
// However, the names of the original authors and the above copyright notice must retain in its
// original state in any case.
// 
// Legal disclaimer provided by the BSD license:
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
// 
// ================================================================================================

#ifndef COLUMBIA1_H__
#define COLUMBIA1_H__

33
#include "core/eventhandlers/trackballnavigationeventlistener.h"
34
#include "core/pipeline/autoevaluationpipeline.h"
35
36
37
38
#include "core/properties/cameraproperty.h"


#include "modules/io/processors/ltfimagereader.h"
39
#include "modules/io/processors/vtkimagereader.h"
40
#include "modules/columbia/processors/geometrystrainrenderer.h"
41
#include "modules/columbia/processors/imageseriessplitter.h"
42
#include "modules/columbia/processors/strainfibertracker.h"
43
#include "modules/columbia/processors/strainfiberrenderer.h"
44
#include "modules/columbia/processors/strainraycaster.h"
45
#include "modules/vis/processors/geometryrenderer.h"
46
#include "modules/vis/processors/rendertargetcompositor.h"
47
#include "modules/vis/processors/sliceextractor.h"
48
49
50
#include "modules/vis/processors/volumerenderer.h"

namespace campvis {
51
    class Columbia1 : public AutoEvaluationPipeline {
52
53
    public:
        /**
54
         * Creates a AutoEvaluationPipeline.
55
56
57
58
59
60
61
62
         */
        Columbia1();

        /**
         * Virtual Destructor
         **/
        virtual ~Columbia1();

63
        /// \see AutoEvaluationPipeline::init()
64
65
        virtual void init();

66
        /// \see AutoEvaluationPipeline::deinit()
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
        virtual void deinit();

        /// \see AbstractPipeline::getName()
        virtual const std::string getName() const;


    protected:
        /**
         * Slot getting called when one of the observed processors got validated.
         * Updates the camera properties, when the input image has changed.
         * \param   processor   The processor that emitted the signal
         */
        virtual void onProcessorValidated(AbstractProcessor* processor);

        CameraProperty _camera;
82
        DataNameProperty _boundsData;
83
84

        LtfImageReader _imageReader;
85
86
87
88
89
        ImageSeriesSplitter _imageSplitter;

        LtfImageReader _flowReader;
        ImageSeriesSplitter _flowSplitter;

90
        VtkImageReader _vtkReader;
91
        VolumeRenderer _vr;
92
        StrainRaycaster _src;
93
        SliceExtractor _sr;
94
        GeometryRenderer _gr;
95

96
        StrainFiberTracker _sft;
97
        StrainFiberRenderer _sfr;
98

99
100
        RenderTargetCompositor _compositor;

101
        TrackballNavigationEventListener* _trackballEH;
102
103
104
105
106

    };
}

#endif // COLUMBIA1_H__