[Insight-users] Still bug in Mesh Filters ?
Luis Ibanez
luis.ibanez at kitware.com
Mon Mar 15 15:38:12 EDT 2010
Hi Jan,
I couldn't find a class named:
itkSimplexMesh3DFilter
so, let me follow up on your comments on the:
itkSimplexMeshAdaptTopologyFilter
1) The methods "CopyInputMeshToOutputMesh***" are
provided in the base class
itkMeshToMeshFilter
as service methods.
Whether some or all of them should be called, is
something that only the developer of a particular
filter can determine.
2) You are correct on expecting that some filters
should call:
CopyInputMeshtoOutpoutMeshCellLinks()
although others may not need to make this call.
3) In the particular case of the
itkSimplexMeshAdaptTopologyFilter
There is a larger structural problem:
This filter takes the liberty of modifying its own
input. Which is a violation of the acceptable
behavior of filters in a data-pipeline.
The filter rebuilds the cell links in the input image
directly.
4) The decision about copying pointers versus copying
the actual data (deep copy) on some of the inputs
of the mesh filters is something we went back and
forth during the early days of the toolkit.
The main deciding factor was whether we will be
managing very large meshes or not. (and therefore,
whether we could avoid some memory allocations
by sharing data between the input and output of a
filter, when such data was not modified by the filter.
You have just found one spot in which the developer
considered that sharing the data between input and
output was a good idea.
Note that in practice, we tend to deal with meshes
that are not so large, and therefore the memory
duplication has been less of a concern.
5) Although both of your points are quite valid and
important, it looks like they are not really related
to the bug:
http://public.kitware.com/Bug/view.php?id=9554
Can you please create a new bug entry for the
specific issue of copying Cell Links, and another
one for the specific issue of the lack of deep
copy in the Geometry Data ?
Thanks
Luis
--------------------------------------------------------------------------
On Mon, Mar 8, 2010 at 10:35 AM, <J.Menssen at cukz.umcn.nl> wrote:
> Hello
>
> I'm working on a ITK project using the ITKSimplexMesh3DFilter and
>
> itkSimplexMeshAdaptTopologyFilter.
>
> I'm using the latest versions of itk (v1.26 and 1.19, cvs archive) because I
> read in the ITK bug-tracker database there were bugs in these filters (bug
> 0009554)
>
> Maybe there are still bugs in these filters
>
> Inspecting the code (itkSimplexMesh3DFilter::ComputeOutput), I read the
> following
>
> ::ComputeOutput()
>
> {
>
> OutputMeshType * output = this->GetOutput();
>
> this->CopyInputMeshToOutputMeshPoints();
>
> this->CopyInputMeshToOutputMeshPointData();
>
> this->CopyInputMeshToOutputMeshCells();
>
> this->CopyInputMeshToOutputMeshCellData();
>
> output->SetGeometryData(this->m_Data);
>
> output->SetLastCellId( this->GetInput(0)->GetLastCellId() );
>
> }
>
> My Questions about these are
>
> 1) Why are the Cell links not copied, there is a routine
>
> CopyInputMeshtoOutpoutMeshCellLinks
>
> 2) The pointer to the GeometryData is copied, not the content. Why not
> the content, now
>
> it's possible to delete the original data (when reference count of the input
> data becomes 0, it's impossible to access these data in a next stage of a
> program
>
> Kind regards
>
> Jan Menssen
>
> Clinical Physics Lab, Dept. Pediatrics
>
> Radboud University Nijmegen
>
> j.menssen AT cukz.umcn.nl
>
> Jan Menssen
> Klinisch Fysisch Medewerker
>
> Universitair Medisch Centrum St Radboud
> Klinisch Fysisch Lab - Kindergeneeskunde
> Huispost 833, route 833
> Postbus 9101
> 6500 HB Nijmegen
> Telefoon: (024) 36 19063
> E-mail J.Menssen at cukz.umcn.nl
>
> http://www.umcn.nl
>
> Het UMC St Radboud staat geregistreerd bij de Kamer van Koophandel in het
> handelsregister onder nummer 41055629.
> The Radboud University Nijmegen Medical Centre is listed in the Commercial
> Register of the Chamber of Commerce under file number 41055629.
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>
More information about the Insight-users
mailing list