]> Creatis software - creaVtk.git/commitdiff
#3100 creaVtk Feature New Normal - Vectors Visu refresh
authorEduardo DAVILA <davila@ei-ed-606.creatis.insa-lyon.fr>
Thu, 6 Jun 2019 09:40:53 +0000 (11:40 +0200)
committerEduardo DAVILA <davila@ei-ed-606.creatis.insa-lyon.fr>
Thu, 6 Jun 2019 09:40:53 +0000 (11:40 +0200)
15 files changed:
bbtk_creaVtk_PKG/bbs/boxes/VectorVisuPlane_Widget.bbg
bbtk_creaVtk_PKG/bbs/boxes/VectorVisuPlane_Widget.bbs
bbtk_creaVtk_PKG/bbs/boxes/VectorsTensors_Widget.bbg
bbtk_creaVtk_PKG/bbs/boxes/VectorsTensors_Widget.bbs
bbtk_creaVtk_PKG/src/bbcreaVtkImageDataStructuredPoints.cxx
bbtk_creaVtk_PKG/src/bbcreaVtkImageDataStructuredPoints.h
bbtk_creaVtk_PKG/src/bbcreaVtkPlaneSource.cxx
bbtk_creaVtk_PKG/src/bbcreaVtkVectorsVisu.cxx
bbtk_creaVtk_PKG/src/bbcreaVtkVectorsVisu.h
lib/creaVtk/vtkImageDataStrucPoints.cpp
lib/creaVtk/vtkImageDataStrucPoints.h
lib/creaVtk/vtkVectorsTensorsVisuBase.cpp
lib/creaVtk/vtkVectorsTensorsVisuBase.h
lib/creaVtk/vtkVectorsVisu.cpp
lib/creaVtk/vtkVectorsVisu.h

index d74d5f1bd9d7cdad353605e370aa2b40c25b6199..1ae192a989e35e9e7eabd8f7ef78f055e24e5ed0 100644 (file)
@@ -15,7 +15,7 @@ COMPLEX_PORT
 outwidget
 10.147096:-179.347579:-900.000000
 FIN_COMPLEX_PORT
-COMPLEXINPUTS:7
+COMPLEXINPUTS:8
 COMPLEX_PORT
 structuredpoints
 118.034259:165.342792:-900.000000
@@ -44,7 +44,11 @@ COMPLEX_PORT
 boxExecute
 136.897755:166.588357:-900.000000
 FIN_COMPLEX_PORT
-BOXES:22
+COMPLEX_PORT
+lookuptable
+-168.767355:163.699267:-900.000000
+FIN_COMPLEX_PORT
+BOXES:23
 BOX
 creaVtk:VectorsVisu_Interface:Box01
 ISEXEC:FALSE
@@ -197,7 +201,13 @@ ISEXEC:FALSE
 PORT
 Active:"true"
 FIN_BOX
-CONNECTIONS:78
+BOX
+std:MagicBox:Box28
+ISEXEC:FALSE
+-200.365716:-1.413275:-900.000000
+-164.290716:-11.413275:-900.000000
+FIN_BOX
+CONNECTIONS:85
 CONNECTION
 Box01:widget:outwidget:outwidget
 NumberOfControlPoints:0
@@ -432,4 +442,25 @@ NumberOfControlPoints:0
 CONNECTION
 Box01:active3DXY:Box16:Active
 NumberOfControlPoints:0
+CONNECTION
+lookuptable:lookuptable:Box28:In
+NumberOfControlPoints:0
+CONNECTION
+Box28:Out:Box03:ExternalLut
+NumberOfControlPoints:0
+CONNECTION
+Box28:Out:Box04:ExternalLut
+NumberOfControlPoints:0
+CONNECTION
+Box28:Out:Box05:ExternalLut
+NumberOfControlPoints:0
+CONNECTION
+Box28:Out:Box14:ExternalLut
+NumberOfControlPoints:0
+CONNECTION
+Box28:Out:Box15:ExternalLut
+NumberOfControlPoints:0
+CONNECTION
+Box28:Out:Box16:ExternalLut
+NumberOfControlPoints:0
 APP_END
index f4faa5739feb7cb69223219e9c0b2e67c9337e7e..ff6e413a9b9926267f9eab18b233b0618a73d6f9 100644 (file)
@@ -71,6 +71,8 @@ new vtk:UpdateRender Box26
 new vtk:UpdateRender Box27
   set Box27.Active "true"
 
+new std:MagicBox Box28
+
 
 connect Box06.vtkRenderer Box03.Renderer
 connect Box01.Opacity Box03.Opacity
@@ -142,6 +144,12 @@ connect Box18.outvtkdataset Box05.In
 connect Box01.active3DYZ Box14.Active
 connect Box01.active3DXZ Box15.Active
 connect Box01.active3DXY Box16.Active
