コード例 #1
0
ファイル: enemy.cpp プロジェクト: henderjm/Graphics
void move(mat4 & e, vec3 & pos) {
	//e_position -= vec3(getPosition().v[0],0,getPosition().v[2]) * getDelta() * e_speed;

	if(e_isAlive) {
		e = scale(e, vec3(1.5,1.5,1.5));
		e_direction = vec3(getPosition() - e_cs.center);
		e_direction = normalise(e_direction);
		e_rotation.v[1] = std::acos(e_direction.v[2]);
		if(e_direction.v[0] > 0)
			e_rotation.v[1] =-e_rotation.v[1];
		e = rotate_x_deg(e, e_rotation.v[0]);
		e = rotate_y_deg(e, (-e_rotation.v[1] * (180/M_PI)));
		e = rotate_z_deg(e, e_rotation.v[2]);
	}
	if(e_isAlive) {
		vec3 newpos(e_cs.center);
		newpos += e_direction * e_speed;
//		newpos.v[1] -= 0.3;
		setE_Position(newpos);
		e = translate(e,getE_Position());
		
	}
//	e_position =  getPosition() - e_position;
//	temp -= getPosition() * getDelta() * e_speed;//vec3(getPosition().v[0],0,getPosition().v[2]);// * getDelta() * e_speed;

}
コード例 #2
0
ファイル: display.cpp プロジェクト: climberpi/Mesh-Saliency
void createShaders(GLuint shader_programme) {	
	#define ONE_DEG_IN_RAD (2.0 * M_PI) / 360.0 // 0.017444444
	// input variables
	float near = 0.1f; // clipping plane
	float far = 100.0f; // clipping plane
	float fov = 67.0f * ONE_DEG_IN_RAD; // convert 67 degrees to radians
	float aspect = (float)g_gl_width / (float)g_gl_height; // aspect ratio
	// matrix components
	float range = tan (fov * 0.5f) * near;
	float Sx = (2.0f * near) / (range * aspect + range * aspect);
	float Sy = near / range;
	float Sz = -(far + near) / (far - near);
    float Pz = -(2.0f * far * near) / (far - near);
	GLfloat proj_mat[] = {
		Sx, 0.0f, 0.0f, 0.0f,
		0.0f, Sy, 0.0f, 0.0f,
		0.0f, 0.0f, Sz, -1.0f,
		0.0f, 0.0f, Pz, 0.0f
	};
	
    mat4 T = translate (identity_mat4 (), vec3 (-cam_pos[0], -cam_pos[1], -cam_pos[2]));
    mat4 R = rotate_z_deg (identity_mat4 (), -cam_zaw);
    mat4 view_mat = T * R;
	view_mat_location = glGetUniformLocation (shader_programme, "view");
	glUseProgram (shader_programme);
	glUniformMatrix4fv (view_mat_location, 1, GL_FALSE, view_mat.m);
	proj_mat_location = glGetUniformLocation (shader_programme, "proj");
	glUseProgram (shader_programme);
	glUniformMatrix4fv (proj_mat_location, 1, GL_FALSE, proj_mat);
}
コード例 #3
0
ファイル: display.cpp プロジェクト: climberpi/Mesh-Saliency
// Maintain translations and rotations.
inline void updateView() {
    mat4 T = translate (identity_mat4 (), vec3 (-cam_pos[0], -cam_pos[1], -cam_pos[2])); // cam translation
    mat4 R = rotate_z_deg(identity_mat4(), -cam_zaw)
            * rotate_y_deg(identity_mat4(), -cam_yaw)
            * rotate_x_deg(identity_mat4(), -cam_xaw);
    mat4 view_mat = T * R;
    glUniformMatrix4fv (view_mat_location, 1, GL_FALSE, view_mat.m);
}