SET(${BBTK_PACKAGE_NAME}_USE_PACKAGES
# std
# wx
- # itk
+ itk
# vtk
# ...
)
+++ /dev/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)
-//=====
-#include "bbcreaVtkFromVtk4DToItk4D.h"
-#include "bbcreaVtkPackage.h"
-
-#include "vtkImageData.h"
-#include "itkImage.h"
-
-namespace bbcreaVtk
-{
-
-BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,FromVtk4DToItk4D)
-BBTK_BLACK_BOX_IMPLEMENTATION(FromVtk4DToItk4D,bbtk::AtomicBlackBox);
-//=====
-// 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 FromVtk4DToItk4D::Process()
-{
-printf("EED FromVtk4DToItk4D::Process 1\n ");
-//EED creaVtkFromVtk4DToItk4D<vtkImageData*> prs;
- creaVtkFromVtk4DToItk4D prs;
-printf("EED FromVtk4DToItk4D::Process 2\n ");
- prs.SetImage4Dvtk(bbGetInputIn());
-printf("EED FromVtk4DToItk4D::Process 3\n ");
- //CT Bug. Cant declare output image in .h
- prs.Process();
-//EED bbSetOutputOut( );
-}
-//=====
-// 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 FromVtk4DToItk4D::bbUserSetDefaultValues()
-{
-}
-//=====
-// 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 FromVtk4DToItk4D::bbUserInitializeProcessing()
-{
-
-// THE INITIALIZATION METHOD BODY :
-// Here does nothing
-// but this is where you should allocate the internal/output pointers
-// if any
-
-
-}
-//=====
-// 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 FromVtk4DToItk4D::bbUserFinalizeProcessing()
-{
-
-// THE FINALIZATION METHOD BODY :
-// Here does nothing
-// but this is where you should desallocate the internal/output pointers
-// if any
-
-}
-}
-// EO namespace bbcreaVtk
-
-
+++ /dev/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)
-//=====
-#ifndef __bbcreaVtkFromVtk4DToItk4D_h_INCLUDED__
-#define __bbcreaVtkFromVtk4DToItk4D_h_INCLUDED__
-#include "bbcreaVtk_EXPORT.h"
-#include "bbtkAtomicBlackBox.h"
-#include "iostream"
-
-#include "vtkImageData.h"
-#include <vector>
-//#include "itkImage.h"
-#include "creaVtkFromVtk4DToItk4D.h"
-
-namespace bbcreaVtk
-{
-
-class bbcreaVtk_EXPORT FromVtk4DToItk4D
- :
- public bbtk::AtomicBlackBox
-{
- BBTK_BLACK_BOX_INTERFACE(FromVtk4DToItk4D,bbtk::AtomicBlackBox);
- BBTK_DECLARE_INPUT(In,std::vector<vtkImageData*> );
- BBTK_DECLARE_OUTPUT(Out, Image4DType::Pointer );
- BBTK_PROCESS(Process);
- void Process();
-
-};
-
-BBTK_BEGIN_DESCRIBE_BLACK_BOX(FromVtk4DToItk4D,bbtk::AtomicBlackBox);
- BBTK_NAME("FromVtk4DToItk4D");
- BBTK_AUTHOR("Carlos Torres");
- BBTK_DESCRIPTION("carlos.torres@creatis.insa-lyon.fr -");
- BBTK_CATEGORY("empty");
-
- BBTK_INPUT(FromVtk4DToItk4D,In,"Vtk image 4D",std::vector<vtkImageData*>,"");
-
- BBTK_OUTPUT(FromVtk4DToItk4D,Out,"Itk image 4D", Image4DType::Pointer ,"");
-
-BBTK_END_DESCRIBE_BLACK_BOX(FromVtk4DToItk4D);
-
-}
-// EO namespace bbcreaVtk
-
-#endif // __bbcreaVtkFromVtk4DToItk4D_h_INCLUDED__
-
+++ /dev/null
-/*
-# ---------------------------------------------------------------------
-#
-# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
-# pour la Sante)
-# 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.
-# ------------------------------------------------------------------------
-*/
-
-#include "creaVtkFromVtk4DToItk4D.h"
-//#include "itkImage.h"
-
-//#include <itkImageRegionConstIteratorWithIndex.h>
-
-
-//#include "itkImageRegionConstIterator.h"
-#include "itkImageRegionIterator.h"
-// #include "itkImageFileReader.h"
-#include <vector>
-
-//template <class TImage>
-//creaVtkFromVtk4DToItk4D<TImage>::creaVtkFromVtk4DToItk4D()
-creaVtkFromVtk4DToItk4D::creaVtkFromVtk4DToItk4D()
-{
-}
-
-//EED template <class TImage>
-//EED creaVtkFromVtk4DToItk4D<TImage>::~creaVtkFromVtk4DToItk4D()
-creaVtkFromVtk4DToItk4D::~creaVtkFromVtk4DToItk4D()
-{
-}
-
-//EED template <class TImage>
-//EED void creaVtkFromVtk4DToItk4D<TImage>::SetImage4D(TImage *image)
-//EED {
-//EED _image4D = image;
-//EED }
-
-
-Image4DType::Pointer creaVtkFromVtk4DToItk4D::GetResult()
-{
- return _image4D;
-}
-
-
-//EED template <class TImage>
-//EED void creaVtkFromVtk4DToItk4D<TImage>::SetImage4Dvtk( std::vector<vtkImageData*> image)
-void creaVtkFromVtk4DToItk4D::SetImage4Dvtk( std::vector<vtkImageData*> image)
-{
- _image4Dvtk = image;
-}
-
-//EED template <class TImage>
-//EED std::vector<itk::Image< unsigned char > > creaVtkFromVtk4DToItk4D<TImage>::Process()
-void creaVtkFromVtk4DToItk4D::Process()
-{
- /*
- int dir;
- double pv[65];
- int count = 0;
- typedef itk::ImageLinearConstIteratorWithIndex< TImage > ConstIteratorType;
- const unsigned int Dimension = 4;
- typedef unsigned char PixelType;
- typedef itk::Image< PixelType, Dimension > ImageType;
-
- ConstIteratorType inputIt( _image4D, inputRegion );
- inputIt.SetDirection(3);
- inputIt.GoToBegin();
-
- ImageType::RegionType outputRegion;
- ImageType::RegionType::IndexType outputStart;
- outputStart[0] = 0;
- outputStart[1] = 0;
- outputRegion.SetSize( size );
- outputRegion.SetIndex( outputStart );
-
- while( !inputIt.IsAtEnd() )
- {
- inputIt.GoToBeginOfLine();
- count = 0;
- while( !inputIt.IsAtEndOfLine() )
- {
- pv[count] = inputIt.Get();
- ++inputIt;
- ++count;
- }
- }
-*/
-
-
-/* EED2
- const unsigned int Dimension = 4;
- typedef unsigned char PixelType;
- typedef itk::Image< PixelType, Dimension > ImageType;
- typedef itk::ImageRegionConstIterator< ImageType > ConstIteratorType;
- typedef itk::ImageRegionIterator< ImageType> IteratorType;
-
- //typedef itk::ImageFileReader< ImageType > ReaderType;
- //typedef itk::ImageFileWriter< ImageType > WriterType;
-
- ImageType::RegionType inputRegion;
- ImageType::RegionType::IndexType inputStart;
- ImageType::RegionType::SizeType size;
- inputStart[0] = ::atoi( "20" );
- inputStart[1] = ::atoi( "70" );
- size[0] = ::atoi( "210" );
- size[1] = ::atoi( "140" );
- inputRegion.SetSize( size );
- inputRegion.SetIndex( inputStart );
-
- ImageType::RegionType outputRegion;
- ImageType::RegionType::IndexType outputStart;
- outputStart[0] = 0;
- outputStart[1] = 0;
- outputStart[2] = 0;
- outputStart[3] = 0;
- outputRegion.SetSize( size );
- outputRegion.SetIndex( outputStart );
-*/
-
- /*
- ReaderType::Pointer reader = ReaderType::New();
- reader->SetFileName( "foo.vtk" );
- try
- {
- reader->Update();
- }
- catch ( itk::ExceptionObject &err)
- {
- std::cerr << "ExceptionObject caught !" << std::endl;
- std::cerr << err << std::endl;
- return -1;
- }
-
- if ( ! reader->GetOutput()->GetRequestedRegion().IsInside( inputRegion ) )
- {
- std::cerr << "Error" << std::endl;
- std::cerr << "The region " << inputRegion << "is not contained within the input image region "
- << reader->GetOutput()->GetRequestedRegion() << std::endl;
- return -1;
- }*/
-
-
-
-/* EED
- std::vector<ImageType::Pointer> outputImage4D;
- for(int k = 0 ; k < _image4Dvtk.size() ; k++)
- {
- ImageType::Pointer outputImage = ImageType::New();
- outputImage->SetRegions( outputRegion );
- const ImageType::SpacingType& spacing = _image4Dvtk[k]->GetSpacing();
- const ImageType::PointType& inputOrigin = _image4Dvtk[k]->GetOrigin();
- double outputOrigin[ Dimension ];
- for(unsigned int i=0; i< Dimension; i++)
- {
- outputOrigin[i] = inputOrigin[i] + spacing[i] * inputStart[i];
- } // for
- outputImage->SetSpacing( spacing );
- outputImage->SetOrigin( outputOrigin );
- outputImage->Allocate();
-
- ConstIteratorType inputIt( _image4Dvtk[k], inputRegion );
- IteratorType outputIt( outputImage, outputRegion );
- inputIt.GoToBegin();
- outputIt.GoToBegin();
-
- while( !outputIt.IsAtEnd() )
- {
- outputIt.Set( inputIt.Get() );
- ++inputIt;
- ++outputIt;
- } // while
-//EED outputImage4D[k]=outputImage;
- } // for k
-//EED return outputImage4D;
-
-*/
-
-
-
-// http://www.itk.org/pipermail/insight-users/2003-December/005796.html
-// http://www.itk.org/Wiki/ITK/Examples/ImageProcessing/InvertIntensityImageFilter
-
-
- int ext[6];
- int dimX, dimY, dimZ;
- long int sizeimage;
- unsigned int k, i;
-
- _image4Dvtk[0]->GetWholeExtent(ext);
- dimX = ext[1]-ext[0]+1;
- dimY = ext[3]-ext[2]+1;
- dimZ = ext[5]-ext[4]+1;
- sizeimage = dimX*dimY*dimZ;
-
-
-
- typedef itk::ImageRegionIterator< Image4DType > Iterator4D;
-// typedef itk::ImageRegionConstIterator< Image4DType > Iterator4D;
-// typedef itk::ImageRegionConstIteratorWithIndex< Image4DType > Iterator4D;
-
-
- _image4D = Image4DType::New();
-
- Image4DType::RegionType region;
- Image4DType::IndexType start;
- start[0] = 0;
- start[1] = 0;
- start[2] = 0;
- start[3] = 0;
-
- Image4DType::SizeType size;
- unsigned int NumRows = dimX;
- unsigned int NumCols = dimY;
- unsigned int NumSlices = dimZ;
- unsigned int NumVolumes = _image4Dvtk.size();
- size[0] = NumRows;
- size[1] = NumCols;
- size[2] = NumSlices;
- size[3] = NumVolumes;
-
- region.SetSize(size);
- region.SetIndex(start);
-
- _image4D->SetRegions(region);
- _image4D->Allocate();
-
-
-// Iterator4D it4( image4D, image4D->GetBufferedRegion() );
- Iterator4D it4( _image4D, _image4D->GetLargestPossibleRegion() );
- it4.GoToBegin();
- for(k = 0 ; k < _image4Dvtk.size() ; k++)
- {
- unsigned short * ptrVtkImage;
- ptrVtkImage = (unsigned short *)_image4Dvtk[k]->GetScalarPointer();
- for (i=0; i< sizeimage;i++)
- {
- it4.Set( *ptrVtkImage );
-// *it4 = *ptrVtkImage;
-// unsigned short q= it4.Get();
- ++it4;
- ptrVtkImage++;
- }
- }
-}
-//---------------------------------------------
-//Method template
-//---------------------------------------------
-/*
-void creaVtkFromVtk4DToItk4D::FunctionName(int& parameterA)
-{
- parameterA = 2 * parameterA;
- return;
-}
-*/
+++ /dev/null
-/*
-# ---------------------------------------------------------------------
-#
-# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
-# pour la Sante)
-# 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.
-# ------------------------------------------------------------------------
-*/
-
-#ifndef _CREAVTKFROMVTK4DTOITK4D_H_
-#define _CREAVTKFROMVTK4DTOITK4D_H_
-#include "vtkImageData.h"
-#include <vector>
-
-#include "itkImage.h"
-
-//EED template <class TImage>
-
-typedef unsigned short PixelType;
-typedef itk::Image< PixelType, 4 > Image4DType;
-
-class creaVtkFromVtk4DToItk4D
-{
-public :
- creaVtkFromVtk4DToItk4D();
- ~creaVtkFromVtk4DToItk4D();
-
-//EED void SetImage4D(TImage *image);
-
- void SetImage4Dvtk(std::vector<vtkImageData*> image);
-//EED std::vector<itk::Image<unsigned char> > Process();
- void Process();
- Image4DType::Pointer GetResult();
-
-protected:
-
-private:
-
-//EED TImage* _image4D;
-//EED2 itk::Image<unsigned char> _image4D;
-
- Image4DType::Pointer _image4D;
- std::vector<vtkImageData*> _image4Dvtk;
-};
-
-
-//-end of _CREAVTKFROMVTK4DTOITK4D_H_------------------------------------------------------
-#endif
//if(a>=90&&a<=360) { std::cout << " numTuple: " << numTuple << " a: " << a << " b: " << b << std::endl; }
if(p1==0&&p2==0&&p3==0){
unsigned char *zPtr1 = (unsigned char *) alphaImage->GetScalarPointer( i , j , k );
- *zPtr1 = (unsigned char)255;
+ *zPtr1 = (unsigned char)0;
unsigned char *zPtr2 = (unsigned char *) betaImage->GetScalarPointer( i , j , k );
- *zPtr2 = (unsigned char)255;
+ *zPtr2 = (unsigned char)0;
}else{
unsigned char *zPtr1 = (unsigned char *) alphaImage->GetScalarPointer( i , j , k );
*zPtr1 = (unsigned char)a;
int nbImagesPerRow = NbImagesPerRow;
int nbImagesInMosaic = NbImagesInMosaic;
- if (nbImagesPerRow == 0 || nbImagesInMosaic == 0) {
- std::cout << "Not possible" << std::endl;
+ if (nbImagesPerRow == 0 || nbImagesInMosaic == 0)
+ {
+ std::cout << "VtkUnMosaicVectorVtkImageData ERROR: The number of Images by mosaic is not set " << std::endl;
}
std::vector<vtkImageData*> imageIn = bbGetInputIn;
int dimYImageElem = outputdims[1];
int lgrImage = dimXImageElem*dimYImageElem;
int debImage;
- for (int i=0; i<numberOfImagesInMosaic; i++)
+ int i,j;
+// for (i=0; i<numberOfImagesInMosaic; i++)
+ for (i=numberOfImagesInMosaic-1; i>=0; i--)
{
debImage=(i/nbImagesPerRow) * lgrImage*nbImagesPerRow + (i%nbImagesPerRow)*dimXImageElem;
- for(int j=0; j<dimYImageElem; j++)
+ for(j=0; j<dimYImageElem; j++)
+// for(int j=dimYImageElem-1; j>=0; j--)
{
memcpy(dest, input+debImage, dimXImageElem*sizeof(unsigned short));
debImage += dimXImageElem*nbImagesPerRow;
vtkTensorsVisu::vtkTensorsVisu() : vtkVectorsTensorsVisuBase()
{
ss = vtkSphereSource::New();
+ superquadratic = vtkSuperquadricSource::New();
cs = vtkCubeSource::New();
tg = vtkTensorGlyph::New();
pdn = vtkPolyDataNormals::New();
if (_active==true){
- std::string source="sphere";
+// std::string source="sphere";
+ std::string source="superquadratic";
if(source=="sphere")
{
tg->SetSource(ss->GetOutput());
+ } else if(source=="cube") {
+ tg->SetSource(cs->GetOutput());
+ }else if(source=="superquadratic") {
+ superquadratic->SetThetaResolution(20);
+ superquadratic->SetPhiResolution(20);
+ tg->SetSource(superquadratic->GetOutput());
+ } else {
}
- else if(source=="cube")
- {
- tg->SetSource(ss->GetOutput());
- }
- else{}
tg->SetInput( GetDataObject() );
_actor->GetProperty()->SetOpacity( GetOpacity() );
tg->ColorGlyphsOn();
- tg->ExtractEigenvaluesOn();
+// tg->ExtractEigenvaluesOn();
tg->SetColorModeToEigenvalues();
_pdm->SetLookupTable( _LutEED );
//int tcg = tg->GetColorGlyphs();
// tg->SetColorGlyphs(10);
- //tg->SetColorModeToScalars();
+// tg->SetColorModeToScalars();
//tg->ThreeGlyphsOn();
+ tg->Print( std::cout );
+ printf("EED vtkTensorsVisu::Process ------------------------------------------\n");
+ pd->Print( std::cout );
+
+
tg->Update();
vtkPolyData *pd = pdn->GetOutput();
vtkPointData *pointdata = pd->GetPointData();
+
+
+ printf("EED vtkTensorsVisu::Process XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx\n");
+ pointdata->Print( std::cout );
+
+ int aa = pd->GetNumberOfPieces ();
+ int bb = pd->GetNumberOfVerts ();
+ int cc = pd->GetNumberOfLines ();
+ int dd = pd->GetNumberOfPolys ();
+ int ee = pd->GetNumberOfStrips ();
+ int ff = pd->GetNumberOfCells();
+
+ printf("EED vtkTensorsVisu::Process %d %d %d %d %d %d \n", aa,bb,cc,dd,ee,ff);
+
+ vtkPolyData *ttt = (vtkPolyData *)GetDataObject();
+ int numPnts = ttt->GetNumberOfPoints();
+ printf("EED vtkTensorsVisu::Process numPnts %d \n", numPnts );
+
+
+ vtkIdType numSourcePts, numSourceCells;
+ vtkPoints *sourcePts;
+ sourcePts = tg->GetSource()->GetPoints();
+ numSourcePts = sourcePts->GetNumberOfPoints();
+ numSourceCells = tg->GetSource()->GetNumberOfCells();
+ printf("EED vtkTensorsVisu::Process numSourcePts %d numSourceCells %d\n", numSourcePts, numSourceCells);
+
+
+
int i,sizeDa = pointdata->GetNumberOfArrays();
printf("EED vtkTensorsVisu::Process sizeDa %d \n", sizeDa );
for (i=0;i<sizeDa;i++)
{
- printf("EED vtkTensorsVisu::Process-name %d, %s, size=%d \n", i, pointdata->GetArrayName(i) , pointdata->GetArray(i)->GetSize() );
+ int faces = pointdata->GetArray(i)->GetSize() / numPnts;
+ printf("EED vtkTensorsVisu::Process-name %d, %s, size=%d %d \n", i, pointdata->GetArrayName(i) , pointdata->GetArray(i)->GetSize(), faces );
}
#include "vtkPointData.h"
#include "vtkSphereSource.h"
#include "vtkTensorGlyph.h"
+#include "vtkSuperquadricSource.h"
#include "vtkVectorsTensorsVisuBase.h"
//---------------------------------------------
private:
- vtkSmartPointer<vtkSphereSource> ss;
- vtkSmartPointer<vtkCubeSource> cs;
- vtkSmartPointer<vtkTensorGlyph> tg;
- vtkSmartPointer<vtkPolyDataNormals> pdn;
- vtkSmartPointer<vtkPolyData> pd;
- vtkSmartPointer<vtkPointData> pod;
+ vtkSmartPointer<vtkSphereSource> ss;
+ vtkSmartPointer<vtkSuperquadricSource> superquadratic;
+ vtkSmartPointer<vtkCubeSource> cs;
+ vtkSmartPointer<vtkTensorGlyph> tg;
+ vtkSmartPointer<vtkPolyDataNormals> pdn;
+ vtkSmartPointer<vtkPolyData> pd;
+ vtkSmartPointer<vtkPointData> pod;
};
//-end of _VTKTENSORSVISU_H_------------------------------------------------------