+connect Box28.Out Box03.ExternalLut
+connect Box28.Out Box04.ExternalLut
+connect Box28.Out Box05.ExternalLut
+connect Box28.Out Box14.ExternalLut
+connect Box28.Out Box15.ExternalLut
+connect Box28.Out Box16.ExternalLut
 
 # Complex input ports
 input Point Box09.In " "
@@ -151,6 +159,7 @@ input vtkbaseview_3D Box20.wxVtkBaseView " "
 input boxExecute Box21.In " "
 input wxvtkbaseview2_2D Box06.wxVtkBaseView " "
 input wxvtkbaseview1_2D Box11.wxVtkBaseView " "
+input lookuptable Box28.In " "
 
 # Complex output ports
 output outwidget Box01.widget " "
index 6980d5b2a7972000176a87c0f253cf04f2cf3bc0..f1a04f4cc732878b458f4d45ffbf5d066db7d00e 100644 (file)
@@ -1,6 +1,6 @@
 # ----------------------------------
 # - BBTKGEditor v 1.4 BBG BlackBox Diagram file
-# - VectorsTensors_Widget.bbg
+# - /home/davila/Creatis/C8/creatools_source/creaVtk/bbtk_creaVtk_PKG/bbs/boxes/VectorsTensors_Widget.bbg
 # ----------------------------------
 
 APP_START
@@ -13,7 +13,7 @@ PACKAGENAME:creaVtk
 COMPLEXOUTPUTS:1
 COMPLEX_PORT
 widget
--87.086702:-131.675720:-900.000000
+-133.205566:-215.108938:-900.000000
 FIN_COMPLEX_PORT
 COMPLEXINPUTS:3
 COMPLEX_PORT
@@ -32,24 +32,24 @@ BOXES:14
 BOX
 vtk:UpdateRender:Box22
 ISEXEC:FALSE
-112.874685:-20.808003:-900.000000
-158.449685:-30.808003:-900.000000
+91.911565:-119.753930:-900.000000
+132.236565:-129.753930:-900.000000
 PORT
 Active:"true"
 FIN_BOX
 BOX
 wx:LayoutTab:Box17
 ISEXEC:FALSE
--89.942511:-71.713124:-900.000000
--44.367511:-81.713124:-900.000000
+-148.219985:-138.795108:-900.000000
+-90.659985:-148.795108:-900.000000
 PORT
 WinTitle:"VectorsTensors Analysis"
 FIN_BOX
 BOX
 std:MultipleInputs:Box23
 ISEXEC:FALSE
-76.506639:18.351379:-900.000000
-122.081639:8.351379:-900.000000
+32.484087:-86.883484:-900.000000
+72.184087:-96.883484:-900.000000
 PORT
 BoxProcessMode:"Reactive"
 FIN_BOX
@@ -57,13 +57,13 @@ BOX
 creaVtk:PlaneVectorVisu_Widget:Box41
 ISEXEC:FALSE
 -290.289955:71.849699:-900.000000
--202.478965:61.849699:-900.000000
+-240.339955:61.849699:-900.000000
 FIN_BOX
 BOX
 wx:LayoutLine:Box14
 ISEXEC:FALSE
--231.090102:-2.949602:-900.000000
--136.464715:-12.949602:-900.000000
+-249.537648:23.883192:-900.000000
+-191.977648:13.883192:-900.000000
 PORT
 WinTitle:"Field"
 FIN_BOX
@@ -71,13 +71,13 @@ BOX
 creaVtk:VolumeVectorVisu_Widget:Box18
 ISEXEC:FALSE
 -214.258652:71.383715:-900.000000
--143.083652:61.383715:-900.000000
+-162.208652:61.383715:-900.000000
 FIN_BOX
 BOX
 wx:LayoutLine:Box16
 ISEXEC:FALSE
--40.899412:-16.748818:-900.000000
-4.675588:-26.748818:-900.000000
+-107.142871:-103.536135:-900.000000
+-49.582871:-113.536135:-900.000000
 PORT
 WinTitle:"Tensors"
 FIN_BOX
@@ -85,43 +85,43 @@ BOX
 creaVtk:VolumeTensorVisu_Widget:Box19
 ISEXEC:FALSE
 60.863865:72.033730:-900.000000
-132.038865:62.033730:-900.000000
+112.563865:62.033730:-900.000000
 FIN_BOX
 BOX
 creaVtk:PlaneTensorVisu_Widget:Box21
 ISEXEC:FALSE
--19.798384:71.186398:-900.000000
-51.376616:61.186398:-900.000000
+-17.702072:72.444185:-900.000000
+31.897928:62.444185:-900.000000
 FIN_BOX
 BOX
 creaVtk:PlaneWidget_StreamLineVisu_Widget:Box30
 ISEXEC:FALSE
