X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaVtk%2FvtkVectorsTensorsVisuBase.cpp;h=9c53d977ce873a530fcb5abf4e2f8794beef7d9d;hb=8b897e95b16fec9d4da9e687b750101f6f16e173;hp=ee7fc4999d6066a96640c5bedb001e17b4286343;hpb=6f0a90ad28dc2855513d2e27c824ac162367cbe7;p=creaVtk.git diff --git a/lib/creaVtk/vtkVectorsTensorsVisuBase.cpp b/lib/creaVtk/vtkVectorsTensorsVisuBase.cpp index ee7fc49..9c53d97 100644 --- a/lib/creaVtk/vtkVectorsTensorsVisuBase.cpp +++ b/lib/creaVtk/vtkVectorsTensorsVisuBase.cpp @@ -26,13 +26,8 @@ */ #include "vtkVectorsTensorsVisuBase.h" - - #include "vtkObjectFactory.h" - - - vtkStandardNewMacro(vtkLookupTableDirectionVector); // Construct with range=(0,1); and hsv ranges set up for rainbow color table @@ -48,14 +43,11 @@ vtkLookupTableDirectionVector::~vtkLookupTableDirectionVector() { } - - unsigned char *vtkLookupTableDirectionVector::MapValue(double v) { //int idx = this->GetIndex(v); - //return (this->Table->GetPointer(0) + 4*idx); - + //return (this->Table->GetPointer(0) + 4*idx); return 0; } @@ -113,45 +105,27 @@ void vtkLookupTableMapDirVectorEED(vtkLookupTableDirectionVector *self, T *input int inIncr, int outFormat) { double tmp,sum; -// double *mag; int i, j; double dirx,diry,dirz; - - -inIncr=3; - printf("EED length %d %p\n", length,input); -// mag = new double[length]; + double angle; for (i = 0; i < length; ++i) { - dirx = 0; - diry = 0; - dirz = 0; - sum = 0; - for (j = 0; j < inIncr; ++j) - { - if (j==0) dirx= static_cast(*input); - if (j==1) diry= static_cast(*input); - if (j==2) dirz= static_cast(*input); - tmp = static_cast(*input); - sum += (tmp * tmp); - ++input; - } - sum=sqrt(sum); - *output++ = (unsigned char) abs( (255*dirx/sum) ); - *output++ = (unsigned char) abs( (255*diry/sum) ); - *output++ = (unsigned char) abs( (255*dirz/sum) ); - *output++ = 255; -// printf("%d %d %d ",(int)(255*dirx/sum),(int)(255*diry/sum),(int)(255*dirz/sum)); -// printf(" C %d %f %f %f \n",inIncr,dirx,diry,dirz); - } - -// vtkLookupTableMapData(self, mag, output, length, 1, outFormat); - -// delete [] mag; + dirx = static_cast(input[0]); + diry = static_cast(input[1]); + dirz = static_cast(input[2]); + input = input+inIncr; + sum = sqrt( dirx*dirx + diry*diry + dirz*dirz ); + *output++ = (unsigned char) abs( (255*dirx/sum) ); + *output++ = (unsigned char) abs( (255*diry/sum) ); + *output++ = (unsigned char) abs( (255*dirz/sum) ); + *output++ = 255; + // printf("%d %d %d ",(int)(255*dirx/sum),(int)(255*diry/sum),(int)(255*dirz/sum)); + // printf(" C %d %f %f %f \n",inIncr,dirx,diry,dirz); + + } // for } - //---------------------------------------------------------------------------- void vtkLookupTableDirectionVector::MapScalarsThroughTable2(void *input, unsigned char *output, @@ -160,7 +134,6 @@ void vtkLookupTableDirectionVector::MapScalarsThroughTable2(void *input, int inputIncrement, int outputFormat) { - printf("vtkLookupTableEED::MapScalarsThroughTable2 inputIncrement=%d inputDataType=%d\n",inputIncrement,inputDataType); // if (this->UseMagnitude && inputIncrement > 1) // { switch (inputDataType) @@ -196,21 +169,23 @@ void vtkLookupTableDirectionVector::PrintSelf(ostream& os, vtkIndent indent) vtkVectorsTensorsVisuBase::vtkVectorsTensorsVisuBase() { - _firsttime = true; - _active = false; - _scalefactor= 1; + _firsttime = true; + _active = false; + _scalefactor = 1; _opacity = 1; - _dataobject = NULL; - _renderer = NULL; - _typeForm = 0; - - _LutEED = vtkLookupTableDirectionVector::New(); -// _LutEED->SetVectorMode(0); -//_LutEED->SetVectorModeToMagnitude(); -//_LutEED->SetVectorModeToComponent(); -_LutEED->SetVectorModeToRGBColors(); - - _pdm = vtkPolyDataMapper::New(); + _dataobject = NULL; + _renderer = NULL; + _typeForm = 0; + _orientation = 0; + + _LutEED = vtkLookupTableDirectionVector::New(); + _externalLut = NULL; + //_LutEED->SetVectorMode(0); + //_LutEED->SetVectorModeToMagnitude(); + //_LutEED->SetVectorModeToComponent(); + _LutEED->SetVectorModeToRGBColors(); + + _pdm = vtkPolyDataMapper::New(); _actor = vtkActor::New(); _actorAdded = false; } @@ -305,12 +280,9 @@ void vtkVectorsTensorsVisuBase::Process() // virtual { } - - //------------------------------------------------------------------------------ void vtkVectorsTensorsVisuBase::VisibilityActor() { - if ( (_active==true) && (_actorAdded==false) ){ if (GetRenderer()!=NULL) { @@ -328,7 +300,6 @@ void vtkVectorsTensorsVisuBase::VisibilityActor() } // if _active==false } - //------------------------------------------------------------------------------ void vtkVectorsTensorsVisuBase::SetColorLaw(int colorlaw) { @@ -350,4 +321,21 @@ void vtkVectorsTensorsVisuBase::SetColor(std::vector rgb) } } +//------------------------------------------------------------------------------ +void vtkVectorsTensorsVisuBase::SetOrientation(int orientation) +{ + _orientation = orientation; +} + +//------------------------------------------------------------------------------ +int vtkVectorsTensorsVisuBase::GetOrientation() +{ + return _orientation; +} + +//------------------------------------------------------------------------------ +void vtkVectorsTensorsVisuBase::SetExternalLut(vtkScalarsToColors* lut) +{ + _externalLut=lut; +}