00001 /*========================================================================= 00002 00003 Library: CTK 00004 00005 Copyright (c) 2010 Kitware Inc. 00006 00007 Licensed under the Apache License, Version 2.0 (the "License"); 00008 you may not use this file except in compliance with the License. 00009 You may obtain a copy of the License at 00010 00011 http://www.commontk.org/LICENSE 00012 00013 Unless required by applicable law or agreed to in writing, software 00014 distributed under the License is distributed on an "AS IS" BASIS, 00015 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00016 See the License for the specific language governing permissions and 00017 limitations under the License. 00018 00019 =========================================================================*/ 00020 00021 #ifndef __ctkVTKCompositeFunction_h 00022 #define __ctkVTKCompositeFunction_h 00023 00024 // CTK includes 00025 #include "ctkTransferFunction.h" 00026 #include "ctkPimpl.h" 00027 #include "CTKVisualizationVTKCoreExport.h" 00028 #include "ctkVTKObject.h" 00029 00030 class vtkPiecewiseFunction; 00031 class vtkColorTransferFunction; 00032 class ctkVTKCompositeFunctionPrivate; 00033 00036 00037 class CTK_VISUALIZATION_VTK_CORE_EXPORT ctkVTKCompositeFunction: public ctkTransferFunction 00038 { 00039 Q_OBJECT; 00040 QVTK_OBJECT; 00041 public: 00042 ctkVTKCompositeFunction(vtkPiecewiseFunction* piecewiserFunction, 00043 vtkColorTransferFunction* colorTransferFunction, 00044 QObject* parent = 0); 00045 virtual ~ctkVTKCompositeFunction(); 00046 00047 virtual ctkControlPoint* controlPoint(int index)const; 00048 virtual QVariant value(qreal pos)const; 00049 // ADD color here 00050 // value = color in piecewise and colortransfer 00051 virtual int count()const; 00052 virtual bool isDiscrete()const; 00053 virtual bool isEditable()const; 00054 00055 virtual void range(qreal& minRange, qreal& maxRange)const; 00056 virtual QVariant minValue()const; 00057 virtual QVariant maxValue()const; 00058 00059 virtual int insertControlPoint(const ctkControlPoint& cp); 00060 virtual int insertControlPoint(qreal pos); 00061 00062 virtual void setControlPointPos(int index, qreal pos); 00063 virtual void setControlPointValue(int index, const QVariant& value); 00064 00065 void setPiecewiseFunction(vtkPiecewiseFunction* piecewiseFunction); 00066 void setColorTransferFunction(vtkColorTransferFunction* colorTansferFunction); 00067 00068 vtkPiecewiseFunction* piecewiseFunction()const; 00069 vtkColorTransferFunction* colorTransferFunction()const; 00070 private: 00071 CTK_DECLARE_PRIVATE(ctkVTKCompositeFunction); 00072 }; 00073 00074 #endif