本文整理汇总了C++中YsVec3::SetY方法的典型用法代码示例。如果您正苦于以下问题:C++ YsVec3::SetY方法的具体用法?C++ YsVec3::SetY怎么用?C++ YsVec3::SetY使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类YsVec3
的用法示例。
在下文中一共展示了YsVec3::SetY方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: collide
void Cylinder::collide(Particle &particle)const
{
YsVec3 r=particle.getPosition();
YsVec3 v=particle.getVelocity();
YsVec3 n;
//particle penetrates neither bottom nor radius
if (bottom_fun(r)<0 && side_fun(r)<0) {
return;
}
if (bottom_fun(r)>0) {
n=YsYVec();
if (n*v<0) {
v=v-2*(v*n)*n; //bounce velocity
particle.setVelocity(v);
}
}
if (side_fun(r)>0) {
n=origin-r;
n.SetY(0.0);
n.Normalize();
if (n*v<0) {
v=v-2*(v*n)*n; //bounce velocity
particle.setVelocity(v);
}
}
}
示例2: YsInverseViewportTransformation
void YsInverseViewportTransformation(YsVec3 &vOut,const YsVec3 &vIn,const int viewport[4])
{
vOut.SetX((vIn.x()-(double)viewport[0])*2.0/(double)viewport[2]-1.0);
vOut.SetY((vIn.y()-(double)viewport[1])*2.0/(double)viewport[3]-1.0);
}
示例3: YsViewportTransformation
void YsViewportTransformation(YsVec3 &vOut,const YsVec3 &vIn,const int viewport[4])
{
vOut.SetX((double)viewport[0]+(double)viewport[2]*(vIn.x()+1.0)/2.0);
vOut.SetY((double)viewport[1]+(double)viewport[3]*(vIn.y()+1.0)/2.0);
}