transferfunctioneditorfactory.cpp 2.7 KB
Newer Older
1
2
// ================================================================================================
// 
schultezub's avatar
schultezub committed
3
// This file is part of the CAMPVis Software Framework.
4
// 
5
// If not explicitly stated otherwise: Copyright (C) 2012-2013, all rights reserved,
schultezub's avatar
schultezub committed
6
//      Christian Schulte zu Berge <christian.szb@in.tum.de>
7
//      Chair for Computer Aided Medical Procedures
8
9
//      Technische Universität München
//      Boltzmannstr. 3, 85748 Garching b. München, Germany
10
// 
schultezub's avatar
schultezub committed
11
// For a full list of authors and contributors, please refer to the file "AUTHORS.txt".
12
// 
13
14
15
16
// 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
17
// 
18
19
20
21
// 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.
22
23
24
// 
// ================================================================================================

schultezub's avatar
schultezub committed
25
26
27
#include "transferfunctioneditorfactory.h"

#include "application/gui/properties/abstracttransferfunctioneditor.h"
schultezub's avatar
schultezub committed
28
#include "application/gui/properties/geometry1dtransferfunctioneditor.h"
29
#include "application/gui/properties/geometry2dtransferfunctioneditor.h"
schultezub's avatar
schultezub committed
30
31
32
#include "application/gui/properties/simpletransferfunctioneditor.h"

#include "core/classification/abstracttransferfunction.h"
schultezub's avatar
schultezub committed
33
#include "core/classification/geometry1dtransferfunction.h"
34
#include "core/classification/geometry2dtransferfunction.h"
schultezub's avatar
schultezub committed
35
36
#include "core/classification/simpletransferfunction.h"

37
38
#include "core/properties/transferfunctionproperty.h"

schultezub's avatar
schultezub committed
39
namespace campvis {
schultezub's avatar
schultezub committed
40

41
42
43
44
    AbstractTransferFunctionEditor* TransferFunctionEditorFactory::createEditor(TransferFunctionProperty* prop) {
        tgtAssert(prop != 0, "Property must not be 0.");

        AbstractTransferFunction* tf = prop->getTF();
schultezub's avatar
schultezub committed
45
46
47
        tgtAssert(tf != 0, "Transfer function must not be 0.");

        if (SimpleTransferFunction* tester = dynamic_cast<SimpleTransferFunction*>(tf)) {
48
            return new SimpleTransferFunctionEditor(prop, tester);
schultezub's avatar
schultezub committed
49
50
        }

schultezub's avatar
schultezub committed
51
        if (Geometry1DTransferFunction* tester = dynamic_cast<Geometry1DTransferFunction*>(tf)) {
52
            return new Geometry1DTransferFunctionEditor(prop, tester);
53
54
        }

55
        if (Geometry2DTransferFunction* tester = dynamic_cast<Geometry2DTransferFunction*>(tf)) {
56
            return new Geometry2DTransferFunctionEditor(prop, tester);
57
58
        }

schultezub's avatar
schultezub committed
59
60
61
62
        return 0;
    }

}