本文整理汇总了C++中Mat4::mul2D方法的典型用法代码示例。如果您正苦于以下问题:C++ Mat4::mul2D方法的具体用法?C++ Mat4::mul2D怎么用?C++ Mat4::mul2D使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mat4
的用法示例。
在下文中一共展示了Mat4::mul2D方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setView
void RenderContext::setView(const Mat4& v)
{
context.matrixs.view =v;
context.matrixs.modelView=v.mul2D(context.matrixs.model);
//update gpu matrix
glMatrixMode(GL_MODELVIEW);
glLoadMatrixf(context.matrixs.modelView);
}
示例2: setMove
void Object::setMove(const Vector2D &velocity)
{
//var dec
Mat4 mrot;
//set rot
mrot.setRotZ(transform.alpha);
//calc dir
transform.position+=mrot.mul2D(velocity);
//send info
change();
}
示例3: setPosition
void Object::setPosition(const Vector2D &position,bool global)
{
if( !global || !parent || !(parentMode & ENABLE_POSITION))
transform.position=position;
else
{
Vector2D newposition;
switch (parentMode)
{
//rotation
default:
{
//get word position
Mat4 wordPos;
Transform2D toWord;
computeMatrix(toWord, wordPos);
wordPos.inverse();
newposition=wordPos.mul2D(position);
if(!(parentMode & ENABLE_SCALE))
newposition/=getGlobalParentScale();
}
break;
//no rotation
case ENABLE_POSITION:
case ENABLE_POSITION|ENABLE_SCALE:
{
Mat4 pRotation;
pRotation.setRotZ(Angle(Radian(Math::PI2))- parent->getGlobalMatrix().getRotZ());
newposition = pRotation.mul2D( position - parent->getPosition(true)) / getGlobalParentScale();
}
break;
}
transform.position=newposition;
}
change();
}