drrraycaster.h 1.62 KB
Newer Older
schultezub's avatar
schultezub committed
1
2
3
4
5
#ifndef DRRRAYCASTER_H__
#define DRRRAYCASTER_H__

#include <string>

6
#include "core/pipeline/raycastingprocessor.h"
schultezub's avatar
schultezub committed
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "core/properties/genericproperty.h"
#include "core/properties/numericproperty.h"
#include "core/properties/transferfunctionproperty.h"

namespace tgt {
    class Shader;
}

namespace TUMVis {
    class ImageData;

    /**
     * Creates a Digitally Reconstructed Radiograph.
     */
21
    class DRRRaycaster : public RaycastingProcessor {
schultezub's avatar
schultezub committed
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    public:
        /**
         * Constructs a new DRRRaycaster Processor
         **/
        DRRRaycaster(GenericProperty<tgt::ivec2>& canvasSize);

        /**
         * Destructor
         **/
        virtual ~DRRRaycaster();

        /// \see AbstractProcessor::getName()
        virtual const std::string getName() const { return "DRRRaycaster"; };
        /// \see AbstractProcessor::getDescription()
        virtual const std::string getDescription() const { return "Creates a Digitally Reconstructed Radiograph."; };

        GenericProperty<std::string> _targetImageID;    ///< image ID for output image

        FloatProperty _shift;
        FloatProperty _scale;
        BoolProperty _invertMapping;

    protected:
45
46
        /// \see RaycastingProcessor::processImpl()
        virtual void processImpl(DataContainer& data);
schultezub's avatar
schultezub committed
47

48
49
50
51
52
        /**
         * \see RaycastingProcessor::generateHeader()
         * \return  "#define DRR_INVERT 1" if \a _invertMapping is set to true.
         */
        virtual std::string generateHeader() const;
schultezub's avatar
schultezub committed
53
54
55
56
57
58
59

        static const std::string loggerCat_;
    };

}

#endif // DRRRAYCASTER_H__