本文整理汇总了C++中Matrix4::fv方法的典型用法代码示例。如果您正苦于以下问题:C++ Matrix4::fv方法的具体用法?C++ Matrix4::fv怎么用?C++ Matrix4::fv使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Matrix4
的用法示例。
在下文中一共展示了Matrix4::fv方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawArrow
void UtilGL::drawArrow(const Vector3 &a,const Vector3 &u,double radius,const string &s1,const string &s2,double arrowRatio) {
Vector3 to;
to.set(a+u*(1.0-arrowRatio));
glPushMatrix();
glPushMatrix();
glTranslatef(a.x(),a.y(),a.z());
if (!s1.empty()) {
draw(s1,Vector3(0,0,0));
}
glPopMatrix();
glPushMatrix();
Quaternion q;
q.set(Vector3(0,0,1),u);
double angle;Vector3 axe;
q.copyToAngleAxis(&angle,&axe);
glTranslatef(a.x(),a.y(),a.z());
glRotatef(angle,axe.x(),axe.y(),axe.z());
glScalef(radius,radius,(to-a).length());
drawCylinder();
glPopMatrix();
if (u.length()>0.0001) {
glPushMatrix();
glTranslatef((a+u).x(),(a+u).y(),(a+u).z());
glPushMatrix();
if (!s2.empty()) {
draw(s2,Vector3(0.2*arrowRatio*u.length(),0.03,0));
}
glPopMatrix();
glPopMatrix();
glPushMatrix();
glTranslatef(to.x(),to.y(),to.z());
Matrix4 m;
m.setRotation(Vector3(0,0,1),u);
glMultMatrixf(m.fv());
drawCone(radius*(2.0-arrowRatio),u.length()*arrowRatio);
glPopMatrix();
}
glPopMatrix();
}
示例2: uniform
void Shader::uniform(int loc,const Matrix4 &m) {
glUniformMatrix4fv(loc,1,GL_FALSE,m.fv());
}