[vtk-developers] Proposed CenterOfMass function for vtkPoints
Biddiscombe, John A.
biddisco at cscs.ch
Thu Apr 1 10:24:44 EDT 2010
PS. I see no reason at all for this to exist in vtkPoints
JB
> -----Original Message-----
> From: vtk-developers-bounces at vtk.org [mailto:vtk-developers-bounces at vtk.org]
> On Behalf Of Biddiscombe, John A.
> Sent: 01 April 2010 16:17
> To: Berk Geveci; David Doria
> Cc: VTK Developers; Will Schroeder
> Subject: Re: [vtk-developers] Proposed CenterOfMass function for vtkPoints
>
> > Also, if you wanted to optimize this method, I'd suggest using
> > GetValue()/GetTupleValue() (you would have to use some sort of macro
>
> Here's an extract from my own templated version
>
> JB
>
> //--------------------------------------------------------------------------
> --
> template <typename T>
> void WeightedSum(T* data, double mass, double *weightedsum) {
> weightedsum[0] += data[0]*mass;
> weightedsum[1] += data[1]*mass;
> weightedsum[2] += data[2]*mass;
> }
> //--------------------------------------------------------------------------
> --
> void vtkCenterOfMassFilter::UpdateCenterOfMassVariables(
> double &totalMass, double totalWeightedMass[])
> {
> vtkIdType index = 0;
> for (vtkIdType id=0; id<this->NumberOfPoints; ++id)
> {
> double mass=this->MassArray->GetTuple1(id);
> if (this->dPointData) {
> WeightedSum<double>(&this->dPointData[index], mass,
> totalWeightedMass);
> }
> else {
> WeightedSum<float>(&this->fPointData[index], mass, totalWeightedMass);
> }
> totalMass += mass;
> index += 3;
> }
> }
>
>
>
> > -----Original Message-----
> > From: vtk-developers-bounces at vtk.org [mailto:vtk-developers-
> bounces at vtk.org]
> > On Behalf Of Berk Geveci
> > Sent: 01 April 2010 15:27
> > To: David Doria
> > Cc: VTK Developers; Will Schroeder
> > Subject: Re: [vtk-developers] Proposed CenterOfMass function for vtkPoints
> >
> > Can you post your latest implementation?
> >
> > Also, if you wanted to optimize this method, I'd suggest using
> > GetValue()/GetTupleValue() (you would have to use some sort of macro
> > and a templated function). GetPoint() ends up calling GetTuple() which
> > is virtual.
> >
> > -berk
> >
> > On Thu, Apr 1, 2010 at 9:12 AM, David Doria <daviddoria+vtk at gmail.com>
> > wrote:
> > > On Thu, Apr 1, 2010 at 8:52 AM, Will Schroeder
> > > <will.schroeder at kitware.com> wrote:
> > >> David-
> > >>
> > >> The phrase center of mass is an issue for many reasons, first if the
> > >> dataset has cells that are curved (higher order cells) your assumption
> > >> may not hold. Second, there is no mention of mass in the dataset API
> > >> and this will confuse people.
> > >
> > > This is a moot point because I think GetPointsCenter is more clear
> > > anyway (since there is no concept of mass, like you said), but since
> > > this function is in vtkPoints there is no concept of "cells" to
> > > interfere with anything - it is simply the center of the points.
> > >
> > > Ok, so what's the process from here? Do we wait a few days for more
> > > comments/suggestions?
> > >
> > > David
> > > _______________________________________________
> > > Powered by www.kitware.com
> > >
> > > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> > >
> > > Follow this link to subscribe/unsubscribe:
> > > http://www.vtk.org/mailman/listinfo/vtk-developers
> > >
> > >
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtk-developers
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtk-developers
More information about the vtk-developers
mailing list