mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	ENH: support transparent filament in ams mapping
Change-Id: I5495b9f8f62a8317acdf6feff33c6b338076a61c
This commit is contained in:
		
							parent
							
								
									58d9f055da
								
							
						
					
					
						commit
						bc1dff84df
					
				
					 1 changed files with 4 additions and 63 deletions
				
			
		|  | @ -718,68 +718,6 @@ static float calc_color_distance(wxColour c1, wxColour c2) | |||
|     return DeltaE76(lab[0][0], lab[0][1], lab[0][2], lab[1][0], lab[1][1], lab[1][2]); | ||||
| } | ||||
| 
 | ||||
| /* use common colors to calc a threshold */ | ||||
| static float calc_threshold() | ||||
| { | ||||
|     //common colors from https://www.ebaomonthly.com/window/photo/lesson/colorList.htm
 | ||||
| 
 | ||||
|     const int common_color_num = 32; | ||||
|     wxColour colors[common_color_num] = { | ||||
|         wxColour(255, 0, 0), | ||||
|         wxColour(255, 36, 0), | ||||
|         wxColour(255, 77, 0), | ||||
|         wxColour(255, 165, 0), | ||||
|         wxColour(255, 191, 0), | ||||
|         wxColour(255, 215, 0), | ||||
|         wxColour(255, 255, 0), | ||||
|         wxColour(204, 255, 0), | ||||
|         wxColour(102, 255, 0), | ||||
|         wxColour(0, 255, 0), | ||||
| 
 | ||||
|         wxColour(0, 255, 255), | ||||
|         wxColour(0, 127, 255), | ||||
|         wxColour(0, 0, 255), | ||||
|         wxColour(127, 255, 212), | ||||
|         wxColour(224, 255, 255), | ||||
|         wxColour(240, 248, 245), | ||||
|         wxColour(48, 213, 200), | ||||
|         wxColour(100, 149, 237), | ||||
|         wxColour(0, 51, 153), | ||||
|         wxColour(65, 105, 225), | ||||
| 
 | ||||
|         wxColour(0, 51, 102), | ||||
|         wxColour(42, 82, 190), | ||||
|         wxColour(0, 71, 171), | ||||
|         wxColour(30, 144, 255), | ||||
|         wxColour(0, 47, 167), | ||||
|         wxColour(0, 0, 128), | ||||
|         wxColour(94, 134, 193), | ||||
|         wxColour(204, 204, 255), | ||||
|         wxColour(8, 37, 103), | ||||
|         wxColour(139, 0, 255), | ||||
| 
 | ||||
|         wxColour(227, 38, 54), | ||||
|         wxColour(255, 0, 255) | ||||
|     }; | ||||
| 
 | ||||
|     float min_val = INT_MAX; | ||||
|     int a = -1; | ||||
|     int b = -1; | ||||
|     for (int i = 0; i < common_color_num; i++) { | ||||
|         for (int j = i+1; j < common_color_num; j++) { | ||||
|             float distance = calc_color_distance(colors[i], colors[j]); | ||||
|             if (min_val > distance) { | ||||
|                 min_val = distance; | ||||
|                 a = i; | ||||
|                 b = j; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     BOOST_LOG_TRIVIAL(trace) << "min_distance = " << min_val << ", a = " << a << ", b = " << b; | ||||
| 
 | ||||
|     return min_val; | ||||
| } | ||||
| 
 | ||||
| int MachineObject::ams_filament_mapping(std::vector<FilamentInfo> filaments, std::vector<FilamentInfo>& result, std::vector<int> exclude_id) | ||||
| { | ||||
|     if (filaments.empty()) | ||||
|  | @ -884,11 +822,14 @@ int MachineObject::ams_filament_mapping(std::vector<FilamentInfo> filaments, std | |||
|             DisValue val; | ||||
|             val.tray_id = tray->second.id; | ||||
|             wxColour c = wxColour(filaments[i].color); | ||||
|             val.distance = calc_color_distance(c, AmsTray::decode_color(tray->second.color)); | ||||
|             wxColour tray_c = AmsTray::decode_color(tray->second.color); | ||||
|             val.distance = calc_color_distance(c, tray_c); | ||||
|             if (filaments[i].type != tray->second.type) { | ||||
|                 val.distance = 999999; | ||||
|                 val.is_type_match = false; | ||||
|             } else { | ||||
|                 if (c.Alpha() != tray_c.Alpha()) | ||||
|                     val.distance = 999999; | ||||
|                 val.is_type_match = true; | ||||
|             } | ||||
|             ::sprintf(buffer, "  %6.0f", val.distance); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Stone Li
						Stone Li