#include "bbmaracasvisuTransferFunctionView.h" #include "bbcreaMaracasVisuPackage.h" namespace bbcreaMaracasVisu { BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,TransferFunctionView) BBTK_BLACK_BOX_IMPLEMENTATION(TransferFunctionView,bbtk::WxBlackBox); //----------------------------------------------------- void TransferFunctionView::Process() { if(bbGetInputIn()!=NULL){ if(_currentimg != bbGetInputIn()){ _currentimg = bbGetInputIn(); //mwxwidget->initializeHistogram(_currentimg); mwxwidget->setImageData(_currentimg); //mwxwidget->Refresh(); } onColorChange(); /*bbSetOutputGreyLevel(greylevel); bbSetOutputValue(value); bbSetOutputGreyLevelColors(greylevelcolors); bbSetOutputRed(red); bbSetOutputGreen(green); bbSetOutputBlue(blue);*/ } } void TransferFunctionView::onColorChange(){ std::vector greylevel; std::vector value; std::vector greylevelcolors; std::vector red; std::vector green; std::vector blue; mwxwidget->GetValuesPointsFunction(greylevel, value); mwxwidget->GetValuesColorPointsFunction(greylevelcolors,red, green,blue); _tfun->RemoveAllPoints(); for(int i = 0; i < greylevel.size();i++){ _tfun->AddPoint(greylevel[i], value[i]); //std::cout<<"TransferFunctionView::Process()transfer function "<RemoveAllPoints(); for(int i = 0; i < greylevelcolors.size();i++){ _ctfun->AddRGBPoint(greylevelcolors[i], red[i],green[i], blue[i]); //std::cout<<"TransferFunctionView::Process()transfer color function "<GetWindowLevel()); bbSetOutputColorLevel(mwxwidget->GetColorLevel()); } //----------------------------------------------------- void TransferFunctionView::CreateWidget(wxWindow* parent) { bbtkDebugMessageInc("Core",9,"TransferFunctionView::CreateWxWindow()"<Connect(mwxwidget->GetId(), wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction) (&HandlerTransferFunctionView::onColorChange),NULL,handler); parent->Connect(mwxwidget->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction) (&HandlerTransferFunctionView::onSliderChange),NULL,handler); bbtkDebugDecTab("Core",9); bbSetOutputWidget( mwxwidget ); } //----------------------------------------------------- void TransferFunctionView::bbUserSetDefaultValues() { mwxwidget = NULL; _currentimg = NULL; _tfun = NULL; _ctfun = NULL; bbSetOutputOpacityFunction(0); bbSetOutputColorFunction(0); } //----------------------------------------------------------------- void TransferFunctionView::bbUserInitializeProcessing() { _tfun = vtkPiecewiseFunction::New(); _ctfun = vtkColorTransferFunction::New(); bbSetInputIn(NULL); } //----------------------------------------------------------------- void TransferFunctionView::bbUserFinalizeProcessing() { } //----------------------------------------------------------------- HandlerTransferFunctionView::HandlerTransferFunctionView(TransferFunctionView* box){ _box = box; } HandlerTransferFunctionView::~HandlerTransferFunctionView(){ } void HandlerTransferFunctionView::onColorChange(wxCommandEvent& event){ _box->onColorChange(); } void HandlerTransferFunctionView::onSliderChange(wxCommandEvent& event){ _box->onSliderChange(); } } // EO namespace bbcreaMaracasVisu