--128.471084:73.231403:-900.000000
--57.296084:63.231403:-900.000000
+-156.561665:28.789589:-900.000000
+-94.686665:18.789589:-900.000000
 FIN_BOX
 BOX
 vtk:vtkImageDataPointerRelay:Box26
 ISEXEC:FALSE
 -208.540015:141.393307:-900.000000
--137.365015:131.393307:-900.000000
+-154.090517:131.393307:-900.000000
 FIN_BOX
 BOX
 vtk:vtkImageDataPointerRelay:Box27
 ISEXEC:FALSE
 -89.314298:137.998626:-900.000000
--18.139298:127.998626:-900.000000
+-37.139298:127.998626:-900.000000
 FIN_BOX
 BOX
 std:MagicBox:Box28
 ISEXEC:FALSE
 123.517825:137.982960:-900.000000
-169.092825:127.982960:-900.000000
+159.592825:127.982960:-900.000000
 FIN_BOX
 BOX
 wx:LayoutTab:Box29
 ISEXEC:FALSE
--199.996601:-45.212305:-900.000000
--126.846139:-55.212305:-900.000000
+-175.679382:-102.651254:-900.000000
+-118.119382:-112.651254:-900.000000
 PORT
 WinTitle:"Vectors"
 FIN_BOX
index 1187f71c6832452dfa149d5ae70989171ebf4da5..8117a5041508c49af308c5c86afe12b88cd3d77f 100644 (file)
@@ -1,6 +1,6 @@
 # ----------------------------------
 # - BBTKGEditor v 1.4 BBS BlackBox Script (Complex Box)
-# - VectorsTensors_Widget.bbs
+# - /home/davila/Creatis/C8/creatools_source/creaVtk/bbtk_creaVtk_PKG/bbs/boxes/VectorsTensors_Widget.bbs
 # ----------------------------------
 
 include std
index 20c25c7556f5180bab929503eb8ca742b64a59a4..b8e8f8eae97e0f31c2764c15316c3bc6c578d373 100644 (file)
@@ -13,22 +13,26 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ImageDataStructuredPoints,bbtk::AtomicBlackBox);
 //===== 
 void ImageDataStructuredPoints::Process()
 {
-               vtkImageData* imageX = bbGetInputX();
-               vtkImageData* imageY = bbGetInputY();
-               vtkImageData* imageZ = bbGetInputZ(); 
-               
                vtkImageDataStrucPoints idsp;
-
-               idsp.joinComponents(imageX, imageY, imageZ);    
+               idsp.joinComponents(bbGetInputX(),              bbGetInputY(),          bbGetInputZ(),
+                                                       bbGetInputData1(),      bbGetInputData2(),      bbGetInputData3(),
+                                                       bbGetInputData4(),      bbGetInputData5(),      bbGetInputData6()        );
                bbSetOutputImageEnsemble( idsp.getStructuredPoints() );
-      
 }
 //===== 
 // 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)
 //===== 
 void ImageDataStructuredPoints::bbUserSetDefaultValues()
 {
-  
+  bbSetInputX(NULL);
+  bbSetInputY(NULL);
+  bbSetInputZ(NULL);
+  bbSetInputData1(NULL);
+  bbSetInputData2(NULL);
+  bbSetInputData3(NULL);
+  bbSetInputData4(NULL);
+  bbSetInputData5(NULL);
+  bbSetInputData6(NULL);
 }
 //===== 
 // 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)
index c679b5211871584961ebc4711f34f46e1a926b79..4e30e62ce9571bfdfa3ad569a9679d1136933a6b 100644 (file)
@@ -24,6 +24,12 @@ class bbcreaVtk_EXPORT ImageDataStructuredPoints
   BBTK_DECLARE_INPUT(X, vtkImageData*);
   BBTK_DECLARE_INPUT(Y, vtkImageData*);
   BBTK_DECLARE_INPUT(Z, vtkImageData*);
+  BBTK_DECLARE_INPUT(Data1, vtkImageData*);
+  BBTK_DECLARE_INPUT(Data2, vtkImageData*);
+  BBTK_DECLARE_INPUT(Data3, vtkImageData*);
+  BBTK_DECLARE_INPUT(Data4, vtkImageData*);
+  BBTK_DECLARE_INPUT(Data5, vtkImageData*);
+  BBTK_DECLARE_INPUT(Data6, vtkImageData*);
   BBTK_DECLARE_OUTPUT(ImageEnsemble,  vtkImageData*);
   BBTK_PROCESS(Process);
   void Process();
@@ -33,14 +39,20 @@ class bbcreaVtk_EXPORT ImageDataStructuredPoints
 };
 
 BBTK_BEGIN_DESCRIBE_BLACK_BOX(ImageDataStructuredPoints,bbtk::AtomicBlackBox);
