[Insight-users] Problem in mesh visualization with itkQuadEdgeMesh.. still waiting for a response…please help!

Martine Lefevre martine_lef at yahoo.fr
Mon Mar 2 06:56:53 EST 2009


Hi 
Thank you for your suggestions and helps.
Attached a working code where PolygonCell type and PolygonVisitor have been added. The code is modified by Wanlin.  
A big thank for all. 
Best regards 
Martine

--- En date de : Dim 1.3.09, alex gouaillard <alexandre_gouaillard at hms..harvard.edu> a écrit :

De: alex gouaillard <alexandre_gouaillard at hms.harvard.edu>
Objet: Re: [Insight-users] Problem in mesh visualization with itkQuadEdgeMesh.. still waiting for a response…please help!
À: "martine_lef at yahoo.fr" <martine_lef at yahoo.fr>
Cc: "nadan zhu" <nadan.zhu at gmail.com>, "insight itk" <insight-users at itk.org>, "Luis Ibanez" <luis.ibanez at kitware.com>
Date: Dimanche 1 Mars 2009, 10h12


hi martine, 


indeed in an itk:QuadEdgeMesh you have only Polygon cells, wether they represent triangles, quad or actual n-gons.


The code you are using is using the multivisitor patern, where you have to define yourself what kind of cells you are interested in. Here is some code, untested, that should put you in the right direction.


You first define the types:



  // typedef the itk cells we are interested in
  typedef itk::CellInterface<MeshType::PixelType,MeshType::CellTraits >  CellInterfaceType;
  typedef itk::TriangleCell<CellInterfaceType>      floatTriangleCell;
  typedef itk::QuadrilateralCell<CellInterfaceType> floatQuadrilateralCell;


here you should add something like this


  typedef itk::PolygonCell< CellInterfaceType> floatPolygonCell;


then you should create a flavor of the Visit method that takes one object of this new type as argument in the VistVTKCellsClass


  void Visit(unsigned long, floatPolygonCell* t )
    {
    // you have to write it yourself.
    // you might just want to make a switch, 
    // cast to the right triangle / quad type 
    // and call the corresponding Visit method
    }


almost there,
add a visitor type like this



typedef itk::CellInterfaceVisitorImplementation<vtkFloatingPointType, MeshType::CellTraits,itk::PolygonCell< itk::CellInterface<MeshType::PixelType, MeshType::CellTraits > >, 
  VistVTKCellsClass> PolygonVisitor;


finally, in the MeshToUnstructuredGrid function, add an object of the new visitor type, and register it to the multivisitor:



 PolygonVisitor::Pointer pv = PolygonVisitor::New();
 mv->AddVisitor(qv);


and you re done.


Computing curvature should then be straightforward with our classes. Note that this class was made for computation, and that influenced the design, most noticeably where we store curvature values.


Vizualizing will require you to transfer curvature values from pointype templates to vtk data-array. Brace yourself, and dig into the extended traits ;-)


alex.



On Feb 28, 2009, at 10:52 PM, Martine Lefevre wrote:






Hi , could you give me more details ...how and where I add them ?
Thanks 
Martine


--- En date de : Sam 28.2.09, nadan zhu <nadan.zhu at gmail.com> a écrit :

De: nadan zhu <nadan.zhu at gmail.com>
Objet: Re: [Insight-users] Problem in mesh visualization with itkQuadEdgeMesh.. still waiting for a response…please help!
À: "Martine Lefevre" <martine_lef at yahoo.fr>
Cc: "Luis Ibanez" <luis.ibanez at kitware.com>, "insight itk" <insight-users at itk.org>
Date: Samedi 28 Février 2009, 5h14


HI, Martine
       Please add itk::PolygonCell type and PolygonVisitor. It works for me. 


wanlin





<ATT00001.txt>



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090302/5465d1a3/attachment.htm>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: MeshVisualizationQuadEdgeMesh.cpp
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090302/5465d1a3/attachment.asc>


More information about the Insight-users mailing list