本文整理汇总了C++中eigen::Affine3f::data方法的典型用法代码示例。如果您正苦于以下问题:C++ Affine3f::data方法的具体用法?C++ Affine3f::data怎么用?C++ Affine3f::data使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eigen::Affine3f
的用法示例。
在下文中一共展示了Affine3f::data方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Draw
void Cube::Draw(int type, const Camera& camera,const Light& light){
//Get new position of the cube and update the model view matrix
Eigen::Affine3f wMo;//object to world matrix
Eigen::Affine3f cMw;
Eigen::Affine3f proj;
glUseProgram(m_shader);
#ifdef __APPLE__
glBindVertexArrayAPPLE(m_vertexArrayObject);
#else
glBindVertexArray(m_vertexArrayObject);
#endif
glBindBuffer(GL_ARRAY_BUFFER, m_vertexBufferObject);//use as current buffer
GLuint camera_position = glGetUniformLocation(m_shader, "cameraPosition");
GLuint light_position = glGetUniformLocation(m_shader, "lightPosition");
GLuint color = glGetUniformLocation(m_shader, "Color");
GLuint object2world = glGetUniformLocation(m_shader, "wMo");
GLuint world2camera = glGetUniformLocation(m_shader, "cMw");
GLuint projection = glGetUniformLocation(m_shader, "proj");
wMo = m_Trans;
proj = Util::Perspective( camera.m_fovy, camera.m_aspect, camera.m_znear, camera.m_zfar );
cMw = camera.m_cMw;//Angel::LookAt(camera.position,camera.lookat, camera.up );
glUniformMatrix4fv( object2world , 1, GL_FALSE, wMo.data() );
glUniformMatrix4fv( world2camera, 1, GL_FALSE, cMw.data());
glUniformMatrix4fv( projection, 1, GL_FALSE, proj.data());
glUniform4fv(camera_position, 1, camera.m_position.data());
glUniform4fv(light_position, 1, light.m_position.data());
Eigen::Vector4f l_color(m_Color[0],m_Color[1],m_Color[2],1.0);
glUniform4fv(color,1,l_color.data());
switch (type) {
case DRAW_MESH:
glDrawArrays(GL_LINES, 0, 36);
break;
case DRAW_PHONG:
glDrawArrays(GL_TRIANGLES, 0, 36);
break;
}
}
示例2: extractCameraPose
void KinFuPostProcess::extractCameraPose(){
Eigen::Affine3f pose = kinfu_localReference->getCameraPose();
for(int i = 0; i < 16; i++)
pos.data[i] = pose.data()[i];
h.setCameraPos(&pos);
}
示例3: init
void CData4Viewer::drawCameraView(qglviewer::Camera* pCamera_)
{
_pKinect->_pRGBCamera->setGLProjectionMatrix( 0.1f,100.f);
glMatrixMode(GL_MODELVIEW);
Eigen::Affine3f prj_w_t_c; _pTracker->getCurrentProjectionMatrix(&prj_w_t_c);
Eigen::Affine3f init; init.setIdentity(); init(1, 1) = -1.f; init(2, 2) = -1.f;// rotate the default opengl camera orientation to make it facing positive z
glLoadMatrixf(init.data());
glMultMatrixf(prj_w_t_c.data());
//if(_bShowCamera) {
// _pTracker->displayGlobalRelocalization();
//}
//if(_bShowMarkers) {
// _pTracker->displayAllGlobalFeatures(_nVoxelLevel,_bRenderSphere);
//}
_pVirtualCameraView->assignRTfromGL();
_pCubicGrids->rayCast(&*_pVirtualCameraView,true,_bCapture); //get virtual frame
bool bLightingStatus = _pGL->_bEnableLighting;
_pGL->_bEnableLighting = true;
_pVirtualCameraView->gpuRender3DPts(_pGL.get(),_pGL->_usLevel);
_pGL->_bEnableLighting = bLightingStatus;
//PRINTSTR("drawCameraView");
return;
}
示例4: setMatrix
void setMatrix(const Eigen::Affine3f& matrix)
{
setMatrix((float*)matrix.data());
}
示例5: Draw
void Terrain::Draw(int type, const Camera& camera, const Light& light){
//Get new position of the cube and update the model view matrix
Eigen::Affine3f wMo;//object to world matrix
Eigen::Affine3f cMw;
Eigen::Affine3f proj;
glUseProgram(m_shader);
#ifdef __APPLE__
glBindVertexArrayAPPLE(m_vertexArrayObject);
#else
glBindVertexArray(m_vertexArrayObject);
#endif
glBindBuffer(GL_ARRAY_BUFFER, m_vertexBufferObject);//use as current buffer
GLint world2camera = glGetUniformLocation(m_shader, "cMw");
GLint projection = glGetUniformLocation(m_shader, "proj");
GLint kAmbient = glGetUniformLocation(m_shader,"kAmbient");
GLint kDiffuse = glGetUniformLocation(m_shader,"kDiffuse");
GLint kSpecular = glGetUniformLocation(m_shader,"kSpecular");
GLint shininess = glGetUniformLocation(m_shader,"shininess");
GLint camera_position = glGetUniformLocation(m_shader, "cameraPosition");
GLint light_position = glGetUniformLocation(m_shader, "lightPosition");
//generate the Angel::Angel::Angel::matrixes
proj = Util::Perspective( camera.m_fovy, camera.m_aspect, camera.m_znear, camera.m_zfar );
cMw = camera.m_cMw;//LookAt(camera.position,camera.lookat, camera.up );
Eigen::Vector4f v4color(0.55,0.25,0.08,1.0);
Eigen::Vector4f Ambient;
Ambient = 0.3*v4color;
Eigen::Vector4f Diffuse;
Diffuse = 0.5*v4color;
Eigen::Vector4f Specular(0.3,0.3,0.3,1.0);
glUniformMatrix4fv( world2camera, 1, GL_FALSE, cMw.data() );
glUniformMatrix4fv( projection, 1, GL_FALSE, proj.data() );
glUniform4fv(kAmbient, 1, Ambient.data());
glUniform4fv(kDiffuse, 1, Diffuse.data());
glUniform4fv(kSpecular, 1, Specular.data());
glUniform4fv(camera_position, 1, camera.m_position.data());
glUniform4fv(light_position, 1, light.m_position.data());
glUniform1f(shininess, 10);
switch (type) {
case DRAW_MESH:
glUniform1i(glGetUniformLocation(m_shader, "renderType"), 1);
glDrawArrays(GL_LINES, 0, m_NTrianglePoints);
break;
case DRAW_PHONG:
glUniform1i(glGetUniformLocation(m_shader, "renderType"), 2);
glDrawArrays(GL_TRIANGLES, 0, m_NTrianglePoints);
break;
}
//draw the obstacles
for(int i = 0; i < m_obstacles.size(); i++)
{
m_obstacles[i]->Draw(type,camera, light);
}
for(int i = 0; i < m_foods.size(); i++)
{
m_foods[i]->Draw(type,camera, light);
}
//draw the obstacles
for(int i = 0; i < m_surface_objects.size(); i++)
{
m_surface_objects[i]->Draw(type,camera, light);
}
}