-BBTK_NAME("ImageDataStructuredPoints");
-BBTK_AUTHOR("Carlos Torres");
-BBTK_DESCRIPTION("No Description.");
-BBTK_CATEGORY("empty");
-BBTK_INPUT(ImageDataStructuredPoints,X,"Image X",vtkImageData*,"");
-BBTK_INPUT(ImageDataStructuredPoints,Y,"Image Y",vtkImageData*,"");
-BBTK_INPUT(ImageDataStructuredPoints,Z,"Image Z",vtkImageData*,"");
-BBTK_OUTPUT(ImageDataStructuredPoints,ImageEnsemble,"Image Ensemble",vtkImageData*,"");
+  BBTK_NAME("ImageDataStructuredPoints");
+  BBTK_AUTHOR("Carlos Torres");
+  BBTK_DESCRIPTION("No Description.");
+  BBTK_CATEGORY("empty");
+  BBTK_INPUT(ImageDataStructuredPoints,X,"Image X",vtkImageData*,"");
+  BBTK_INPUT(ImageDataStructuredPoints,Y,"Image Y",vtkImageData*,"");
+  BBTK_INPUT(ImageDataStructuredPoints,Z,"Image Z",vtkImageData*,"");
+  BBTK_INPUT(ImageDataStructuredPoints,Data1,"You need: No Data or  Data1 or Data1..3 or Data1..6",vtkImageData*,"");
+  BBTK_INPUT(ImageDataStructuredPoints,Data2,"You need: No Data or  Data1 or Data1..3 or Data1..6",vtkImageData*,"");
+  BBTK_INPUT(ImageDataStructuredPoints,Data3,"You need: No Data or  Data1 or Data1..3 or Data1..6",vtkImageData*,"");
+  BBTK_INPUT(ImageDataStructuredPoints,Data4,"You need: No Data or  Data1 or Data1..3 or Data1..6",vtkImageData*,"");
+  BBTK_INPUT(ImageDataStructuredPoints,Data5,"You need: No Data or  Data1 or Data1..3 or Data1..6",vtkImageData*,"");
+  BBTK_INPUT(ImageDataStructuredPoints,Data6,"You need: No Data or  Data1 or Data1..3 or Data1..6",vtkImageData*,"");
+  BBTK_OUTPUT(ImageDataStructuredPoints,ImageEnsemble,"Image Ensemble",vtkImageData*,"");
 BBTK_END_DESCRIBE_BLACK_BOX(ImageDataStructuredPoints);
 //===== 
 // 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)
index aa0b1f8eab9f779e2c3c3e505837731a9375ea11..14fbab9bfda5af9bd247658e82eeb9713deebc54 100644 (file)
@@ -29,38 +29,39 @@ void PlaneSource::Process()
        p0[1]   =       0;
        p0[2]   =       0;
 
+       double size=350;
 
        // xy
        if ((bbGetInputNormal()[0]==0) && (bbGetInputNormal()[1]==0) && (bbGetInputNormal()[2]==1)  ) 
        {
-               p1[0]   =       200;    
+               p1[0]   =       size;   
                p1[1]   =       0;
                p1[2]   =       0;    
                p2[0]   =       0;
-               p2[1]   =       200;
+               p2[1]   =       size;
                p2[2]   =       0;
        }
        
        // xz
        if ((bbGetInputNormal()[0]==0) && (bbGetInputNormal()[1]==1) && (bbGetInputNormal()[2]==0)  ) 
        {
-               p1[0]   =       200;    
+               p1[0]   =       size;   
                p1[1]   =       0;
                p1[2]   =       0;    
                p2[0]   =       0;
                p2[1]   =       0;
-               p2[2]   =       200;
+               p2[2]   =       size;
        }
 
        // yz
        if ((bbGetInputNormal()[0]==1) && (bbGetInputNormal()[1]==0) && (bbGetInputNormal()[2]==0)  ) 
        {
                p1[0]   =       0;      
-               p1[1]   =       200;
+               p1[1]   =       size;
                p1[2]   =       0;    
                p2[0]   =       0;
                p2[1]   =       0;
-               p2[2]   =       200;
+               p2[2]   =       size;
        }
 
 
index 783fe6469e1c6b55ea136a0616e7baf440cdc3cc..a0d8fddf59e91088256a945f3a81b916b27ebb34 100644 (file)
@@ -26,6 +26,7 @@ void VectorsVisu::Process()
 //    * TYPE is the C++ type of the input/output
 //      (the one provided in the attribute 'type' of the tag 'input')
 
+printf("EED VectorsVisu::Process Start \n");
      vectorsvisu.SetActive( bbGetInputActive() );
      vectorsvisu.SetDataObject( bbGetInputIn() );
      vectorsvisu.SetScaleFactor( bbGetInputScaleFactor() );
@@ -33,8 +34,10 @@ void VectorsVisu::Process()
      vectorsvisu.SetRenderer( bbGetInputRenderer() );
      vectorsvisu.SetTypeForm( bbGetInputTypeForm() );
      vectorsvisu.SetOrientation( bbGetInputOrientation() );
