X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaVtk%2FvtkVectorsTensorsVisuBase.cpp;fp=lib%2FcreaVtk%2FvtkVectorsTensorsVisuBase.cpp;h=3c1addcac10148cd08e6da020b6edbf1186a8922;hb=0669db4305686c580a5af90759aac12c2ed2f4d9;hp=8da1d1a0cf5854268dc2b5e91ceb2d84de7b2200;hpb=d1c64e28802f8db534e9bf17a981cf766d13fa45;p=creaVtk.git diff --git a/lib/creaVtk/vtkVectorsTensorsVisuBase.cpp b/lib/creaVtk/vtkVectorsTensorsVisuBase.cpp index 8da1d1a..3c1addc 100644 --- a/lib/creaVtk/vtkVectorsTensorsVisuBase.cpp +++ b/lib/creaVtk/vtkVectorsTensorsVisuBase.cpp @@ -108,38 +108,71 @@ void vtkLookupTableMapDirVectorEED(vtkLookupTableDirectionVector *self, T *input // double *mag; int i, j; double dirx,diry,dirz; - - -inIncr=3; -// printf("EED length %d %p\n", length,input); + double angle; + + printf("EED vtkLookupTableMapDirVectorEED inIncr=%d \n", inIncr); + + // mag = new double[length]; 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); - } + + + if (1==1){ + 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 ); + + /* + 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); + + } // type 1 color vector by direction + + + if (2==0){ + angle = static_cast(input[0]); + input = input+inIncr; + + *output++ = (unsigned char) abs( 255*angle/90 ); + *output++ = (unsigned char) abs( 0 ); + *output++ = (unsigned char) abs( 0 ); + *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); + + }// type 2 color vector by scalar + + } // for + // vtkLookupTableMapData(self, mag, output, length, 1, outFormat); // delete [] mag; + + } @@ -151,7 +184,7 @@ void vtkLookupTableDirectionVector::MapScalarsThroughTable2(void *input, int inputIncrement, int outputFormat) { -// printf("vtkLookupTableEED::MapScalarsThroughTable2 inputIncrement=%d inputDataType=%d\n",inputIncrement,inputDataType); + printf("vtkLookupTableEED::MapScalarsThroughTable2 \n"); // if (this->UseMagnitude && inputIncrement > 1) // { switch (inputDataType) @@ -196,7 +229,8 @@ vtkVectorsTensorsVisuBase::vtkVectorsTensorsVisuBase() _typeForm = 0; _orientation = 0; - _LutEED = vtkLookupTableDirectionVector::New(); + _LutEED = vtkLookupTableDirectionVector::New(); + _externalLut = NULL; //_LutEED->SetVectorMode(0); //_LutEED->SetVectorModeToMagnitude(); //_LutEED->SetVectorModeToComponent(); @@ -351,4 +385,11 @@ int vtkVectorsTensorsVisuBase::GetOrientation() return _orientation; } +//------------------------------------------------------------------------------ +void vtkVectorsTensorsVisuBase::SetExternalLut(vtkScalarsToColors* lut) +{ +printf("EED vtkVectorsTensorsVisuBase::SetExternalLut C ptrlut %p this:%p\n",lut, this); + _externalLut=lut; +printf("EED vtkVectorsTensorsVisuBase::SetExternalLut D ptrlut %p \n",_externalLut); +}