[Insight-users] Compilation error for TCoordRep=float in MeshTraits

Luis Ibanez luis.ibanez at kitware.com
Fri Oct 10 08:15:38 EDT 2008


Hi Dan,

Thanks for pointing this out.

This looks like a bug, and something we could fix,
while still keeping backward compatibility.

Could you please log this as a bug ?


    Thanks


      Luis


-----------------------------
Dan Mueller wrote:
> Ah ha. Thanks nadan.
> 
> Now to the Insight Developers: why are the values in
> SimplexMeshGeometry::PointType hard-coded?
> 
> I guess due to backwards compatibility it's too late to fix this (ie.
> introduce a templated version). However, as I've shown, it's pretty
> easy to encounter compilation errors, even more so if you use the
> default TMeshTraits in itkSimplexMesh.h with TPixelType=float!
> 
> I'm not sure the other solution suggested by nadan (overloading
> operator=) is the best approach either, because it requires double to
> be hard coded into itk::Point.
> 
> Any thoughts, or are we stuck with TCoordRep=double for simplex meshes?
> 
> Regards, Dan
> 
> 2008/10/9 nadan zhu <nadan.zhu at gmail.com>:
> 
>>As SimplexMeshGeometry::PointType is defined as itk::Point<double,3>
>>in itkDeformableSimplexMesh3DFilter.txx(164)
>>data->pos = points.Value(); //error because  itk::Point<double,3> =
>>itk::Point<float,3>
>>
>>One possible way to solve it is to make class SimplexMeshGeometry template
>>or
>>overload function operator= in itk::Point
>>template<class PointValueType>
>>Point& operator= (const Point<PointValueType,NPointDimension> & r)
>>{
>>    const FixedArray<PointValueType, NPointDimension> & fa = r;
>>    BaseArray::operator=(fa);
>>    return *this;
>>}
>>
>>
>>
>>regards
>>
>>nadan
>>
>>On Thu, Oct 9, 2008 at 7:52 PM, Dan Mueller <dan.muel at gmail.com> wrote:
>>
>>>Hi Insight Users,
>>>
>>>I am trying to use itk::DeformableSimplexMesh3DFilter with a specific
>>>mesh trait. However I am encountering compilation errors. Can someone
>>>point out what I am doing wrong?
>>>
>>>Changing TCoordRep (below) from float to double makes the error go
>>>away. However, I would like the pixel type and coord rep type to be
>>>the same (ie. float). Why is this not allowed?
>>>
>>
>>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
> 


More information about the Insight-users mailing list