+     vectorsvisu.SetExternalLut( bbGetInputExternalLut() );
      vectorsvisu.Process();
      bbSetOutputOut( vectorsvisu.GetProp3D() );
+printf("EED VectorsVisu::Process End \n");
   
 }
 //===== 
@@ -53,6 +56,7 @@ void VectorsVisu::bbUserSetDefaultValues()
    bbSetInputOpacity(1);
    bbSetInputTypeForm(0);  
    bbSetInputOrientation(0);  
+   bbSetInputExternalLut(NULL);  
 }
 //===== 
 // 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)
index 9a646711215fbcdac2f05f35d7a10a03508044e0..14b1e569a64eec7c981742380f118055ff3bb28b 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "vtkRenderer.h"
 #include "vtkDataObject.h"
+#include "vtkScalarsToColors.h"
 
 #include "vtkVectorsVisu.h"
 
@@ -30,6 +31,7 @@ class bbcreaVtk_EXPORT VectorsVisu
   BBTK_DECLARE_INPUT(Opacity,double);
   BBTK_DECLARE_INPUT(TypeForm,int);
   BBTK_DECLARE_INPUT(Orientation,int);
+  BBTK_DECLARE_INPUT(ExternalLut,vtkScalarsToColors*);
   BBTK_DECLARE_OUTPUT(Out,vtkProp3D*);
   BBTK_PROCESS(Process);
   void Process();
@@ -43,18 +45,19 @@ private:
 };
 
 BBTK_BEGIN_DESCRIBE_BLACK_BOX(VectorsVisu,bbtk::AtomicBlackBox);
-BBTK_NAME("VectorsVisu");
-BBTK_AUTHOR("ED at InfoDev Creatis");
-BBTK_DESCRIPTION("No Description.");
-BBTK_CATEGORY("empty");
- BBTK_INPUT(VectorsVisu,Active,"Active (false default)",bool,"");
- BBTK_INPUT(VectorsVisu,In,"(needed) vtkDataObject. (Example vtkDataObject<-vtkDataSet<-vtkPointSet<-vtkPolyData (parrent class) )",vtkDataObject*,"");
- BBTK_INPUT(VectorsVisu,ScaleFactor,"Scale factor (500 default)",double,"");
- BBTK_INPUT(VectorsVisu,Opacity,"Opacity (1 default)",double,"");
- BBTK_INPUT(VectorsVisu,Renderer,"vtkRenderer",vtkRenderer*,"");
- BBTK_INPUT(VectorsVisu,TypeForm,"0 Line, 1 Arrow   (default 0)",int,"");
- BBTK_INPUT(VectorsVisu,Orientation,"(default 5) -1=xy, 0=yz, 1=yz, 2=xz, 5=3D, 6=3D",int,"");
- BBTK_OUTPUT(VectorsVisu,Out,"vtkProp3D of an vtkActor",vtkProp3D*,"");
+  BBTK_NAME("VectorsVisu");
+  BBTK_AUTHOR("ED at InfoDev Creatis");
+  BBTK_DESCRIPTION("No Description.");
+  BBTK_CATEGORY("empty");
+  BBTK_INPUT(VectorsVisu,Active,"Active (false default)",bool,"");
+  BBTK_INPUT(VectorsVisu,In,"(needed) vtkDataObject. (Example vtkDataObject<-vtkDataSet<-vtkPointSet<-vtkPolyData (parrent class) )",vtkDataObject*,"");
+  BBTK_INPUT(VectorsVisu,ScaleFactor,"Scale factor (500 default)",double,"");
+  BBTK_INPUT(VectorsVisu,Opacity,"Opacity (1 default)",double,"");
+  BBTK_INPUT(VectorsVisu,Renderer,"vtkRenderer",vtkRenderer*,"");
+  BBTK_INPUT(VectorsVisu,TypeForm,"0 Line, 1 Arrow   (default 0)",int,"");
+  BBTK_INPUT(VectorsVisu,Orientation,"(default 5) -1=xy, 0=yz, 1=yz, 2=xz, 5=3D, 6=3D",int,"");
+  BBTK_INPUT(VectorsVisu,ExternalLut,"Lookuptable",vtkScalarsToColors*,"");
+  BBTK_OUTPUT(VectorsVisu,Out,"vtkProp3D of an vtkActor",vtkProp3D*,"");
 BBTK_END_DESCRIBE_BLACK_BOX(VectorsVisu);
 //===== 
 // 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)
index b06c5f20c37987fb8f94e08b09ec4e2a4d0ab071..426d760118b1c0dce4f931d764d51bd9ff3c2292 100644 (file)
@@ -36,8 +36,13 @@ vtkImageDataStrucPoints::vtkImageDataStrucPoints()
 vtkImageDataStrucPoints::~vtkImageDataStrucPoints()
 {
 }
