本文整理汇总了C++中CImgList::get_append方法的典型用法代码示例。如果您正苦于以下问题:C++ CImgList::get_append方法的具体用法?C++ CImgList::get_append怎么用?C++ CImgList::get_append使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CImgList
的用法示例。
在下文中一共展示了CImgList::get_append方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: eigen
//.........这里部分代码省略.........
align_eigen(px,py,pz); align_eigen(cx,py,pz); align_eigen(nx,py,pz);
align_eigen(px,cy,pz); align_eigen(cx,cy,pz); align_eigen(nx,cy,pz);
align_eigen(px,ny,pz); align_eigen(cx,ny,pz); align_eigen(nx,ny,pz);
align_eigen(px,py,cz); align_eigen(cx,py,cz); align_eigen(nx,py,cz);
align_eigen(px,cy,cz); align_eigen(nx,cy,cz);
align_eigen(px,ny,cz); align_eigen(cx,ny,cz); align_eigen(nx,ny,cz);
align_eigen(px,py,nz); align_eigen(cx,py,nz); align_eigen(nx,py,nz);
align_eigen(px,cy,nz); align_eigen(cx,cy,nz); align_eigen(nx,cy,nz);
align_eigen(px,ny,nz); align_eigen(cx,ny,nz); align_eigen(nx,ny,nz);
const T
u0 = 0.5f*dl*eigen.linear_atXYZ(X,Y,Z,3),
v0 = 0.5f*dl*eigen.linear_atXYZ(X,Y,Z,4),
w0 = 0.5f*dl*eigen.linear_atXYZ(X,Y,Z,5),
u1 = 0.5f*dl*eigen.linear_atXYZ(X+u0,Y+v0,Z+w0,3),
v1 = 0.5f*dl*eigen.linear_atXYZ(X+u0,Y+v0,Z+w0,4),
w1 = 0.5f*dl*eigen.linear_atXYZ(X+u0,Y+v0,Z+w0,5),
u2 = 0.5f*dl*eigen.linear_atXYZ(X+u1,Y+v1,Z+w1,3),
v2 = 0.5f*dl*eigen.linear_atXYZ(X+u1,Y+v1,Z+w1,4),
w2 = 0.5f*dl*eigen.linear_atXYZ(X+u1,Y+v1,Z+w1,5),
u3 = 0.5f*dl*eigen.linear_atXYZ(X+u2,Y+v2,Z+w2,3),
v3 = 0.5f*dl*eigen.linear_atXYZ(X+u2,Y+v2,Z+w2,4),
w3 = 0.5f*dl*eigen.linear_atXYZ(X+u2,Y+v2,Z+w2,5);
T
u = u0/3 + 2*u1/3 + 2*u2/3 + u3/3,
v = v0/3 + 2*v1/3 + 2*v2/3 + v3/3,
w = w0/3 + 2*w1/3 + 2*w2/3 + w3/3;
if (u*pu+v*pv+w*pw<0) { u=-u; v=-v; w=-w; }
normU = (float)std::sqrt(u*u+v*v+w*w);
const float scal = (u*pu+v*pv+w*pw)/(normU*normpU);
if (scal<cmin) stopflag=true;
X+=(pu=u); Y+=(pv=v); Z+=(pw=w);
normpU = normU;
l+=dl;
}
}
// Backward tracking
l = dl; X = (float)X0; Y = (float)Y0; Z = (float)Z0;
pu = eigen(X0,Y0,Z0,3);
pv = eigen(X0,Y0,Z0,4);
pw = eigen(X0,Y0,Z0,5);
normpU = (float)std::sqrt(pu*pu+pv*pv+pw*pw);
stopflag = false;
while (!stopflag) {
if (X<0 || X>eigen.dimx()-1 || Y<0 || Y>eigen.dimy()-1 || Z<0 || Z>eigen.dimz()-1 ||
eigen((int)X,(int)Y,(int)Z,12)<FAmin || l>lmax) stopflag = true;
else {
const int
cx = (int)X, px = (cx-1<0)?0:cx-1, nx = (cx+1>=eigen.dimx())?eigen.dimx()-1:cx+1,
cy = (int)Y, py = (cy-1<0)?0:cy-1, ny = (cy+1>=eigen.dimy())?eigen.dimy()-1:cy+1,
cz = (int)Z, pz = (cz-1<0)?0:cz-1, nz = (cz+1>=eigen.dimz())?eigen.dimz()-1:cz+1;
const T cu = eigen(cx,cy,cz,3), cv = eigen(cx,cy,cz,4), cw = eigen(cx,cy,cz,5);
align_eigen(px,py,pz); align_eigen(cx,py,pz); align_eigen(nx,py,pz);
align_eigen(px,cy,pz); align_eigen(cx,cy,pz); align_eigen(nx,cy,pz);
align_eigen(px,ny,pz); align_eigen(cx,ny,pz); align_eigen(nx,ny,pz);
align_eigen(px,py,cz); align_eigen(cx,py,cz); align_eigen(nx,py,cz);
align_eigen(px,cy,cz); align_eigen(nx,cy,cz);
align_eigen(px,ny,cz); align_eigen(cx,ny,cz); align_eigen(nx,ny,cz);
align_eigen(px,py,nz); align_eigen(cx,py,nz); align_eigen(nx,py,nz);
align_eigen(px,cy,nz); align_eigen(cx,cy,nz); align_eigen(nx,cy,nz);
align_eigen(px,ny,nz); align_eigen(cx,ny,nz); align_eigen(nx,ny,nz);
const T
u0 = 0.5f*dl*eigen.linear_atXYZ(X,Y,Z,3),
v0 = 0.5f*dl*eigen.linear_atXYZ(X,Y,Z,4),
w0 = 0.5f*dl*eigen.linear_atXYZ(X,Y,Z,5),
u1 = 0.5f*dl*eigen.linear_atXYZ(X+u0,Y+v0,Z+w0,3),
v1 = 0.5f*dl*eigen.linear_atXYZ(X+u0,Y+v0,Z+w0,4),
w1 = 0.5f*dl*eigen.linear_atXYZ(X+u0,Y+v0,Z+w0,5),
u2 = 0.5f*dl*eigen.linear_atXYZ(X+u1,Y+v1,Z+w1,3),
v2 = 0.5f*dl*eigen.linear_atXYZ(X+u1,Y+v1,Z+w1,4),
w2 = 0.5f*dl*eigen.linear_atXYZ(X+u1,Y+v1,Z+w1,5),
u3 = 0.5f*dl*eigen.linear_atXYZ(X+u2,Y+v2,Z+w2,3),
v3 = 0.5f*dl*eigen.linear_atXYZ(X+u2,Y+v2,Z+w2,4),
w3 = 0.5f*dl*eigen.linear_atXYZ(X+u2,Y+v2,Z+w2,5);
T
u = u0/3 + 2*u1/3 + 2*u2/3 + u3/3,
v = v0/3 + 2*v1/3 + 2*v2/3 + v3/3,
w = w0/3 + 2*w1/3 + 2*w2/3 + w3/3;
if (u*pu+v*pv+w*pw<0) { u=-u; v=-v; w=-w; }
normU = (float)std::sqrt(u*u+v*v+w*w);
const float scal = (u*pu+v*pv+w*pw)/(normU*normpU);
if (scal<cmin) stopflag=true;
X-=(pu=u); Y-=(pv=v); Z-=(pw=w);
normpU=normU;
l+=dl;
resf.insert(CImg<>::vector(X,Y,Z),0);
}
}
return resf.get_append('x');
}