96 int dx = d->getSizeX();
97 int dy = d->getSizeY();
98 int dz = d->getSizeZ();
100 long o = d->getStrides()[0];
107 for ( z=0; z<dz; z++ )
108 for ( y=0; y<dy; y++ )
110 it = &d->at( 0, y, z );
111 for ( x=0; x<dx; x++, it+=o )
118 m->
m1()[ 0 ] += (double)x * cx;
119 m->
m1()[ 1 ] += (double)y * cy;
120 m->
m1()[ 2 ] += (double)z * cz;
124 double mx = m->
m1()[ 0 ] / m->
m0();
125 double my = m->
m1()[ 1 ] / m->
m0();
126 double mz = m->
m1()[ 2 ] / m->
m0();
132 for ( z=0; z<dz; z++ )
133 for ( y=0; y<dy; y++ )
135 it = &d->at( 0, y, z );
136 for ( x=0; x<dx; x++, it+=o )
138 addVoxel2( m,
Point3d( x, y, z ) );
143 for ( x=0; x<3; x++ ) m->
m1()[ x ] *= ct;
144 for ( x=0; x<6; x++ ) m->
m2()[ x ] *= ct;
145 for ( x=0; x<10; x++ ) m->
m3()[ x ] *= ct;
154 aims::BucketMap<Void>::Bucket::const_iterator ib, eb = bk.end();
164 m->
sum() += bk.size();
165 m->
m0() += bk.size();
167 for( ib=bk.begin(); ib!=eb; ++ib )
169 m->
m1()[ 0 ] += (double)ib->first[0] * cx;
170 m->
m1()[ 1 ] += (double)ib->first[1] * cy;
171 m->
m1()[ 2 ] += (double)ib->first[2] * cz;
174 double mx = m->
m1()[ 0 ] / m->
m0();
175 double my = m->
m1()[ 1 ] / m->
m0();
176 double mz = m->
m1()[ 2 ] / m->
m0();
182 for( ib=bk.begin(); ib!=eb; ++ib )
183 addVoxel2( m, ib->first );
188 for ( x=0; x<3; x++ ) m->
m1()[ x ] *= ct;
189 for ( x=0; x<6; x++ ) m->
m2()[ x ] *= ct;
190 for ( x=0; x<10; x++ ) m->
m3()[ x ] *= ct;