1 // Copyright 2021 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 
4 #include "TransferFunction.h"
5 
6 namespace ospray {
7 namespace sg {
8 
9 // Turbo /////////////////////////////////////////////////////////////////////
10 
11 struct OSPSG_INTERFACE Turbo : public TransferFunction
12 {
13   Turbo();
14   virtual ~Turbo() override = default;
15 };
16 
17 OSP_REGISTER_SG_NODE_NAME(Turbo, transfer_function_turbo);
18 
Turbo()19 Turbo::Turbo() : TransferFunction("piecewiseLinear")
20 {
21   colors.clear();
22   colors.emplace_back(0.190, 0.072, 0.232);
23   colors.emplace_back(0.276, 0.421, 0.891);
24   colors.emplace_back(0.158, 0.736, 0.923);
25   colors.emplace_back(0.197, 0.949, 0.595);
26   colors.emplace_back(0.644, 0.990, 0.234);
27   colors.emplace_back(0.933, 0.812, 0.227);
28   colors.emplace_back(0.984, 0.493, 0.128);
29   colors.emplace_back(0.816, 0.185, 0.018);
30   colors.emplace_back(0.480, 0.016, 0.011);
31 
32   initOpacities();
33 
34   createChildData("color", colors);
35   createChildData("opacity", opacities);
36 }
37 
38 // Grayscale /////////////////////////////////////////////////////////////////
39 
40 struct OSPSG_INTERFACE Grayscale : public TransferFunction
41 {
42   Grayscale();
43   virtual ~Grayscale() override = default;
44 };
45 
46 OSP_REGISTER_SG_NODE_NAME(Grayscale, transfer_function_grayscale);
47 
Grayscale()48 Grayscale::Grayscale() : TransferFunction("piecewiseLinear")
49 {
50   colors.clear();
51   colors.emplace_back(0.000, 0.000, 0.000);
52   colors.emplace_back(1.000, 1.000, 1.000);
53 
54   initOpacities();
55 
56   createChildData("color", colors);
57   createChildData("opacity", opacities);
58 }
59 
60 } // namespace sg
61 } // namespace ospray
62