mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	Show axes and ground
This commit is contained in:
		
							parent
							
								
									6f1fd51c2e
								
							
						
					
					
						commit
						945250c8c2
					
				
					 1 changed files with 50 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -29,6 +29,7 @@ sub new {
 | 
			
		|||
 | 
			
		||||
    # prepare mesh
 | 
			
		||||
    {
 | 
			
		||||
        $mesh->align_to_origin;
 | 
			
		||||
        $self->mesh_center($mesh->center);
 | 
			
		||||
        $self->mesh_size($mesh->size);
 | 
			
		||||
        
 | 
			
		||||
| 
						 | 
				
			
			@ -358,6 +359,54 @@ sub Render {
 | 
			
		|||
    glTranslatef(map -$_, @{ $self->mesh_center });
 | 
			
		||||
 | 
			
		||||
    $self->draw_mesh;
 | 
			
		||||
    
 | 
			
		||||
    # draw axes
 | 
			
		||||
    {
 | 
			
		||||
        my $axis_len = 2 * max(@{ $self->mesh_size });
 | 
			
		||||
        glLineWidth(2);
 | 
			
		||||
        glBegin(GL_LINES);
 | 
			
		||||
        # draw line for x axis
 | 
			
		||||
        glColor3f(1, 0, 0);
 | 
			
		||||
        glVertex3f(0, 0, 0);
 | 
			
		||||
        glVertex3f($axis_len, 0, 0);
 | 
			
		||||
        # draw line for y axis
 | 
			
		||||
        glColor3f(0, 1, 0);
 | 
			
		||||
        glVertex3f(0, 0, 0);
 | 
			
		||||
        glVertex3f(0, $axis_len, 0);
 | 
			
		||||
        # draw line for Z axis
 | 
			
		||||
        glColor3f(0, 0, 1);
 | 
			
		||||
        glVertex3f(0, 0, 0);
 | 
			
		||||
        glVertex3f(0, 0, $axis_len);
 | 
			
		||||
        glEnd();
 | 
			
		||||
        
 | 
			
		||||
        # draw ground
 | 
			
		||||
        my $ground_z = -0.02;
 | 
			
		||||
        glDisable(GL_CULL_FACE);
 | 
			
		||||
        glEnable(GL_BLEND);
 | 
			
		||||
	    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 | 
			
		||||
        glBegin(GL_QUADS);
 | 
			
		||||
        glColor4f(1, 1, 1, 0.5);
 | 
			
		||||
        glVertex3f(-$axis_len, -$axis_len, $ground_z);
 | 
			
		||||
        glVertex3f($axis_len, -$axis_len, $ground_z);
 | 
			
		||||
        glVertex3f($axis_len, $axis_len, $ground_z);
 | 
			
		||||
        glVertex3f(-$axis_len, $axis_len, $ground_z);
 | 
			
		||||
        glEnd();
 | 
			
		||||
        glEnable(GL_CULL_FACE);
 | 
			
		||||
        glDisable(GL_BLEND);
 | 
			
		||||
        
 | 
			
		||||
        # draw grid
 | 
			
		||||
        glBegin(GL_LINES);
 | 
			
		||||
        glColor3f(1, 1, 1);
 | 
			
		||||
        for (my $x = -$axis_len; $x <= $axis_len; $x += 10) {
 | 
			
		||||
            glVertex3f($x, -$axis_len, $ground_z);
 | 
			
		||||
            glVertex3f($x, $axis_len, $ground_z);
 | 
			
		||||
        }
 | 
			
		||||
        for (my $y = -$axis_len; $y <= $axis_len; $y += 10) {
 | 
			
		||||
            glVertex3f(-$axis_len, $y, $ground_z);
 | 
			
		||||
            glVertex3f($axis_len, $y, $ground_z);
 | 
			
		||||
        }
 | 
			
		||||
        glEnd();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    glPopMatrix();
 | 
			
		||||
    glFlush();
 | 
			
		||||
| 
						 | 
				
			
			@ -376,6 +425,7 @@ sub draw_mesh {
 | 
			
		|||
    
 | 
			
		||||
    glCullFace(GL_BACK);
 | 
			
		||||
    glNormalPointer_p($self->norms);
 | 
			
		||||
    glColor3f(1, 1, 1);
 | 
			
		||||
    glDrawArrays(GL_TRIANGLES, 0, $self->verts->elements / 3);
 | 
			
		||||
    
 | 
			
		||||
    glDisableClientState(GL_NORMAL_ARRAY);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue