mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	Use fread() to read binary STL files
This commit is contained in:
		
							parent
							
								
									85232bb6fd
								
							
						
					
					
						commit
						d0d842e24a
					
				
					 2 changed files with 4 additions and 31 deletions
				
			
		|  | @ -181,5 +181,4 @@ static void stl_read(stl_file *stl, int first_facet, int first); | |||
| static void stl_facet_stats(stl_file *stl, stl_facet facet, int first); | ||||
| extern void stl_reallocate(stl_file *stl); | ||||
| static int stl_get_little_int(FILE *fp); | ||||
| static float stl_get_little_float(FILE *fp); | ||||
| extern void stl_get_size(stl_file *stl); | ||||
|  |  | |||
|  | @ -52,22 +52,6 @@ stl_get_little_int(FILE *fp) | |||
|   return(value); | ||||
| } | ||||
| 
 | ||||
| static float | ||||
| stl_get_little_float(FILE *fp) | ||||
| { | ||||
|   union  | ||||
|     { | ||||
|       int   int_value; | ||||
|       float float_value; | ||||
|     } value; | ||||
|    | ||||
|   value.int_value  =  fgetc(fp) & 0xFF; | ||||
|   value.int_value |= (fgetc(fp) & 0xFF) << 0x08; | ||||
|   value.int_value |= (fgetc(fp) & 0xFF) << 0x10; | ||||
|   value.int_value |= (fgetc(fp) & 0xFF) << 0x18; | ||||
|   return(value.float_value); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| void | ||||
| stl_initialize(stl_file *stl) | ||||
|  | @ -251,20 +235,10 @@ stl_read(stl_file *stl, int first_facet, int first) | |||
|       if(stl->stats.type == binary) | ||||
| 	/* Read a single facet from a binary .STL file */ | ||||
| 	{ | ||||
| 	  facet.normal.x = stl_get_little_float(stl->fp); | ||||
| 	  facet.normal.y = stl_get_little_float(stl->fp); | ||||
| 	  facet.normal.z = stl_get_little_float(stl->fp); | ||||
| 	  facet.vertex[0].x = stl_get_little_float(stl->fp); | ||||
| 	  facet.vertex[0].y = stl_get_little_float(stl->fp); | ||||
| 	  facet.vertex[0].z = stl_get_little_float(stl->fp); | ||||
| 	  facet.vertex[1].x = stl_get_little_float(stl->fp); | ||||
| 	  facet.vertex[1].y = stl_get_little_float(stl->fp); | ||||
| 	  facet.vertex[1].z = stl_get_little_float(stl->fp); | ||||
| 	  facet.vertex[2].x = stl_get_little_float(stl->fp); | ||||
| 	  facet.vertex[2].y = stl_get_little_float(stl->fp); | ||||
| 	  facet.vertex[2].z = stl_get_little_float(stl->fp); | ||||
| 	  facet.extra[0] = fgetc(stl->fp); | ||||
| 	  facet.extra[1] = fgetc(stl->fp); | ||||
| 	    // we assume little-endian architecture!
 | ||||
|         fread(&facet.normal, sizeof(stl_normal), 1, stl->fp); | ||||
|         fread(&facet.vertex, sizeof(stl_vertex), 3, stl->fp); | ||||
|         fread(&facet.extra, sizeof(char), 2, stl->fp); | ||||
| 	} | ||||
|       else | ||||
| 	/* Read a single facet from an ASCII .STL file */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Alessandro Ranellucci
						Alessandro Ranellucci