// ================================================================================================ // // This file is part of the CAMPVis Software Framework. // // If not explicitly stated otherwise: Copyright (C) 2012-2015, all rights reserved, // Christian Schulte zu Berge // Chair for Computer Aided Medical Procedures // Technische Universitaet Muenchen // Boltzmannstr. 3, 85748 Garching b. Muenchen, Germany // // For a full list of authors and contributors, please refer to the file "AUTHORS.txt". // // Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file // except in compliance with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software distributed under the // License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, // either express or implied. See the License for the specific language governing permissions // and limitations under the License. // // ================================================================================================ #ifndef STEREORENDERDEMO_H__ #define STEREORENDERDEMO_H__ #include "core/pipeline/autoevaluationpipeline.h" #include "modules/modulesapi.h" #include "modules/base/processors/lightsourceprovider.h" #include "modules/base/processors/trackballcameraprovider.h" #include "modules/io/processors/vtkimagereader.h" #include "modules/vis/processors/geometryrenderer.h" #include "modules/vis/processors/rendertargetcompositor.h" #include "modules/stereo/processors/stereocompositor.h" #include "modules/stereo/processors/stereocameragenerator.h" namespace campvis { class CAMPVIS_MODULES_API StereoRenderDemo : public AutoEvaluationPipeline { public: /** * Creates a StereoRenderDemo pipeline. * \param dataContainer Reference to the DataContainer containing local working set of data * for this pipeline, must be valid the whole lifetime of this pipeline. */ explicit StereoRenderDemo(DataContainer& dc); /** * Virtual Destructor **/ virtual ~StereoRenderDemo(); /// \see AutoEvaluationPipeline::init() virtual void init(); /// \see AutoEvaluationPipeline::deinit() virtual void deinit(); /// \see AbstractPipeline::getName() virtual std::string getName() const { return getId(); }; static const std::string getId() { return "StereoRenderDemo"; }; 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); TrackballCameraProvider _tcp; StereoCameraGenerator _stereoCamGenerator; LightSourceProvider _lsp; VtkImageReader _geometryReader; GeometryRenderer _lvRendererL; GeometryRenderer _teapotRendererL; RenderTargetCompositor _compositorL; GeometryRenderer _lvRendererR; GeometryRenderer _teapotRendererR; RenderTargetCompositor _compositorR; StereoCompositor _stereoComp; }; } #endif // STEREORENDERDEMO_H__