X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk%2Fsrc%2FbbcreaMaracasVisuTubeTreeFilter.h;h=02911c812a5cbd5cb9e8e50b0448ba3dd1bc5f0c;hb=b8c5a565c70ac0def1f21518afa2d847a9582d79;hp=c6ee910bab297eac6829b91d1fa1fe3b18cc4440;hpb=8b01430072604956a52213748415d28c87e018a6;p=creaMaracasVisu.git diff --git a/bbtk/src/bbcreaMaracasVisuTubeTreeFilter.h b/bbtk/src/bbcreaMaracasVisuTubeTreeFilter.h index c6ee910..02911c8 100644 --- a/bbtk/src/bbcreaMaracasVisuTubeTreeFilter.h +++ b/bbtk/src/bbcreaMaracasVisuTubeTreeFilter.h @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== @@ -18,10 +43,58 @@ #include "vtkCellArray.h" #include "vtkProperty.h" #include "vtkLinearTransform.h" +#include "vtkLookupTable.h" +#include "vtkScalarsToColors.h" + + + +class /*VTK_COMMON_EXPORT*/ vtkLookupTableEED : public vtkScalarsToColors + { + public: + // Description: + // Construct with range=[0,1]; and hsv ranges set up for rainbow color table + // (from red to blue). + static vtkLookupTableEED *New(); + + vtkTypeMacro(vtkLookupTableEED,vtkScalarsToColors); + void PrintSelf(ostream& os, vtkIndent indent); + + double *GetRange() { return this->GetTableRange(); }; + void SetRange(double min, double max) { this->SetTableRange(min, max); }; + void SetRange(double rng[2]) { this->SetRange(rng[0], rng[1]); }; + + void SetTableRange(double r[2]); + virtual void SetTableRange(double min, double max); + vtkGetVectorMacro(TableRange,double,2); + + unsigned char *MapValue(double v); + + void GetColor(double x, double rgb[3]); + + void MapScalarsThroughTable2(void *input, unsigned char *output, + int inputDataType, int numberOfValues, + int inputIncrement, int outputIncrement); + + + protected: + + double TableRange[2]; + vtkLookupTableEED(int sze=256, int ext=256); + ~vtkLookupTableEED(); + + + private: + vtkLookupTableEED(const vtkLookupTableEED&); // Not implemented. + void operator=(const vtkLookupTableEED&); // Not implemented. +}; + + + namespace bbcreaMaracasVisu { + class bbcreaMaracasVisu_EXPORT TubeTreeFilter : @@ -37,6 +110,7 @@ class bbcreaMaracasVisu_EXPORT TubeTreeFilter BBTK_DECLARE_INPUT(lstPointY , std::vector); BBTK_DECLARE_INPUT(lstPointZ , std::vector); BBTK_DECLARE_INPUT(lstRadio , std::vector); + BBTK_DECLARE_INPUT(lstRadioLaw , int); BBTK_DECLARE_INPUT(Colour , std::vector); BBTK_DECLARE_INPUT(ColourLaw , int); BBTK_DECLARE_INPUT(Transform , vtkLinearTransform *); @@ -48,7 +122,11 @@ class bbcreaMaracasVisu_EXPORT TubeTreeFilter private: std::vector vecVtkActors; + std::vector< vtkDoubleArray* > vecTubeRadiosArray; + void DrawOneTube(int iGeneral,int numPoints, int iTube); + void SetGraphicProperties(); + void SetRadioTube(int iGeneral,int numPoints, int iTube); int oldLstSize; //===== @@ -67,15 +145,15 @@ BBTK_BEGIN_DESCRIBE_BLACK_BOX(TubeTreeFilter,bbtk::AtomicBlackBox); BBTK_INPUT(TubeTreeFilter,lstPointX,"lstPointX",std::vector,""); BBTK_INPUT(TubeTreeFilter,lstPointY,"lstPointY",std::vector,""); BBTK_INPUT(TubeTreeFilter,lstPointZ,"lstPointZ",std::vector,""); - BBTK_INPUT(TubeTreeFilter,lstRadio,"lstRadio",std::vector,""); + BBTK_INPUT(TubeTreeFilter,lstRadio,"lstRadio (default 1) ",std::vector,""); + BBTK_INPUT(TubeTreeFilter,lstRadioLaw,"0(default) radio for all, 1 radio by segment, 2 radio by point",int,""); BBTK_INPUT(TubeTreeFilter,Colour,"Colour",std::vector,""); - BBTK_INPUT(TubeTreeFilter,ColourLaw,"ColorLaw 1(default) solid color, 2 color by segment, 3 color for each point",int,""); + BBTK_INPUT(TubeTreeFilter,ColourLaw,"ColorLaw 1(default) solid color, 2 color by segment, 3 color for each point",int,""); BBTK_INPUT(TubeTreeFilter,Transform,"vtkTransform", vtkLinearTransform *,""); BBTK_INPUT(TubeTreeFilter,iTube,"iTube",int,""); BBTK_INPUT(TubeTreeFilter,Opacity,"Opacity",double,""); - BBTK_OUTPUT(TubeTreeFilter,OutTube,"Tube[iTube]",vtkProp3D *,""); - + BBTK_OUTPUT(TubeTreeFilter,OutTube,"Tube[iTube]",vtkProp3D *,""); BBTK_END_DESCRIBE_BLACK_BOX(TubeTreeFilter); //=====