mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 12:11:15 -06:00 
			
		
		
		
	Eradicated admesh from TriangleMesh:
TriangleMesh newly only holds indexed_triangle_set and
TriangleMeshStats. TriangleMeshStats contains an excerpt of stl_stats.
TriangleMeshStats are updated when initializing with indexed_triangle_set.
Admesh triangle mesh fixing is newly only used when loading an STL.
AMF / 3MF / OBJ file formats are already indexed triangle sets, thus
they are no more converted to admesh stl_file format, nor fixed
through admesh repair machinery. When importing AMF / 3MF / OBJ files,
volume is calculated and if negative, all faces are flipped. Also
a bounding box and number of open edges is calculated.
Implemented its_number_of_patches(), its_num_open_edges()
Optimized its_split(), its_is_splittable() using a visitor pattern.
Reworked QHull integration into TriangleMesh:
    1) Face normals were not right.
    2) Indexed triangle set is newly emitted instead of duplicating
       vertices for each face.
Fixed cut_mesh(): Orient the triangulated faces correctly.
			
			
This commit is contained in:
		
							parent
							
								
									f484953a5a
								
							
						
					
					
						commit
						8a2a9dba2f
					
				
					 59 changed files with 1056 additions and 1758 deletions
				
			
		|  | @ -409,7 +409,6 @@ void CSGDisplay::on_scene_updated(const Scene &scene) | |||
|             interior.transform(po->trafo().inverse()); | ||||
|              | ||||
|             mshinst.merge(interior); | ||||
|             mshinst.require_shared_vertices(); | ||||
|              | ||||
|             mi->transform_mesh(&mshinst); | ||||
|              | ||||
|  | @ -417,14 +416,12 @@ void CSGDisplay::on_scene_updated(const Scene &scene) | |||
|             auto center = bb.center().cast<float>(); | ||||
|             mshinst.translate(-center); | ||||
|              | ||||
|             mshinst.require_shared_vertices(); | ||||
|             m_scene_cache.add_mesh(mshinst, OpenCSG::Intersection, | ||||
|                                    m_csgsettings.get_convexity()); | ||||
|         } | ||||
|          | ||||
|         for (const sla::DrainHole &holept : holedata) { | ||||
|             TriangleMesh holemesh = sla::to_triangle_mesh(holept.to_mesh()); | ||||
|             holemesh.require_shared_vertices(); | ||||
|             m_scene_cache.add_mesh(holemesh, OpenCSG::Subtraction, 1); | ||||
|         } | ||||
|     } | ||||
|  |  | |||
|  | @ -43,7 +43,6 @@ void ShaderCSGDisplay::on_scene_updated(const Scene &scene) | |||
|             interior.transform(po->trafo().inverse()); | ||||
|              | ||||
|             mshinst.merge(interior); | ||||
|             mshinst.require_shared_vertices(); | ||||
|              | ||||
|             mi->transform_mesh(&mshinst); | ||||
|              | ||||
|  | @ -51,15 +50,11 @@ void ShaderCSGDisplay::on_scene_updated(const Scene &scene) | |||
|             auto center = bb.center().cast<float>(); | ||||
|             mshinst.translate(-center); | ||||
|              | ||||
|             mshinst.require_shared_vertices(); | ||||
|             add_mesh(mshinst); | ||||
|         } | ||||
|          | ||||
|         for (const sla::DrainHole &holept : holedata) { | ||||
|             TriangleMesh holemesh = sla::to_triangle_mesh(holept.to_mesh()); | ||||
|             holemesh.require_shared_vertices(); | ||||
|             add_mesh(holemesh); | ||||
|         } | ||||
|         for (const sla::DrainHole &holept : holedata) | ||||
|             add_mesh(sla::to_triangle_mesh(holept.to_mesh())); | ||||
|     } | ||||
|      | ||||
|     repaint(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Vojtech Bubnik
						Vojtech Bubnik