本文整理汇总了C++中vec::add方法的典型用法代码示例。如果您正苦于以下问题:C++ vec::add方法的具体用法?C++ vec::add怎么用?C++ vec::add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vec
的用法示例。
在下文中一共展示了vec::add方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dynlightreaching
void dynlightreaching(const vec &target, vec &color, vec &dir, bool hud)
{
vec dyncolor(0, 0, 0);//, dyndir(0, 0, 0);
loopv(dynlights)
{
dynlight &d = dynlights[i];
if(d.curradius<=0) continue;
vec ray(hud ? d.hud : d.o);
ray.sub(target);
float mag = ray.squaredlen();
if(mag >= d.curradius*d.curradius) continue;
vec color = d.curcolor;
color.mul(1 - sqrtf(mag)/d.curradius);
dyncolor.add(color);
//dyndir.add(ray.mul(intensity/mag));
}
#if 0
if(!dyndir.iszero())
{
dyndir.normalize();
float x = dyncolor.magnitude(), y = color.magnitude();
if(x+y>0)
{
dir.mul(x);
dyndir.mul(y);
dir.add(dyndir).div(x+y);
if(dir.iszero()) dir = vec(0, 0, 1);
else dir.normalize();
}
}
#endif
color.add(dyncolor);
}
示例2: gethl
void gethl(){
ldb x,y;
ifstream ifl ("lti");
for(int i=0;i<30;++i){
ifl>>x>>y;
hl.add(cpx(x,y));
}
for(int n=0;n<Nc;++n){
cpx ps(0,0);
for(int k=0;k<30;++k){
ps += hl[k] * ekn[modnc(-1*k*n)];
}
hlt.add(ps);
}
}
示例3: modu
void modu(vec<cpx>& m,bool psi[][8]){
int num;
for(int i=0;i<Nc;++i){
num = 0;
for(int j=0;j<md;++j){
num += psi[i][j]*pw[j];
}
m.add(symget(num));
}
}
示例4: ltifc
void ltifc(vec<cpx>& y,vec<cpx> x){
cpx zn,ps;
for(int n=0;n<Nc+L-1;++n){
zn = cpx(dist(rgen),dist(rgen));
ps = cpx(0,0);
for(int l=0;l<=n && l<30;++l){
ps += hl[l]*x[n-l] + zn;
}
y.add(ps);
}
}
示例5: dft
void dft(vec<cpx>& u,vec<cpx> ut,bool inverse){
int j = ((inverse)?1:-1);
for(int n=0;n<Nc;++n){
cpx ps(0,0);
for(int k=0;k<Nc;++k){
ps += ut[k] * ekn[modnc(j*k*n)];
}
ps = ps / cpx(pow(Nc,0.5),0);
u.add(ps);
}
}
示例6: swayhudgun
void swayhudgun(int curtime)
{
fpsent *d = hudplayer();
if(d->state!=CS_SPECTATOR)
{
if(d->physstate>=PHYS_SLOPE) swaymillis += curtime;
float k = pow(0.7f, curtime/10.0f);
swaydir.mul(k);
vec vel(d->vel);
vel.add(d->falling);
swaydir.add(vec(vel).mul((1-k)/(15*max(vel.magnitude(), d->maxspeed))));
}
}
示例7: drawline
bool effect::drawline(vec &from, vec &to, float size, int type, int elapse)
{
if(size <= 0) return false;
size *= this->size;
int fade, gravity, num;
setvars(this, type, fade, gravity, num);
num *= from.dist(to) / (10 * size) * partmul * (elapse ? logf(elapse) / 3 : 1);
if(particle == PART_STREAK || particle == PART_LIGHTNING)
num /= 2;
num = min<int>(min(num, linemaxsteps), from.dist(to) / linemininterval);
if(!num) return false;
vec delta = vec(to).sub(from).div(num);
loopi(num)
{
switch(particle)
{
case PART_EXPLOSION:
case PART_EXPLOSION_BLUE:
particle_fireball(from, size * 2, particle, fade, colour, size * 2);
break;
case PART_STREAK:
case PART_LIGHTNING:
{
if(!curtime) return false;
vec start = vec(rnd(360) * RAD, rnd(360) * RAD).mul(4 * size).add(from);
vec end = vec(delta).mul(1.5).add(start);
particle_flare(start, end, fade, particle, colour, size);
break;
}
default:
particle_splash(particle, 2, fade, from, colour, size, max<int>(1, size * 5), gravity);
break;
}
from.add(delta);
}
return true;
}
示例8: detc
void detc(vec<cpx>& u,vec<cpx> ut){
for(int i=0;i<Nc;++i)
u.add(ut[i]/hlt[i]);
}
示例9: cycrem
void cycrem(vec<cpx>&u,vec<cpx> y){
for(int i=0;i<Nc;++i)
u.add(y[L+i-1]);
}
示例10: cycins
void cycins(vec<cpx>&x,vec<cpx> u){
for(int i=1;i<L;++i)
x.add(u[Nc-L+i]);
for(int i=0;i<Nc;++i)
x.add(u[i]);
}
示例11: getekn
void getekn(){
for(int i=0;i<Nc;++i)
ekn.add(cpx(cos(2*pi*i/Nc),sin(2*pi*i/Nc)));
}