-void vtkImageDataStrucPoints::joinComponents(vtkImageData* imageX, vtkImageData* imageY, vtkImageData* imageZ)
+
+void vtkImageDataStrucPoints::joinComponents(vtkImageData* imageX,  vtkImageData* imageY,   vtkImageData* imageZ, 
+                                                                                        vtkImageData* Data1,   vtkImageData* Data2,    vtkImageData* Data3 ,
+                                                                                        vtkImageData* Data4,   vtkImageData* Data5,    vtkImageData* Data6  )
 {
+printf("EED vtkImageDataStrucPoints::joinComponents Start \n");
+
        int ext[6];
        imageY->Modified();
 //EED 2017-01-01 Migration VTK7
@@ -53,35 +58,60 @@ void vtkImageDataStrucPoints::joinComponents(vtkImageData* imageX, vtkImageData*
        dim[1]=ext[3]-ext[2]+1;
        dim[2]=ext[5]-ext[4]+1; 
        imageY->GetSpacing(spc);
-
-
-   double *ptrX = (double *)imageX->GetScalarPointer();
-   double *ptrY = (double *)imageY->GetScalarPointer();
-   double *ptrZ = (double *)imageZ->GetScalarPointer();
-
-        long int sizeimage = dim[0]*dim[1]*dim[2];
-
-        vtkDoubleArray *array =  vtkDoubleArray::New();
-        array->SetNumberOfTuples(sizeimage);
-        array->SetNumberOfComponents(3);
-        array->Allocate(sizeimage*3, 100 ); // ???
-        array->SetName("velocity");
-
-        double vx;
-        double vy;
-        double vz;
-
-  int i;
-
+       double *ptrX=NULL,  *ptrY=NULL,  *ptrZ=NULL;
+       double *ptrD1=NULL, *ptrD2=NULL, *ptrD3=NULL, *ptrD4=NULL, *ptrD5=NULL, *ptrD6=NULL;
+       
+       if (imageX!=NULL)  ptrX  = (double *)imageX->GetScalarPointer();
+       if (imageY!=NULL)  ptrY  = (double *)imageY->GetScalarPointer();
+       if (imageZ!=NULL)  ptrZ  = (double *)imageZ->GetScalarPointer();
+       if (Data1 !=NULL)  ptrD1 = (double *)Data1->GetScalarPointer();
+       if (Data2 !=NULL)  ptrD2 = (double *)Data2->GetScalarPointer();
+       if (Data3 !=NULL)  ptrD3 = (double *)Data3->GetScalarPointer();
+       if (Data4 !=NULL)  ptrD4 = (double *)Data4->GetScalarPointer();
+       if (Data5 !=NULL)  ptrD5 = (double *)Data5->GetScalarPointer();
+       if (Data6 !=NULL)  ptrD6 = (double *)Data6->GetScalarPointer();
+
+       long int sizeimage = dim[0]*dim[1]*dim[2];
+       int components=3;
+//     if ((Data1!=NULL) && (Data2==NULL) && (Data3==NULL) && (Data4==NULL) && (Data5==NULL) && (Data6==NULL) )  { components=4; }
+//     if ((Data1!=NULL) && (Data2!=NULL) && (Data3!=NULL) && (Data4==NULL) && (Data5==NULL) && (Data6==NULL) )  { components=6; }
+//     if ((Data1!=NULL) && (Data2!=NULL) && (Data3!=NULL) && (Data4!=NULL) && (Data5!=NULL) && (Data6!=NULL) )  { components=9; }
+       vtkDoubleArray *array =  vtkDoubleArray::New();
+       array->SetNumberOfTuples(sizeimage);
+       array->SetNumberOfComponents(components);
+       array->Allocate(sizeimage*components, 100 ); // ???
+       array->SetName("velocity");
+
+       vtkDoubleArray *array2 =  vtkDoubleArray::New();
+       array2->SetNumberOfTuples(sizeimage);
+       array2->SetNumberOfComponents(1);
+       array2->Allocate(sizeimage*1, 100 ); // ???
+       array2->SetName("angle");
+
+printf("EED Warnning .... vtkImageDataStrucPoints::joinComponents  Limpiar este codigo ........ \n");
+printf("EED Warnning .... vtkImageDataStrucPoints::joinComponents  Limpiar este codigo ........ \n");
+printf("EED Warnning .... vtkImageDataStrucPoints::joinComponents  Limpiar este codigo ........ \n");
+printf("EED Warnning .... vtkImageDataStrucPoints::joinComponents  Limpiar este codigo ........ \n");
+printf("EED Warnning .... vtkImageDataStrucPoints::joinComponents  Limpiar este codigo ........ \n");
+printf("EED Warnning .... vtkImageDataStrucPoints::joinComponents  Limpiar este codigo ........ \n");
+
+       double vx,vy,vz,d1=0,d2=0,d3=0,d4=0,d5=0,d6=0;
+       int i;
        for( i = 0 ; i < sizeimage ; i++ )
        {
-               vx = *ptrX;
-               vy = *ptrY;
-               vz = *ptrZ;
-               ptrX++;
-               ptrY++;
-               ptrZ++;
-       array->SetTuple3(i,vx, vy , vz );
+               if (ptrX !=NULL)        { vx = *ptrX;   ptrX++; }       else { vx=0; }
+               if (ptrY !=NULL)        { vy = *ptrY;   ptrY++; }       else { vy=0; }
+               if (ptrZ !=NULL)        { vz = *ptrZ;   ptrZ++; }       else { vz=0; }
+               if (ptrD1!=NULL)        { d1 = *ptrD1;  ptrD1++;} 
+               if (ptrD2!=NULL)        { d2 = *ptrD2;  ptrD2++;} 
+               if (ptrD3!=NULL)        { d3 = *ptrD3;  ptrD3++;} 
+               if (ptrD4!=NULL)        { d4 = *ptrD4;  ptrD4++;} 
+
+       if (components==3)      { array->SetTuple3(i,vx,vy,vz);                         }
+       if (components==3)      { array2->SetTuple1(i,d1);                      }
+//     if (components==4)      { array->SetTuple4(i,vx,vy,vz,d1);                      }
+//     if (components==6)      { array->SetTuple6(i,vx,vy,vz,d1,d2,d3);        }
+//     if (components==9)      { array->SetTuple9(i,vx,vy,vz,d1,d2,d3,d4,d5,d6); }
        } // for i
 
        _structuredPoints = vtkStructuredPoints::New();
@@ -99,6 +129,7 @@ void vtkImageDataStrucPoints::joinComponents(vtkImageData* imageX, vtkImageData*
 #endif
 
        _structuredPoints->GetPointData()->SetVectors(array);
+       _structuredPoints->GetPointData()->AddArray(array2);
        _structuredPoints->GetPointData()->SetNumberOfTuples(sizeimage);
        _structuredPoints->Modified();
 //EED 2017-01-01 Migration VTK7
@@ -122,6 +153,7 @@ void vtkImageDataStrucPoints::joinComponents(vtkImageData* imageX, vtkImageData*
 */
 
 
+printf("EED vtkImageDataStrucPoints::joinComponents End\n");
 
 }
 
index d5dd52c97a03056a3517cdcae679dc938acbf759..e7642e990a2a9304583ca29e897b92371ac2409b 100644 (file)
@@ -39,7 +39,9 @@ class vtkImageDataStrucPoints
 public :
   vtkImageDataStrucPoints();
   ~vtkImageDataStrucPoints();
-       void joinComponents(vtkImageData* imageX, vtkImageData* imageY, vtkImageData* imageZ);
+       void joinComponents(vtkImageData* imageX,       vtkImageData* imageY,   vtkImageData* imageZ, 
+                                               vtkImageData* Data1,    vtkImageData* Data2,    vtkImageData* Data3,    
+                                               vtkImageData* Data4 ,   vtkImageData* Data5 ,   vtkImageData* Data6     );
        vtkStructuredPoints* getStructuredPoints();
 
        vtkStructuredPoints* _structuredPoints;
index 8da1d1a0cf5854268dc2b5e91ceb2d84de7b2200..3c1addcac10148cd08e6da020b6edbf1186a8922 100644 (file)
@@ -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<T>(*input);  
-                       if (j==1) diry= static_cast<T>(*input);  
-                       if (j==2) dirz= static_cast<T>(*input);  
-                       tmp = static_cast<T>(*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<T>(input[0]);
+                       diry    = static_cast<T>(input[1]);
+                       dirz    = static_cast<T>(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<T>(*input);  
+                               if (j==1) diry= static_cast<T>(*input);  
+                               if (j==2) dirz= static_cast<T>(*input);  
+                               tmp = static_cast<T>(*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<T>(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);
+}
 
index f229542a7283f9341c04c438f496cc1063ef8d8e..7d08c22f024b4dd5eb3f0b6a4e4ddfb091ba50e8 100644 (file)
@@ -97,6 +97,7 @@ public :
    void                                        SetColorLaw(int);
    void                                        SetColor(std::vector<double>);
    void                                SetOrientation(int orientation);
+   void                                        SetExternalLut(vtkScalarsToColors* lut);
 
    bool                                GetActive();
    vtkDataObject*              GetDataObject();
@@ -136,6 +137,8 @@ protected:
        vtkSmartPointer<vtkPolyDataMapper>                      _pdm;
        vtkSmartPointer<vtkActor>                       _actor;
        vtkLookupTableDirectionVector                           *_LutEED;
+       vtkScalarsToColors                                                      *_externalLut;  // lookuptable
+
        int                                                                             _colorlaw;
        double                                                                          _colorR,_colorG,_colorB;
 };
index 2b4128d9cb3491d86d29b000fd1adc1e838327b6..88eb4d2fb72c4f2afbed117ce00f06b0cb363705 100644 (file)
@@ -31,7 +31,9 @@
 
 //Borrame
 #include "vtkPointData.h"
-
+#include "vtkArrayData.h"
+#include "vtkDataObject.h"
+#include <vtkPointData.h>
 
 //------------------------------------------------------------------------------
 vtkVectorsVisu::vtkVectorsVisu()
@@ -101,7 +103,15 @@ void vtkVectorsVisu::Process()
 #endif
                        }
          _vtkglyph->SetScaleModeToScaleByVector();
-         _vtkglyph->SetColorModeToColorByVector();
+
+
+               if (_externalLut==NULL)
+               {
+               _vtkglyph->SetColorModeToColorByVector();   
+               } else {
+                       _vtkglyph->SetColorModeToColorByScalar();   
+               } // if _externalLut
+
          _vtkglyph->SetScaleFactor( GetScaleFactor() );
                _vtkglyph->Update();
 
@@ -122,20 +132,66 @@ vtkPointData      *data   = _vtkglyph->GetOutput()->GetPointData();
 //     data->GetArray(i)->Print(std::cout);
 //}
 
-       _pdm->ScalarVisibilityOn();
-       _pdm->SetColorModeToMapScalars();
-       //_pdm->SetColorModeToDefault();
-       // _pdm->SetColorModeToDirectScalars();  // NOT compile
-       _pdm->SetScalarModeToUsePointFieldData();
-       _pdm->ImmediateModeRenderingOn();
-
-       _LutEED->SetVectorModeToComponent();
-       //_LutEED->SetVectorModeToRGBColors();
-       //_LutEED->SetVectorModeToMagnitud();
 
-//         _pdm->SetScalarModeToUsePointFieldData();
+               if (_externalLut==NULL)
+               {
+printf("EED vtkVectorsVisu::Process   LutEED  \n");
+                       _pdm->ScalarVisibilityOn();
+                       _pdm->SetColorModeToMapScalars();
+               //      _pdm->SetColorModeToDefault();
+                       // _pdm->SetColorModeToDirectScalars();  // NOT compile
+                       _pdm->SetScalarModeToUsePointFieldData();
+               //      _pdm->ImmediateModeRenderingOn();   // obsolete
+                       _LutEED->SetVectorModeToComponent();
+                       //_LutEED->SetVectorModeToRGBColors();
+                       //_LutEED->SetVectorModeToMagnitud();
+               //         _pdm->SetScalarModeToUsePointFieldData();
          _pdm->SetLookupTable( _LutEED );
          _pdm->SelectColorArray( "GlyphVector" );
+               } else {
+printf("EED vtkVectorsVisu::Process   ExternalLut  \n");
+                       data->SetActiveScalars("angle");
+
+
+
+
+                       _pdm->ScalarVisibilityOn(); 
+                       double scalarRange[2];
+                       scalarRange[0]=0;
+                       scalarRange[1]=40;
+printf("EED warnnning  .....  vtkVectorsVisu::Process   clean scalar Range ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   clean scalar Range ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   clean scalar Range ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   clean scalar Range ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   clean scalar Range ......\n");
+                   _pdm->SetScalarRange(scalarRange);
+                       _pdm->SetColorModeToMapScalars();
+//                     _pdm->SetColorModeToDefault();
+//                      _pdm->SetColorModeToDirectScalars();  // NOT compile
+//                     _pdm->SetScalarModeToUsePointFieldData();
+                       _pdm->ImmediateModeRenderingOn();   // obsolete
+                _pdm->SetLookupTable( _externalLut );
+                _pdm->SelectColorArray( "angle" );
+               }  // if _externalLut
+
+
+
+printf("EED warnnning  .....  vtkVectorsVisu::Process   Clean angle ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   Clean angle ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   Clean angle ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   Clean angle ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   Clean angle ......\n");
+
+_vtkglyph->Update();
+vtkPointData *pointdata=_vtkglyph->GetOutput()->GetPointData();
+int i,size=pointdata->GetNumberOfArrays();
+for (i=0;i<size;i++)
+{
+       vtkDataArray *array=pointdata->GetArray(i);
+       printf(" vtkVectorsVisu::Process array name %d:<%s>  size:%d\n", i, array->GetName(), array->GetSize() );
+}
+
+
 
 //       vSliceMapperVec->SetLookupTable( vGreenToRedLut );
 //       vSliceMapperVec->SetColorModeToMapScalars();
index 719cdc1dab38cde2307fe0bd78937313158d6792..ff5547ac62b5dea49d79ed73290e98a1ef8b6320 100644 (file)
@@ -55,7 +55,6 @@ public :
 
   virtual void Process(); 
 
-
 //--Method template----------------------------
 //  void FunctionName(int& parameterA);